问题原因
在Maven中配置使用HTTPS协议的镜像源时,如果证书不被信任或者存在安全问题,Maven构建可能会失败并报告SSL证书检查失败的错误。
使用maven命令时,可以添加以下参数,忽略安全检查
mvn -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
参数详解
Dmaven.wagon.http.ssl.insecure=true - 允许放松ssl安全检查;
Dmaven.wagon.http.ssl.allowall=true - 允许所有的X.509格式证书匹配,如果修改为false,则会执行和浏览器一致的检查;
Dmaven.wagon.http.ssl.ignore.validity.dates=true - 忽略证书过期的问题
vscode配置
"maven.terminal.customEnv": [
{
"environmentVariable": "MAVEN_OPTS",
"value": "-Xmx512m -Xms256m -Dfile.encoding=UTF-8 -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true"
}
]
idea 配置
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
maven配置setting,使其忽略安全检查
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>my-proxy-host</host>
<port>my-proxy-port</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
<!-- 添加以下三个参数 -->
<sslHostConfig>
<!--指定是否信任所有证书-->
<all>true</all>
<!--指定使用的SSL协议版本-->
<sslProtocol>all</sslProtocol>
<!--指定是否启用SSL-->
<sslEnabled>true</sslEnabled>
<!--指定支持的SSL协议版本列表-->
<sslProtocols>TLSv1.2</sslProtocols>
<!--指定是否忽略证书验证-->
<ignoreCertificates>true</ignoreCertificates>
<!-- 指定是否信任自签名证书-->
<trustSelfSigned>true</trustSelfSigned>
<!-- 指定是否允许所有证书 -->
<allowAllCerts>true</allowAllCerts>
</sslHostConfig>
</proxy>
</proxies>