0

私は notnoop APNS 0.2.3 を使用しており、証明書に苦労していましたが、現在は SSL に苦労しています。

ライブラリ用に p12 ファイルを準備する方法に関するドキュメントはありません。そのため、この記事を参考にしてください。

service = APNS.newService() 
            .withCert(mycertPath, myP12password)
            .withSandboxDestination()
            .build();        
service.start();
service.testConnection();
service.push(listOfTokens,payload);

start メソッドは次のダンプで失敗します

09:46:16,657 INFO  ~ Failed to send message Message(Token=00; Payload=)... trying again after delay
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1822)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1004)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:654)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:100)
at java.io.OutputStream.write(OutputStream.java:58)
at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:240)
at com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:230)
at com.notnoop.apns.internal.ApnsConnectionImpl.testConnection(ApnsConnectionImpl.java:294)
at com.notnoop.apns.internal.ApnsServiceImpl.testConnection(ApnsServiceImpl.java:57)

p12ファイルを台無しにしましたか?私がここで見逃しているものは他にありますか?

[更新 1] 次のスクリプトを使用して p12 ファイルのコマンド ラインを作成およびテストしようとしていますが、接続エラーも発生しているため、証明書に問題がある可能性があります。

[更新 2] p12 ファイルを作成するようにスクリプトを変更しました...他の人がこの恩恵を受けることができるように。

#!/bin/sh
bold=`tput bold`
normal=`tput sgr0`

# CONVERT CERT TO PEM
echo "${bold}CONVERTING${normal} APNS..."
openssl x509 -in aps_development.cer -inform der -out aps_development.pem
openssl x509 -in aps_production.cer -inform der -out aps_production.pem

# CONVERT PRIVATE KEY P12 INTO PEM
echo "${bold}CONVERTING ${normal} private key..."
openssl pkcs12 -nocerts -out my_private.pem -in my_private.p12

# COMBINE CERTS INTO SINGLE P12
echo "${bold}COMBINING ${normal} development..."
#cat aps_development.pem my_private.pem > my_development.pem
openssl pkcs12 -export -in aps_development.pem -inkey my_private.pem -out my_development.p12

# COMBINE CERTS INTO SINGLE P12
echo "${bold}COMBINING ${normal} production..."
#cat aps_production.pem my_private.pem > my_production.pem
openssl pkcs12 -export -in aps_production.pem -inkey my_private.pem -out my_production.p12

echo "${bold}TESTING${normal}..."

# TEST IT
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert aps_development.pem -key my_private.pem
4

1 に答える 1

0

問題は証明書の問題であり、"アドホック" は実稼働プッシュ サーバーでのみ機能するという誤解です。

于 2013-05-25T06:50:51.913 に答える