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"
デバッグメッセージを見ると、追加のパラメータが認識されていません。
助言がありますか?
「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ビルドの一部として実行中にも機能しました。