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。仅供参考,嵌入式码头版本是 7.6.11。

相关的声纳常见问题解答如下:

SonarQube 可以在 HTTPS 模式下运行吗?但是您可以使用反向代理在标准 HTTPS 基础架构中运行 SonarQube(在这种情况下,必须将反向代理配置为在每个 HTTP 请求标头中设置值“X_FORWARDED_PROTO: https”。没有此属性, SonarQube 服务器发起的重定向将回退到 HTTP)。

如果这是真的,那么 Sonar 在安全方面已经倒退了一步。是否有另一种方法可以将 Sonar/Jetty 配置为在 https 上运行?

4

1 回答 1

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>

您无需做任何其他事情。

于 2013-08-15T07:29:38.387 回答