首页 > 解决方案 > 基于 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 帖子:“PKIX 路径构建失败”和“无法找到请求目标的有效证书路径” 并导出证书并使用 keytool 将其导入 java 密钥库。我仍然遇到同样的错误。似乎 sonarQube 不知何故没有从默认的 java 密钥库中获取证书。

我尝试手动运行 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"

查看调试消息,它没有识别附加参数。 在此处输入图像描述

有什么建议么?

标签: javasonarqube

解决方案


设置“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 构建的一部分运行。


推荐阅读