मैं अपने (लोकलहोस्ट) विंडोज 8 मशीन से चल रहे अमेज़ॅन की एस 3 फाइलों को कनेक्ट करने की कोशिश कर रहा हूं AppServ 2.5.10 जिसमें शामिल है PHP के लिए अमेज़ॅन एसडीके का उपयोग करके अपाचे 2.2.8, PHP 5.2.6, mysql 5.0.51b और phpMyAdmin 2.10.3)। अमेज़ॅन एसडीके की नेमस्पेस फीचर के साथ संगत होने के लिए, मैंने पीपीपी को संस्करण 5.3.28 के साथ पर अपनी ज़िप फ़ाइल डाउनलोड करने और इसे अनजिप कर दिया।एडब्ल्यूएस एसएसएल सुरक्षा त्रुटि: [कर्ल] 60: एसएसएल प्रमाणपत्र जांच ... स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ
मेरा PHP कोड अमेज़ॅन ईसी 2 में एस 3 फ़ाइल तक पहुंचने के लिए ठीक काम करता है लेकिन यह मेरे विंडोज़ स्थानीय होस्ट में विफल रहा है।
गंभीर त्रुटि:: न आया हुआ अपवाद 'guzzle \ http \ अपवाद \ CurlException' संदेश के साथ '[कर्ल हालांकि जब मैं php srcipt चलाने के लिए Windows स्थानीय होस्ट मशीन में अमेज़न S3 बाल्टी फ़ाइल को पढ़ने के लिए, मैं SSL त्रुटि निम्नलिखित के रूप में मिला ] 60: एसएसएल प्रमाणपत्र समस्या: स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ [यूआरएल] https://images-st.s3.amazonaws.com/us/123977_sale_red_car.png 'सी में: \ AppServ \ www \ ecity \ विक्रेता \ guzzle \ guzzle \ src \ Guzzle \ Http \ Curl \ CurlMulti.php: 342 स्टैक ट्रेस: # 0 सी: \ AppServ \ www \ ecity \ विक्रेता \ guzzle \ guzzle \ src \ Guzzle \ Http \ Curl \ CurlMulti.php (283): Guzzle \ Http \ Curl \ CurlMulti-> isCurlException (ऑब्जेक्ट (Guzzle \ Http \ message \ अनुरोध), ऑब्जेक्ट (Guzzle \ Http \ Curl \ CurlHandle), ऐरे) # 1 सी: \ AppServ \ www \ ecity \ विक्रेता \ guzzle \ guzzle \ src \ Guzzle \ Http \ Curl \ CurlMulti.php (248): Guzzle \ Http \ Curl \ CurlMulti-> प्रक्रिया प्रतिक्रिया (ऑब्जेक्ट (Guzzle \ Http \ संदेश \ अनुरोध), ऑब्जेक्ट (Guzzle \ Http \ Curl \ CurlHandle), ऐरे) # 2 सी: \ ऐप सेवा \ www \ ecity \ विक्रेता \ guzzle \ guzzle \ src \ Guzzle \ Http \ Curl \ CurlMulti.php (231): Guzzle \ Http \ Curl \ CurlMulti-> प्रक्रिया संदेश() # 3 सी: \ AppServ \ www \ ecity \ विक्रेता \ guzzle \ guzzle \ src \ Guzzle \ Http \ Curl \ CurlMulti.php (215): Guzzle \ Http \ Curl \ CurlMulti-> executeHandles() # 4 C: \ AppServ \ www \ ecity \ ven C: \ AppServ में \ www \ ecity \ विक्रेता \ एडब्ल्यूएस \ एडब्ल्यूएस-sdk-php \ src \ Aws \ Common \ क्लाइंट \ AbstractClient.php 288
मैं निम्नलिखित के रूप में http://curl.haxx.se/ca/cacert.pem से certifate डाउनलोड करने और php.ini में परिभाषित लाइन पर: curl.cainfo = "सी: \ AppServ \ cacert.pem" लेकिन मुझे अभी भी वही त्रुटि मिली है। ऐसा लगता है कि php php.ini में परिभाषित curl.cainfo का सम्मान नहीं करता है।
मेरा PHP संस्करण 5.3.28 स्थानीयहोस्ट/phpinfo.php पर accourding है। मैंने cainfo पैरामीटर को भी C: \ AppServ \ cacert.pem के रूप में सही करने के लिए echo ini_get ("curl.cainfo") का उपयोग करके सही किया है; Php स्क्रिप्ट में । 5.3 से अधिक PHP संस्करण php.ini में curl.cainfo का समर्थन करेगा।
विंडोज़ कमांड लाइन में, मैं कर्ल व्यवहार की जांच करता हूं और यह ठीक काम करता है।
C:\Users\Jordan>curl https://s3-us-west-2.amazonaws.com/images-st/aaa.txt
curl: (60) SSL certificate problem: unable to get local issuer certificate
......
C:\Users\Jordan>curl --cacert C:\AppServ\cacert.crt https://s3-us-west-2.amazonaws.com/images-st/aaa.txt
This is aaa.txt file.
Stored in Amazon S3 bucket.
यह क्योंकि क्योंकि मैं Windows में अपाचे का इस्तेमाल किया जो php 5.3.28 ज़िप फ़ाइल से मेल नहीं खाता मैं थ्रेड सुरक्षित (2014-जून -11 01:09:56) जिप संस्करण http://windows.php.net/download/ VC9 86 से डाउनलोड किया है।
मेरी अपाचे के httpd-ssl.conf फ़ाइल में, मैं भी स्थापित करने निम्नलिखित है मैं Windows में स्थानीय मेजबान से उपयोग करें 8.
<VirtualHost _default_:443>
DocumentRoot "C:/AppServ/www"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "C:/AppServ/Apache2.2/logs/error.log"
TransferLog "C:/AppServ/Apache2.2/logs/access.log"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "C:/AppServ/Apache2.2/conf/mydomain.cert"
SSLCertificateKeyFile "C:/AppServ/Apache2.2/conf/mydomain.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "C:/Apache2.2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "C:/AppServ/Apache2.2/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
अब मैं सोच रहा हूँ कि समस्या क्या है और कैसे अमेज़न से कनेक्ट करने के के बिना एस 3 बाल्टी फाइलें और आरडीएस डेटाबेस इन कर्ल का उत्पादन करने से मेरे विंडोज 8 स्थानीय होस्ट से स्थानीय जारीकर्ता प्रमाण पत्र समस्याएं नहीं मिल सकती हैं। कोई सलाह?
$aws = Aws\Common\Aws::factory(array(
'region' => 'us-west-2',
'ssl.certificate_authority' => '/path/to/updated/cacert.pem'
));
मैं:
आप की कोशिश की ([ 'ssl.certificate_authority' विकल्प सेट] है http://docs.aws.amazon.com/aws-sdk -एचपी/गाइड/नवीनतम/faq.html # क्या-do-i-do-about-a-curl-ssl-प्रमाणपत्र-त्रुटि) जब आप एसडीके को तुरंत चालू करते हैं? –
धन्यवाद! जेरेमी। आप एडब्ल्यूएस विशेषज्ञ ने तुरंत समस्या को पकड़ लिया। – user2818066
कोई समस्या नहीं! :-) –