我正在使用red hat linux。我正在尝试运行此命令:
g8 typesafehub/play-scala
我得到了这样的答复:
从未经过身份验证的github peer获取异常
但是当我使用
检查连接时openssl s_client -connect github.com:443
我明白了:
验证返回码:0(ok)
这意味着我可以与github连接。为什么这个命令不起作用?
g8 typesafehub/play-scala
答案 0 :(得分:4)
我还在使用RHEL 5
的{{1}} VM映像上遇到了此问题。这是另一个注意openjdk 6
让我理解的问题。我调整了调用以为github添加信任设置;在我的情况下,它解决了对等身份验证问题。
首先使用TrustManager
和openssl
获取github证书,以使其可供Java访问。
keytool
现在用我称之为“G8”的脚本重写调用:
echo "" | openssl s_client -connect www.github.com:443 \
-showcerts 2>/dev/null | openssl x509 -out github.cert
keytool -import -alias github \
-file github.cert -storepass g8g8g8 \
-keystore $HOME/g8.truststore
现在尝试执行g8 \
\ -Djavax.net.ssl.trustStore=$HOME/g8.truststore \
\ -Djavax.net.ssl.trustStorePassword=g8g8g8 \
$*
,我觉得现在情况好多了。我想设置一个系统范围的默认信任库可能会更好,但我还没想出那个。
答案 1 :(得分:1)
如果确实存在身份验证问题,请检查您的~/.g8/config
文件authentication purpose,但不应将其用于匿名访问。
请注意,根据issue 32 of giter8,它还可能取决于您使用的Java 例如:
抱歉,openjdk 7的预览版不适合一般用途。 (还有giter8问题#27特定于mac上的openjdk。)我用giter8测试了openjdk 7~b147-2.0-0ubuntu0.11.10.1并且运行正常,所以当有最终版本可用于mac时你应该能够使用它。
目前,请尝试使用jdk 6 ,如果仍有问题,请重新开启。
另一个JDK(openjdk)最终可能会使用错误的TrustManager
,如“Avoiding the "javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
" with HttpClient
”中所述
答案 2 :(得分:0)
我遇到了和B Evans一样的问题(感谢你!),但是在Windows中,所以这里是等效的代码以防其他人有这个问题而且不知道如何从windows cmd做到这一点。我还必须从http://www.openssl.org/related/binaries.html
获取opensslopenssl s_client -connect www.github.com:443 -showcerts > out.txt
openssl x509 -out github.cert < out.txt
keytool -import -alias github -file github.cert \
-storepass g8g8g8 -keystore C:\tmp\g8.truststore
然后将其添加到JAVA_OPTS(我还必须处理我们的公司防火墙,因此代理也是如此......)
SET JAVA_OPTS=-Dhttp.proxyHost=our.proxy.com -Dhttp.proxyPort=8080 \
-Dhttps.proxyHost=our.proxy.com -Dhttps.proxyPort=8080 \
-Djavax.net.ssl.trustStore=C:\tmp\g8.truststore \
-Djavax.net.ssl.trustStorePassword=g8g8g8