2013-07-10 91 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> 

沒有什麼你需要做的。