今天我和我的同事花了一些时间研究Maven发布插件的问题。
一名新雇员试图在他之前从未部署的svn回购中运行release:perform
。该命令将挂起失败,并且永远不会部署工件;显示的错误是:
[INFO] Error validating server certificate for 'https://forge.onehippo.org:443':
[INFO] - The certificate is not issued by a trusted authority. Use the
[INFO] fingerprint to validate the certificate manually!
[INFO] - The certificate hostname does not match.
[INFO] Certificate information:
[INFO] - Subject: CN=*.onehippo.org, OU=Domain Control Validated, O=*.onehippo.org
[INFO] - Valid: from Mon Aug 01 15:57:43 CEST 2011 until Thu Aug 02 21:19:06 CEST 2012
[INFO] - Issuer: SERIALNUMBER=07969287, CN=Go Daddy Secure Certification Authority, OU=http://certificates.godaddy.com/repository, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US
[INFO] - Fingerprint: cb:6c:4e:0e:4a:fa:63:3d:f9:e1:ef:c1:e6:81:b5:bc:7a:4e:dd:f8
答案 0 :(得分:1)
经过多次尝试和高级开发人员的一些建议后,我们通过将标签的新副本签出到临时文件夹并从那里运行mvn deploy
来解决了这个问题。
这让我们可以选择回答用户输入提示并接受证书,如果通过发布插件运行部署,这是不可能的。正如您所看到的,问题是Java默认SSL实现无法识别通配符证书,因此无法验证(完美)匹配主机名。
由于这个问题很少发生,如果发生这种情况,只有当用户开始使用特定的存储库时,它才是一个容易被遗忘的问题。