最近,我为我的Maven回购(Apache代理背后的Artifactory)使用了letencrypt证书。通过浏览器进行回购访问可以正常工作,显示证书没有问题(下面的屏幕截图)。
如果我将证书手动导入到Java密钥库中,它也可以工作。
但是根据这个SO问题,Java应该接受以8u101开头的letencrypt证书。
我总是遇到这个异常:
sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target -> [Help 1]
C:\myproject>mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)
Maven home: C:\maven
Java version: 1.8.0_112, vendor: Oracle Corporation
Java home: C:\jdk1.8_win64\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
终于找到答案了,三个月后...
未配置Maven工件存储库前面的apache服务器来提供链中的中间证书。
我下载了中间证书-让我们加密授权机构X3(IdenTrust交叉签名) -并配置了Apache来为其提供服务。
实际上,该domain.crt
文件既包含域证书,又包含中间证书,对于我所有的测试浏览器来说,这总是足够好。但是那台机器上的Eclipse / Maven设置无法处理它。
在SSL实验室检查告诉我证书链不完整(即使似乎没有浏览器在乎)之后,我才开始查看apache配置。
之前:
SSLEngine On
SSLCertificateFile "path/to/domain.crt"
SSLCertificateKeyFile "path/to/domain.key"
后:
SSLEngine On
SSLCertificateFile "path/to/domain.crt"
SSLCertificateKeyFile "path/to/domain.key"
SSLCertificateChainFile "path/to/letsencrypt-authority-x3-identrust.pem"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句