我在HTTPS/SSL
上使用Jenkins(下面的设置细节)。我可以毫无问题地导航到https://jenkins.mydomain.com:8088
。所有链接都正确,前面有https://
。我可以正确浏览几乎所有Jenkins页面。
当Jenkins尝试重定向时(例如登录后,点击 Build 等)后。每当Jenkins尝试重定向到任何页面时,都会将我发送到http://
页面(不是httpS://
)
Jenkins URL
设置。它适用于所有内容,但它总是重定向到http://
,尽管网址为httpS://
jenkins.xml
,但由于我的设置未使用Jenkins Windows服务安装,我根本没有jenkins.xml
是否有不同之处我可以为Jenkins指定参数吗?Jenkins URL
协议部分。Jenkins.war
的ROOT.war
位于Tomcat的webapps
文件夹bin\tomcat6.exe //RS//Instance_Name
conf\server.xml
下的不同Tomcat端口8088
,无法使用443
进行SSL,因为有多个实例在运行,并且它们不能全部都有443
,因为实例区分的唯一方法是通过端口。 *.mydomain.com
)。 (我无权访问实际文件)jenkins.mydomain.com
的DNS解析为负载均衡器上的虚拟IP,然后转发到托管Jenkins的实际Windows服务器的流量。答案 0 :(得分:1)
如果您正在执行HTTP代理方案,我建议在server.xml周围查看并找到Connector并添加secure =“true”。也可能涉及重定向端口。
<Connector secure="true" port="8088" protocol="HTTP/1.1" URIEncoding="UTF-8"
connectionTimeout="20000"
/>
供参考, 我们在两个Apache代理后面运行Jenkins,一个是外部代理,一个是内部代理:
外部vhost的相关部分(jenkins.host.com):
RequestHeader unset Authorization
RequestHeader set Authorization "Basic (encrypted password)"
ProxyPass / ajp://dev.internal:9101/
ProxyPassReverse / ajp://dev.internal:9101/
tomcat的server.xml的相关部分:
<Connector port="9001" protocol="HTTP/1.1" URIEncoding="UTF-8"
connectionTimeout="20000"
/>
<Connector port="9101" protocol="AJP/1.3" URIEncoding="UTF-8"/>
<Host name="dev.internal" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Alias>jenkins.host.com</Alias>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="dev.internal_access_log." suffix=".txt" rotatable="false"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
答案 1 :(得分:1)
您可能需要重新启动Jenkins服务器才能使全局配置更改生效。 Jenkins CI Cookbook说(突出我的):
Jenkins使用Xstream(http://x-stream.github.io/)将其配置保持为可读的XML格式。工作空间中的XML文件是插件,任务和各种其他持久信息的配置文件。 config.xml是主配置文件。此处设置安全设置和全局配置,并反映通过GUI进行的更改。插件使用相同的结构,XML值对应于底层插件类中的成员值。 GUI本身是通过Jelly框架(http://commons.apache.org/jelly/)从XML创建的。
通过重新启动服务器,您应该确保在初始化阶段选择了任何配置更改。
此外,为了确保没有人通过HTTP访问Jenkins服务器(例如,过时的链接,在浏览器中手动键入URL等),您可以让负载均衡器将http://
URL重写为https://
个网址。
编辑:此答案的早期版本错误地提示以下内容:
Tomcat按urlrewritefilter
中的建议使用this answer将http://
网址重写为https://
网址
无法完成,因为SSL证书驻留在终止SSL连接的loadbalancer上,这意味着它会向Tomcat说HTTP,因此Tomcat永远不会看到https://
URL,因此这个建议会导致无限的重定向循环。 (保持这个,因为否则下面的评论没有意义)。