Apache httpd下的Jenkins有时会从SSL切换到普通的HTTP

我有安装了反向代理的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/managehttps://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