2

Sonar 3.2.1 から Sonar 3.6 にアップグレードしました。SONAR_HOME に jetty.xml ファイルを配置することで、https を使用するように Sonar 3.2.1 を構成できました。同じアプローチは Sonar 3.6 では機能しないようで、org.sonar.application.JettyEmbedder のソースを見ると、https ポートが 8443 にハードコードされていると思います。参考までに、埋め込まれた Jetty のバージョンは 7.6.11 です。

関連するソナーFAQは次のように読みます:

SonarQube は HTTPS モードで実行できますか いいえ。ただし、リバース プロキシを使用して、標準の HTTPS インフラストラクチャで SonarQube を実行できます (この場合、リバース プロキシは、各 HTTP 要求ヘッダーに値 'X_FORWARDED_PROTO: https' を設定するように構成する必要があります。このプロパティがないと、 SonarQube サーバーによって開始されたリダイレクトは、HTTP にフォールバックします)。

これが本当なら、Sonar はセキュリティ面で一歩後退しています。https で実行するように Sonar/Jetty を構成する別の方法はありますか?

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 に答える