1

コードを実行するとき

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert ECert.pem -key EKey.pem

エラーが発生します

5155:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:/SourceCache/OpenSSL098/OpenSSL098-44/src/ssl/s3_pkt.c:1102:SSL alert number 46
5155:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:/SourceCache/OpenSSL098/OpenSSL098-44/src/ssl/s23_lib.c:182:

最初からやり直して証明書を取得しようとしましたが、秘密鍵を再度取得しようとしましたが、これを修正する方法についてアドバイスをいただければ幸いです。

4

2 に答える 2

0

-verbose を追加するとよいでしょう。

これが最初に示すことは、gateway.sandbox.push.apple.com に署名した CA に署名した CA に署名したルート CA がデフォルトの openSSL バンドルに含まれていないことです。

上記の場合、それは次の証明書です。

i:/O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Certification Authority (2048)

http://www.entrust.net/knowledge-base/technote.cfm?tn=8412から取得でき、-CAfile* を使用して上記のコマンドに追加できます。

それが完了したら、適切な接続を確立し、サーバー証明書で少なくとも OK を取得できるはずです。

 Verify return code: 0 (ok)

Dw。

*: チートすることもできます - -showcert; を追加するだけです。これにより、サーバーの証明書が得られます。それを切り取り、server-cert.pem に貼り付け、「-CAfile server-cert.pem」を追加すると、openssl はそれ以上ツリーを検証しません。

于 2012-07-09T16:38:25.840 に答える