2013-07-10 62 views
2

我刚刚从Sonar 3.2.1升级到Sonar 3.6。通过在SONAR_HOME中放置一个jetty.xml文件,我能够将Sonar 3.2.1配置为使用https。相同的方法似乎不适用于Sonar 3.6,并且查看org.sonar.application.JettyEmbedder的源代码我认为https端口被硬编码为8443.仅供参考,嵌入式jetty版本是7.6.11。sonar 3.6 https配置

相关声纳FAQ这样写着:

可以在HTTPS模式下运行SonarQube号 但是你可以使用反向代理(在这种情况下,反向代理必须配置为设置在一个标准的HTTPS基础架构上运行SonarQube在每个HTTP请求头中都有值'X_FORWARDED_PROTO:https'。如果没有这个属性,SonarQube服务器启动的重定向将返回HTTP。

如果这是真的,那么Sonar已经向后退了一步安全明智。有没有其他的方式来配置Sonar/Jetty在https上运行?

+0

这看起来像一个最适合Sonar JIRA或开发者邮件列表的问题。就我个人而言,我使用Apache作为Sonar反向代理。 Apache兼作我的SSL终结者,意味着我可以将所有杂乱的SSL东西从Sonar中分离出来。 Nginx是这个领域的另一种可能的解决方案。 –

+0

感谢您的评论 - 我已经在sonar用户邮件列表上发布了这个问题。如果你在Sonar前面有Apache,那么这并不意味着从Apache到Sonar的连接是http,因此是未加密的? – user2570084

+0

是的。如果它被配置为侦听回送地址,则不是问题。这样,没有任何外部过程可以与Sonar交谈。 –

回答

1

您可以在同一台机器上安装Apache并设置反向代理。

http://your-sonar-host.com地址需要在端口80上运行Apache将其转发给9000

(声纳在端口9000上运行)安装Apache后,打开配置,并键入以下内容:

<Location /> 
ProxyPass http://your-sonar-host.com:9000/ 
ProxyPassReverse http://your-sonar-host.com:9000/ 
RequestHeader set X_FORWARDED_PROTO 'https' 
SetEnv force-proxy-request-1.0 1 
SetEnv proxy-nokeepalive 1 
</Location> 

没有什么你需要做的。