2009-11-19 91 views
0

我在發送有效載荷數據的同時在我的php腳本中出現此錯誤。服務器腳本中的APN錯誤

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

你可以發佈你正在使用連接到AP的PHP代碼(push.php)?

在黑暗中的一些鏡頭:
- 證書和私鑰都在那個.pem文件中嗎?
- 您是否從私鑰文件中刪除密碼,或者您是否在PHP代碼中正確設置密碼?
- 運行腳本的用戶是否具有訪問/讀取證書/密鑰文件的正確unix權限?
- 你能從你的機器訪問Apple的服務器嗎?您可以通過運行telnet進行測試。

telnet gateway.sandbox.push.apple.com 2195 
+0

我試過'telnet gateway.sandbox.push.apple.com 2195'它一直被外國主機關閉。 – 2012-08-04 13:39:21

4

我有這個問題,密鑰生成過程是問題,也有證書和密鑰文件,而我用兩個相同的兩個不同的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 

注意前兩個OpenSSL的命令的區別。

0

我也有這個問題。對於我來說,在SSL選項去掉「密碼」的明確設定後的工作:

$context_options = [ 
    'ssl' => [ 
     'local_cert' => ..., 
     'passphrase' => ..., 
     'ciphers' => 'DES-CBC3-SHA' 
    ] 
]; 
stream_context_set_option($stream_context, $context_options); 

,以便消除行之後:「密碼」 =>「DES-CBC3-SHA」它的工作。

相關問題