背景
我们曾经通过主机名和端口格式访问 Jenkins,从来没有遇到过问题。例如: http: //Jenkinsci.company.com :8080 。
我们有一个内部要求,通过公司 Netscaler ( https://apps.company.com/ ) 启用 Jenkins 访问。
因此,创建了新的 Netscaler 上下文并且新的 url:https ://apps.company.com/jenkins现在指向 -> http://Jenkinsci.company.com:8080。我还添加JENKINS_ARGS="--prefix=/jenkins"
了 etc/sysconfig/jenkins。
问题
最初我们无法登录。一旦我们点击登录,我们就会被重定向到 http 页面。即 https://apps.company.com/jenkins -> http://apps.company.com/jenkins。
. 因此,由于登录不起作用,因此在 Netscaler 级别设置了 http 到 https 重定向。然后登录工作。
现在我们观察到我们无法在 Jenkins 中添加凭据。
现在添加凭据后,下拉菜单不会显示新添加的凭据。
我在浏览器中调试,可以看到以下错误消息。
Mixed Content: The page at 'https://prod.company.com/jenkins/job/test1/job/test/configure' was loaded over HTTPS, but requested an insecure form action 'http://prod.company.com/jenkins/descriptor/com.cloudbees.plugins.credentials.CredentialsSelectHelper/resolver/com.cloudbees.plugins.credentials.CredentialsSelectHelper$ItemContextResolver/provider/com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider/context/test1/addCredentials'. This request has been blocked; the content must be served over HTTPS.
我还比较了通过 Netscaler 和直接通过主机添加凭据的网络消息,它们看起来相同,但在成功场景中执行了更多步骤。
成功
Request URL: http://Jenkinsci.company.com:8080/jenkins/descriptorByName/com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl/checkId?value=&$provider=com.cloudbees.plugins.credentials.CredentialsSelectHelper%24ItemContextResolver&$token=test
Request URL: http://Jenkinsci.company.com:8080/jenkins/descriptorByName/com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl/checkId?value=asdad&$provider=com.cloudbees.plugins.credentials.CredentialsSelectHelper%24ItemContextResolver&$token=test
Request URL: http://Jenkinsci.company.com:8080/jenkins/descriptor/com.cloudbees.plugins.credentials.CredentialsSelectHelper/resolver/com.cloudbees.plugins.credentials.CredentialsSelectHelper$ItemContextResolver/provider/com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider/context/test/addCredentials
Request Method: POST
Request URL: http://Jenkinsci.company.com:8080/jenkins/job/test/job/tess/descriptorByName/hudson.plugins.git.UserRemoteConfig/fillCredentialsIdItems
失败
Request URL: https://prod.company.com/jenkins/descriptorByName/com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl/checkId?value=&$provider=com.cloudbees.plugins.credentials.CredentialsSelectHelper%24ItemContextResolver&$token=test1
Request URL: https://prod.company.com/jenkins/descriptorByName/com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl/checkId?value=sdfsr&$provider=com.cloudbees.plugins.credentials.CredentialsSelectHelper%24ItemContextResolver&$token=test1
知道不将 SSL 证书放入 jenkins 实例的情况下可能是什么问题和解决方法吗?
提前致谢。