2012-12-03 13 views
9

के साथ POST अनुरोध मैं PHP ए का उपयोग कर साइट ए से साइट बी पर कुछ डेटा पोस्ट करने जा रहा हूं। साइट ए में एक वाणिज्यिक एसएसएल प्रमाणपत्र है। साइट बी के पास एक स्व-हस्ताक्षरित प्रमाणपत्र होगा। क्या यह करने योग्य है? यदि नहीं, तो PHP (या अपाचे) में कोई कॉन्फ़िगरेशन विकल्प हैं जिन्हें मैं प्रतिबंधों को बाईपास करने के लिए सेट कर सकता हूं?एक स्व-हस्ताक्षरित प्रमाणपत्र

+0

यदि ऐसा करने योग्य है तो आप इसे पहले क्यों नहीं देखते? – samayo

+0

क्योंकि एप्लिकेशन पूर्ण नहीं हुआ है और साइट बी अभी भी स्थापित नहीं है और न ही यह मेरे नियंत्रण में है – Aaron

उत्तर

18

संभवतः आप सर्वर ए पर कर्ल का उपयोग करेंगे? सर्टिफिकेट सत्यापन अक्षम करने के लिए कर्ल में कुछ विकल्प हैं, जो स्वयं-हस्ताक्षरित कैर्ट के माध्यम से अनुमति देंगे। लिंक अभी भी एन्क्रिप्टेड किया जाएगा, लेकिन आप उस सर्वर बी पर भरोसा करने में सक्षम नहीं होगा वास्तव में सर्वर बी है:

curlopt_ssl_verifypeer (checking the CA auth chain) 
curlopt_ssl_verifyhost (hostname/certname match checks) 

उदाहरण PHP कोड:

$ch = curl_init("https://example.com/example/path"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
$response = curl_exec($ch); 
+5

क्या कोई * विशिष्ट * स्वयं-हस्ताक्षरित प्रमाणपत्र स्वीकार करने के लिए PHP (या सामान्य रूप से क्लाइंट) को कॉन्फ़िगर करने का कोई तरीका है? मैं कल्पना करता हूं कि यह बिल्कुल प्रमाणित नहीं होने की तुलना में अधिक सुरक्षित होगा। –

2

यह करने योग्य है। PHP में, यदि आप पोस्ट करने के लिए curl का उपयोग कर रहे हैं, तो आपको केवल CURLOPT_SSL_VERIFYPEER और CURLOPT_SSL_VERIFYHOST को गलत पर सेट करने की आवश्यकता है, इसलिए यह विफल नहीं होता क्योंकि प्रमाणपत्र स्वयं हस्ताक्षरित है।

2

आप ब्राउज़र पूछ रहे हैं, तो डेटा पोस्ट करने के लिए, उपयोगकर्ता को प्रमाणपत्र के बारे में सामान्य चेतावनियां मिलेंगी जो विश्वसनीय नहीं हैं।

यदि आप अपने PHP कोड से POST करने के लिए कर्ल का उपयोग कर रहे हैं, तो आप curl के SSL चेक को अक्षम करना चाहेंगे। एक related question के अनुसार,

आप FALSE को CURLOPT_SSL_VERIFYPEER और CURLOPT_SSL_VERIFYHOST सेट करना होगा। यह> दो मुख्य चेक अक्षम करना चाहिए। वे दोनों की आवश्यकता नहीं हो सकती है, लेकिन कम से कम आपको जाना चाहिए।

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