2009-10-28 18 views
8

मैंने पुश अधिसूचना सर्वर स्थापित करने के प्रयास में How to build an Apple Push Notification provider server (tutorial) पर निर्देशों का पालन किया है।ऐप्पल पुश अधिसूचना सेवा: प्रमाणपत्र सर्वर साइड स्थापित करें?

जब मैं निम्नलिखित PHP कोड

// connect to apns server 
$strAPNSUrl = 'ssl://gateway.sandbox.push.apple.com:2195'; 
$strAPNSCert = 'dev.pem'; 

// generate stream 
$oStreamContext = stream_context_create(); 
stream_context_set_option($oStreamContext, 'ssl', 'local_cert', $strAPNSCert); 

// create the socket connection 
$oAPNS = stream_socket_client($strAPNSUrl, $iError, $strError, 2, STREAM_CLIENT_CONNECT, $oStreamContext); 

मैं निम्नलिखित चेतावनी मिलती है साथ कनेक्ट करने का प्रयास

Warning: stream_socket_client() [function.stream-socket-client]: SSL operation failed with code 1. OpenSSL Error messages: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert

क्या जानकारी मैं गूगल पर मिल कर लिया है के आधार पर, मुद्दा मेरा प्रमाण पत्र प्रतीत होता है।

मैं ओएस एक्स (ट्यूटोरियल में निर्देशों के अनुसार पेम फाइलों) में अपनी सीएसआर और पेम फाइलें उत्पन्न कर रहा हूं। एक बार जब मैंने dev.pem बनाया है तो मैं इसे अपने होस्टिंग प्रदाता को अपलोड कर रहा हूं और मेरी PHP स्क्रिप्ट चलाने की कोशिश कर रहा हूं। क्या प्रमाणपत्र बनाने और स्थापित करने का यह सही तरीका है?

मैं डिबगिंग विचारों से बाहर हो गया हूं। कोई भी दिशा महान होगी।

उत्तर

8

dev.pem पर पथ मेरे सर्वर पर गलत था।

निर्देश .pem फ़ाइल उत्पन्न करने के लिए वास्तव में सही तरीका हैं। एक बार बनाया जाने पर इसे किसी भी मशीन पर इस्तेमाल किया जा सकता है (न केवल उस मशीन को जो इसे उत्पन्न करता है)।

+0

क्या आपको निरपेक्ष और सापेक्ष पथ जैसी कोई समस्या मिली? –

+0

मैंने अपनी लाइव .pem फ़ाइल के फ़ाइल नाम को गलत वर्तनी दी। -उसने इसे तब तक देखा जब तक कि मैंने यह जवाब नहीं देखा जो मुझे "ध्यान से" देखता है। – James

1

क्या आप अपने सर्वर में एक ही .pem फ़ाइल का उपयोग करने में सक्षम थे? और जैसा कि आपने कहा ... किसी भी मशीन पर।

मैंने इस ट्यूटोरियल का पालन किया है और मैं अपनी मशीन से संदेश भेज सकता हूं (एक प्रमाणपत्र प्रमाणित किया गया था) लेकिन मैंने सभी फाइलों की प्रतिलिपि बनाने और स्क्रिप्ट को किसी अन्य मशीन में चलाने की कोशिश की है और मुझे आपके पास एक ही त्रुटि है मिला है।

आपने इसे किसी अन्य मशीन में कैसे काम करने के लिए किया है? क्या आपने .pem फ़ाइल स्थापित की है? कोई विशेष विन्यास?

चीयर्स

+0

.pem फ़ाइल को "इंस्टॉल" करने तक, मुझे बस इतना करना था कि यह मेरे सर्वर पर स्थानीय निर्देशिका में कॉपी हो। मुद्दा यह था कि मैंने अपनी PHP स्क्रिप्ट को क्रॉन निर्देशिका में स्थानांतरित कर दिया था जहां मैं अपनी क्रॉन नौकरियां रखता था, और .pem फ़ाइल पर प्रतिलिपि बनाने में विफल रहा था। एक बार जब मैं .pem फ़ाइल ले गया तो सब ठीक था। मेरा होस्टिंग प्रदाता लिनक्स चला रहा है, इसलिए किसी भी मंच के लिए .pem फ़ाइल अच्छी होनी चाहिए। –

+0

फ़ाइल अनुमतियां संभावित रूप से एक समस्या हो सकती हैं। मेरा .pem 644 पर सेट है। –

+0

@ जेसन जॉर्ज मैंने फ़ाइल अनुमतियां बदल दी लेकिन त्रुटि नहीं बदली। मैंने लगभग वही काम किया है जो आपने कहा है। मैंने अपनी मशीन को कॉन्फ़िगर किया है, परीक्षण किया है और सब कुछ काम कर रहा है। इसलिए, मैंने सबकुछ कॉपी करने और मेरे पास एक और मैक डालने की कोशिश की है, लेकिन इस मशीन में मुझे यह त्रुटि मिल रही है। – vfn

संबंधित मुद्दे