这里有一些与旧版本类似的问题,但那里提供的解决方案对我的情况没有帮助 - 所以我希望对这个更新的配置有一些了解。
我通过 Eclipse 市场安装了最新的 SonarLint (3.1),但我无法让 SonarLint 连接到我们的 SonarQube 服务器 (5.6.1)。
当我在 SonarQube servers View 中单击 Test connection
时,它无法连接到 https://our.sonarqube-server.com/api/系统/状态
与 javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX 路径构建失败
。
浏览器将在 https://our.sonarqube-server.com/api/system/status
上显示信息(一些 id,版本 5.6.1,UP)。所以服务器已启动并正在运行。
为了确保安装了正确的证书,我在帮助 -> 关于 Eclipse -> 安装详细信息 -> 配置下检查了我正在运行的 jre1.8.0_131。我从 our.sonarqube-server.com 的链中下载了 3 个证书,并使用 bin\keytool.exe -import -trustcacerts -keystore lib\security\cacerts -storepass changeit ...
安装了它们truststore 并使用 -list
检查它们确实存在。
版本应该兼容(据说 SonarLint 3.1 与 SonarQube 服务器 5.6+ 兼容)。
你知道这个配置还有什么问题吗?当我在自己的机器上安装本地 SonarQube 服务器时,我可以用相同的方式成功连接到 localhost:9000
(生成 token - 就像我在 our.sonarqube-server.com 上所做的那样)。由于 localhost:9000
不涉及 SSL,我猜想 SonarLint 插件正在其他地方寻找证书,但我不知道如何找到证书,它看起来在哪里......
感谢您的帮助。
最佳答案
我自己在使用 SonarLint 3.1 和 SonarQube 6.7 时遇到了类似的问题。
在 IntelliJ 中,我一直遇到这个错误消息
Failed to connect to the server. Please check the configuration.
Error: Fail to request https://<SONARQUBE>/api/system/status
但是我可以通过我的浏览器毫无问题地访问该 URL。
当您对来自浏览器和 IDE 的请求进行 WireShark 时,您可以看到密码套件完全不同并且 IDE 插件出现 TLS 握手失败。
这让我发现 Java 仍然附带强度有限的加密函数。这要么是因为美国的导出政策,要么是因为没有人抽出时间来解决它。互联网不太确定。
无论哪种方式,您都可以从 Oracle 下载 Java 密码术扩展 (JCE) 无限强度管辖策略文件:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
将它们安装到 IntelliJ JVM 后,我在尝试连接到 SonarQube 时不再遇到底层 TLS 握手失败并且连接正常。
IntelliJ 会询问您有关证书的信息,因此所有这些都比手动处理证书更容易。
关于java - 带有 SonarLint (3.1) 的 Eclipse (neon) 无法连接到 SonarQube 服务器 (5.6.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44050859/