我有安装了反向代理的Jenkins和Apache httpd 。 它们安装在同一台PC上。
我可以直接访问Jenkins,没关系。 例如下面的链接工作正常: http://127.0.0.1:8080/jenkins/manage : http://127.0.0.1:8080/jenkins/manage : http://127.0.0.1:8080/jenkins/manage
其他网页看起来不错,如果我试图通过jenkins直接访问它们。
我也可以通过SSL通过Apache访问Jenkins: https://127.0.0.1/jenkins/manage : https://127.0.0.1/jenkins/manage 。 没事。
但是当我在这个页面上按«pipe理插件»,我被redirect到以下URL http://127.0.0.1/jenkins/pluginManager/ ,它已经是纯HTTP。 我收到“未find”错误页面。
当我在Apache SSL的configuration页面https://127.0.0.1/jenkins/configure上按“保存”时,获得类似的错误。 我也redirect到普通的HTTP http://127.0.0.1/jenkins/ 。
可能这种从SSL切换到纯HTTP的情况只会发生在POST请求上,但我不能百分百的确信。
在testing期间,我根据https://wiki.jenkins-ci.org/display/JENKINS/Disable+securityclosures安全
与Jenkins相关的Apacheconfiguration指令如下:
Listen 443 ProxyPass /jenkins http://127.0.0.1:8080/jenkins nocanon ProxyPassReverse /jenkins http://127.0.0.1:8080/jenkins ProxyPreserveHost On ProxyRequests Off <Proxy http://127.0.0.1:8080/jenkins*> SSLRequireSSL RequestHeader set X_FORWARDED_PROTO 'https' Order deny,allow Allow from all </Proxy>
我使用Apache apache_2.2.14-win32-x86-openssl-0.9.8k.msi和Jenkins ver。 1.580.1。
可能我错过了一些东西,但我不知道在哪里发现错误。 我的configuration有什么问题?
请让我知道,如果我错过了重要的细节,所以我可以在这里添加它们。
提前致谢。
修正了Apache指令。
错误的指令:
RequestHeader set X_FORWARDED_PROTO 'https'
正确的指令:
RequestHeader set X-FORWARDED-PROTO 'https'
我原本是从http://www.redmine.org/projects/redmine/wiki/FAQ#Why-does-Redmine-use-http-links-when-I-want-it-to-use-https-链接在Apache的SSL ,然后复制在我的Apacheconfiguration文件。
我没有修改redmine页面,因为它与下划线相反,在HTTP头字段列表中使用破折号
以下页面帮助我find问题: https : //wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache