2

Red Hat Linux を使用しています。このコマンドを実行しようとしています:

g8 typesafehub/play-scala

そして、私はこの応答を得ています:

認証されていないgithubピアからの例外取得

しかし、使用して接続を確認すると

openssl s_client -connect github.com:443

私はこれを得る:

戻りコードを確認してください: 0 (OK)

これは、github に接続できることを意味します。このコマンドが機能しないのはなぜですか?

g8 typesafehub/play-scala

4

3 に答える 3

4

RHEL 5を使用している VM イメージでもこの問題に遭遇しましたopenjdk 6TrustManager修正について私に手がかりを与えたのは、見るべきもう1つのメモでした。呼び出しを微調整して、github の信頼設定を追加します。私の状況では、ピア認証の問題を解決します。

openssl最初にとを使用して github 証明書を取得し、 keytoolJava からアクセスできるようにします。

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」と呼ぶスクリプトで呼び出しを書き直します。

g8 \
   \ -Djavax.net.ssl.trustStore=$HOME/g8.truststore \
   \ -Djavax.net.ssl.trustStorePassword=g8g8g8 \
   $*

実行G8 -v typesafehub/akka-scala-sbtしてみると、物事がずっと幸せになっていることがわかります。システム全体のデフォルトのトラストストアを設定する方が良いと思いますが、まだそれを理解していません。

于 2012-11-03T06:47:04.430 に答える
1

本当に認証の問題である場合は、認証目的~/.g8/configでファイルを確認してください。ただし、匿名アクセスには必要ありません。

issue 32 of giter8によると、使用しているJavaにも依存する可能性があることに注意してください。
例えば:

申し訳ありませんが、openjdk 7 のプレビュー リリースは一般的な使用には適していません。(Mac 上の openjdk に固有の giter8 issue #27 もあります。) 私は openjdk 7~b147-2.0-0ubuntu0.11.10.1 を giter8 でテストしましたが、問題なく動作しました。それを使用する。

今のところ、jdk 6で試してみて、それでも問題が解決しない場合は再度開いてください。

別の JDK (openjdk) が間違った を使用する可能性TrustManagerありますjavax.net.ssl.SSLPeerUnverifiedException: peer not authenticatedHttpClient

于 2012-06-15T08:05:25.750 に答える
0

私はBEvansと同じ問題を抱えていました(これに感謝します!)が、Windowsでは、他の誰かがこの問題を抱えていて、Windows cmdからそれを行う方法がわからない場合に備えて、同等のコードがあります。また、 http: //www.openssl.org/related/binaries.htmlからopensslを取得する必要がありました

openssl 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
于 2013-01-09T15:58:32.713 に答える