我想使用可通过https访问的git repo,Https服务器具有自签名证书。尝试使用eclipse + egit克隆回购时,我总是遇到错误:
https://host/path:无法打开git-upload-pack sun.security.validator.ValidatorException:PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到所请求目标的有效证书路径
是否可以绕过此问题?我使用export GIT_SSL_NO_VERIFY=1
命令跳过控制台客户端的ssl验证。这个技巧不适用于eclipse。
谢谢,
Hubi
答案 0 :(得分:9)
您也可以将eGit设置为忽略服务器验证。在Eclipse中转到Window - >偏好。
从那里去团队 - > Git - >构造
点击“新条目”
键:http.sslVerify 值:false
点击“确定”
点击“确定”
有关此更详细的方法,请查看我的博客文章: http://www.pur-logic.com/2012/04/21/egit-self-signed-certificate/
答案 1 :(得分:5)
您必须将该证书导入密钥库(JDK目录中的默认密钥库cacerts,或者使用参数-Djavax.net.ssl.trustStore指定一个)。
答案 2 :(得分:1)
FAQ of CAcert提供了keytool的命令行:
keytool -keystore $/PATH/TO/CACERTS/KEYSTORE -storepass changeit -import -trustcacerts -v -alias cacertclass1 -file root.crt
-trustcacerts
才能导入法线
证书。 -alias
也可能是不必要的答案 3 :(得分:0)
我也遇到了一些麻烦,但是有一个不同的故事。 Git仓库的主机名与证书的主机名不匹配。解决方案是更改证书以匹配主机名。
答案 4 :(得分:0)
我们应该为此用例使用http.sslCAInfo
选项
但是,这个选项的eclipse JGit开发状态已经停留了很长时间。
FYI