web-dev-qa-db-ja.com

httpsを介したSonarQube

SonarQubeをTFS 2013ビルドと統合しようとしています。 SonarQubeインスタンスは、httpsを使用するように構成されています。何らかの理由で、TFSはSonarQubeに連絡しようとして以下のエラーをスローします。

ERROR: Error during SonarQube Scanner execution <br /> ERROR: Unable to execute SonarQube ERROR: Caused by: Fail to get bootstrap index from server ERROR: Caused by: Sun.security.validator.ValidatorException: PKIX path building failed:Sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ERROR: Caused by: PKIX path building failed: Sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ERROR: Caused by: unable to find valid certification path to requested target

私はこれを見つけましたSO post: "PKIXパスの構築に失敗しました"および "要求されたターゲットへの有効な認証パスが見つかりません" 証明書をエクスポートし、keytoolを使用してインポートしましたinto Java keystore。私はまだ同じエラーを受け取っています。sonarQubeがデフォルトのJava keystore。

手動でsonar-scannerを実行し、パラメーターに証明書情報を渡そうとしましたが、それでも証明書は取得されません。

C:\SonarScanner\sonar-scanner-3.2.0.1227\bin>sonar-scanner.bat -X -Djavax.net.debug="ssl,handshake" -Djavax.net.ssl.trustStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts" -Djavax.net.ssl.keyStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts"

デバッグメッセージを見ると、追加のパラメータが認識されていません。 enter image description here

助言がありますか?

8
DevOpsy

「SONAR_SCANNER_OPTS」環境変数を-Djavax.net.ssl.trustStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts" -Djavax.net.ssl.keyStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts"に設定すると、私にとってはうまくいきました。

デバッグログは、環境変数で設定されたキーストアを指していることを示しています。 Sonar-Scanner.batを使用したコマンドラインからも、TFS 2013ビルドの一部として実行中にも機能しました。

8
DevOpsy