0

ペイロードデータの送信中に、phpスクリプトでこのエラーが発生します。

Warning: stream_socket_client() [function.stream-socket-client]:
Unable to set private key file `/Applications/XAMPP/xamppfiles/htdocs/test/apn/apns-dev.pem'
in /Applications/XAMPP/xamppfiles/htdocs/test/apn/push.php on line 42

Warning: stream_socket_client() [function.stream-socket-client]:
failed to create an SSL handle
in /Applications/XAMPP/xamppfiles/htdocs/test/apn/push.php on line 42

Warning: stream_socket_client() [function.stream-socket-client]:
Failed to enable crypto
in /Applications/XAMPP/xamppfiles/htdocs/test/apn/push.php on line 42

Warning: stream_socket_client() [function.stream-socket-client]:
unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error)
in /Applications/XAMPP/xamppfiles/htdocs/test/apn/push.php on line 42

理由は何ですか ?設定を変更する必要がありますか?サーバーに.pemファイルもインストールしました。

ありがとう

4

3 に答える 3

4

この問題があり、キー生成プロセスが問題でした.証明書とキーファイルには2つの異なるopensslコマンドがありますが、両方に同じコマンドを使用していました. 証明書を生成し、秘密鍵ファイルからパスワードを削除する方法は次のとおりです(.p12ファイルをエクスポートしたと仮定):

openssl pkcs12 -clcerts -nokeys -out aps-dev-cert.pem -in aps-dev-cert.p12
openssl pkcs12 -nocerts -out aps-dev-key.pem -in aps-dev-key.p12
openssl rsa -in aps-dev-key.pem -out aps-dev-key.unencrypted.pem
cat aps-dev-cert.pem aps-dev-key.unencrypted.pem > aps-dev.pem

最初の 2 つの openssl コマンドの違いに注意してください。

于 2010-09-04T11:15:40.800 に答える
4

APN への接続に使用している PHP コード (push.php) を投稿できますか?

暗闇でのショット:
- 証明書と秘密鍵の両方が 1 つの .pem ファイルに含まれていますか?
- 秘密鍵ファイルからパスワードを削除しましたか、それとも PHP コードで適切に設定していますか?
- スクリプトを実行しているユーザーは、証明書/キー ファイルにアクセス/読み取るための適切な UNIX 権限を持っていますか?
- あなたのマシンから Apple のサーバーにアクセスできますか? telnet を実行してテストできます。

telnet gateway.sandbox.push.apple.com 2195
于 2009-11-20T23:29:55.453 に答える