Maven声纳插件:信任自签名证书

sin*_*o82 5 java self-signed maven sonarqube

我尝试maven sonar:sonar使用自签名证书在 HTTPS 连接上启动到 SonarQube 实例。Maven 给我这个错误:

[错误] 无法在项目 data.model 上执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli):无法执行 SonarQube:无法从服务器获取引导程序索引: sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效认证路径 -> [帮助 1]

Spr*_*ing 0

注意:请确保您运行terminal as administratorsudo

1. 运行命令来获取您的声纳证书

$ openssl s_client -showcerts -connect {domain}:{port}

example:
$ openssl s_client -showcerts -connect sonarqube.com:443
Run Code Online (Sandbox Code Playgroud)

2.将证书复制到新文件mycert.pem

在此输入图像描述

新文件:mycert.pem
在此输入图像描述


3.将证书导入到JDK->JRE

$ keytool -importcert -file {filename}.pem -keystore "{jdk_path}/jre/lib/security/cacerts" -alias "{somename}" -storepass changeit

example:
$ keytool -importcert -file mycert.pem -keystore "/c/Program Files/Java/jdk1.8.0_202/jre/lib/security/cacerts" -alias "MyCert" -storepass changeit
Run Code Online (Sandbox Code Playgroud)

输入是
在此输入图像描述


4. 使用您的 sonarqube 链接运行 SonarQube 命令

$ mvn clean package -U sonar:sonar -Dsonar.host.url=https://sonarqube.com -Dsonar.projectKey=MyApp -Dsonar.projectName=MyApp -Dsonar.projectVersion=2.4.1 -Dsonar.language=java -Dsonar
.sources=src/main/java -Dsonar.tests=src/test/java '-Dsonar.exclusions=**/*Test*/**' -Dsonar.java.binaries=target/classes -Djavax.net.debug="ssl,handshake"
Run Code Online (Sandbox Code Playgroud)