maven配置忽略ssl证书校验

发布时间 2023-08-09 15:44:27作者: 昕希

一、为什么配置忽略ssl校验

首先从一个常见的错误说起。

当使用mvn打包时,会报错:

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

问题原因是没有导入中心仓域名的证书ssl证书校验不通过,就会报错误。

此时有两种方式:

  1. 配置ssl证书,见文档
  2. 配置忽略ssl证书,见下文;

二、如何配置忽略ssl校验

示例:

mvn -X clean install -Dmaven.resolver.transport=wagon -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:允许使用服务的带hostname X.509格式的证书。如果讲参数改为false,那么就会使用长默认的浏览器证书检查。

-Dmaven.wagon.http.ssl.ignore.validity.dates=true:忽略整数中日期的检查。

Dmaven.resolver.transport=wagon在Maven3.9.0或者更高的版本中,默认的http调用已经切换到了Apache HttpClient 4。需要切换成旧的wagon组件,否则前面的三个参数不会生效。

参考

[1] stackoverflow-How to tell Maven to disregard SSL errors (and trusting all certs)?

[2] Maven Wagon HTTP

[3] Guide to Remote repository access through authenticated HTTPS