【问题标题】:SonarQube over https基于 https 的 SonarQube
【发布时间】:2019-03-30 18:52:41
【问题描述】:

我正在尝试将 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 path building failed" and "unable to find valid certification path to requested target" 并导出证书并使用 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"

查看调试消息,它没有识别附加参数。

有什么建议吗?

【问题讨论】:

  • 您是否重新启动了代理?
  • 是的,我是在导入证书后这样做的。
  • 每个参数前是否需要-X?你需要 -X 和 JavaVM arg 之间的空格吗? (如果你走到那一步,你是否还需要指定密钥库/信任库密码?)你能不能只指定密钥库以及它正在读取的属性文件中的属性?
  • @moilejter:-X 是获取调试输出的开关。 -D 是定义传递给 JavaVM 的属性的开关。我也尝试通过 KeyStorePassword,但它仍然没有获取证书。

标签: java sonarqube


【解决方案1】:

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

【讨论】:

  • @guilhermecgs:你是如何运行扫描仪的?你得到的错误是什么?调试日志是显示密钥库位置还是空白?
  • 我在本地机器的成绩任务中运行。是的,密钥库不是空白的。见这里:dropbox.com/s/h8vlqko7c0a70tz/…。命令是 "./gradlew sonarqube (...) " 我已经使用 "keytool" -importcert -file (...) 添加了证书 有什么线索吗?
  • @guilhermecgs:我不确定。我没用过gradle。可能会问一个单独的问题,应该有人可以提供帮助。
猜你喜欢
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
相关资源
最近更新 更多