php - एक स्थानीय xampp / apache सर्वर पर एसएसएल सेट अप करना




ssl https (6)

आप स्वयं हस्ताक्षरित प्रमाणपत्र बनाकर और फिर उन प्रमाणपत्रों को स्थापित करके XAMPP पर SSL सक्षम कर सकते हैं। एसएसएल फ़ोल्डरों को प्रमाण पत्र जेनरेट करने और स्थानांतरित करने के लिए नीचे दिए गए आदेश टाइप करें।

openssl genrsa -des3 -out server.key 1024

openssl req -new -key server.key -out server.csr

सीपी server.key server.key.org

openssl rsa -in server.key.org -out server.key

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

सीपी सर्वर.crt /opt/lampp/etc/ssl.crt/domainname.crt

सीपी server.key /opt/lampp/etc/ssl.key/domainname.key

(यदि आप सुपर उपयोगकर्ता नहीं हैं तो प्रत्येक कमांड के साथ सुडो का उपयोग करें)

अब, जांचें कि mod_ssl [XAMPP_HOME] /etc/httpd.conf में सक्षम है:

LoadModule ssl_module मॉड्यूल / mod_ssl.so

इस उदाहरण में "localhost.domainname.com" को [xAMPP_HOME] /etc/extra/httpd-ssl.conf संपादन करके वर्चुअल होस्ट जोड़ें:

<virtualhost 127.0.1.4:443>
    ServerName localhost.domainname.com
    ServerAlias localhost.domainname.com *.localhost.domainname.com
    ServerAdmin [email protected]

    DocumentRoot "/opt/lampp/htdocs/"

    DirectoryIndex index.php

    ErrorLog /opt/lampp/logs/domainname.local.error.log
    CustomLog /opt/lampp/logs/domainname.local.access.log combined

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /opt/lampp/etc/ssl.crt/domainname.crt
    SSLCertificateKeyFile /opt/lampp/etc/ssl.key/domainname.key

    <directory /opt/lampp/htdocs/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </directory>
    BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</virtualhost>

/ Etc / hosts में निम्न प्रविष्टि जोड़ें:

127.0.1.4 localhost.domainname.com

अब, प्रमाण पत्र स्थापित करने का प्रयास करें / ब्राउज़र में प्रमाण पत्र आयात करने का प्रयास करें। मैंने यह जांच की है और यह उबंटू पर काम किया है।

मैं अपने स्थानीय वेबसर्वर से सक्रिय निर्देशिका तक पहुंचने का प्रयास कर रहा हूं। ऐसा करने के लिए मैं xampp का नवीनतम संस्करण और adLDAP नामक एक PHP स्क्रिप्ट का उपयोग कर रहा हूं। अगर मैं सही चीजों को समझता हूं, तो मुझे एसएसएल को https यूआरएल तक पहुंचने में सक्षम होना चाहिए। मैंने इसे Google पर करने की कोशिश की है लेकिन बिना किसी किस्मत के :( क्या कोई भी ट्यूटोरियल को लिंक कर सकता है या मुझे बता सकता है कि विंडोज 7 64 बिट के लिए xampp / apache पर एसएसएल कैसे स्थापित करें? किसी भी मदद की सराहना की जाएगी :)


यह पता चला है कि OpenSSL को XAMPP 1.7.2 के PHP 5.3 में संकलित और सक्षम किया गया है और इसलिए अब एक अलग एक्सटेंशन डीएल की आवश्यकता नहीं है।

हालांकि, आपको इसे अपनी PHP.ini फ़ाइल लाइन extension=php_openssl.dll में सक्षम करने की आवश्यकता होगी


मैंने यहां सुझाई गई सभी चीजें की हैं और मेरा कोड अभी भी काम नहीं कर रहा है क्योंकि मैं curl का उपयोग कर रहा था

यदि आप php फ़ाइल में curl का उपयोग कर रहे हैं, तो कर्ल डिफ़ॉल्ट रूप से सभी एसएसएल यातायात को अस्वीकार कर रहा है। एक त्वरित फिक्स जो मेरे लिए काम करता था वह जोड़ना था:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

कॉल करने से पहले:

 curl_exec():

PHP फ़ाइल में।

मेरा मानना ​​है कि यह एसएसएल प्रमाणपत्रों के सभी सत्यापन को अक्षम करता है।


मैं इंटरनेट पर सभी उत्तरों और ट्यूटोरियल के माध्यम से रहा हूं लेकिन XAMPP के साथ स्थानीयहोस्ट पर एसएसएल ( https ) को सक्षम करने के लिए बुनियादी कदम यहां दिए गए हैं:

आवश्यक:

  1. चलाएं -> "सी: \ xampp \ apache \ makecert.bat" (विंडोज़ पर डबल-क्लिक करें) अपनी पसंद के पासवार्ड भरें, सब कुछ के लिए एंटर दबाएं लेकिन "localhost" को परिभाषित करें !!! यहां पूछे जाने पर सावधान रहें:

    सामान्य नाम (जैसे सर्वर एफक्यूडीएन या आपका नाम) []: लोकलहोस्ट

    (प्रमाणपत्र केवल डोमेन नाम क्षेत्र जारी किए जाते हैं!)

  2. अपाचे को पुनरारंभ करें
  3. क्रोम -> सेटिंग्स -> खोज "प्रमाणपत्र" -> प्रमाण पत्र प्रबंधित करें -> विश्वसनीय रूट प्रमाणीकरण प्राधिकरण -> आयात -> "सी: \ xampp \ apache \ conf \ ssl.crt \ server.crt" -> "हाँ" पूछना चाहिए पुष्टि के लिए!
  4. https://localhost/testssl.php -> [ठीक है, अब ग्रीन!] (कोई भी HTML परीक्षण फ़ाइल)

वैकल्पिक: (यदि ऊपर काम नहीं करता है, तो इन चरणों में से अधिक करें)

  1. व्यवस्थापक के रूप में XAMPP चलाएं (प्रारंभ करें -> XAMPP -> राइट-क्लिक करें -> व्यवस्थापक के रूप में चलाएं)
  2. एक्सएएमपीपी -> अपाचे -> कॉन्फ़िगर -> httpd.conf ("सी: \ xampp \ apache \ conf \ httpd.conf")

    LoadModule ssl_module मॉड्यूल / mod_ssl.so (# फॉर्म को लाइन की शुरुआत हटाएं)

  3. एक्सएएमपीपी -> अपाचे -> कॉन्फ़िगर -> php.ini ("सी: \ xampp \ php \ php.ini")

    एक्सटेंशन = php_openssl.dll (हटाएं; लाइन की शुरुआत से)

  4. अपाचे और क्रोम को पुनरारंभ करें!

किसी भी समस्या या अपने प्रमाण पत्र की स्थिति की जांच करें:

क्रोम -> एफ 12 -> सुरक्षा -> प्रमाणपत्र देखें


मैंने यहां सुझाए गए सामानों में से अधिकांश किया है, अभी भी काम नहीं किया है। कोशिश की और यह काम किया: अपना एक्सएएमपीपी नियंत्रण कक्ष खोलें , अपाचे मॉड्यूल के लिए कॉन्फ़िगर बटन का पता लगाएं। कॉन्फ़िगर बटन पर क्लिक करें और PHP (php.ini) का चयन करें। किसी भी टेक्स्ट एडिटर के साथ खोलें और php_openssl से पहले सेमी-कॉलम को हटा दें। सहेजें और अपाचे को पुनरारंभ करें। ऐसा करना चाहिए!


अंत में यह काम करने के लिए मिला!

  1. प्रमाणपत्र बंडल डाउनलोड करें।

  2. इसे कहीं रखो। मेरे मामले में, वह c:\wamp\ निर्देशिका था (यदि आप Wamp 64 बिट का उपयोग कर रहे हैं तो यह c:\wamp64\ ) है।

  3. mod_ssl में अपाचे और php_openssl.dll में mod_ssl को सक्षम करें। लेकिन सावधान रहें, मेरी समस्या यह थी कि मेरे पास दो php.ini फ़ाइलें थीं और मुझे इन दोनों में ऐसा करने की ज़रूरत है। एक वह है जिसे आप अपने WAMP टास्कबार आइकन से प्राप्त करते हैं, और दूसरा, मेरे मामले में, C:\wamp\bin\php\php5.5.12\

  4. php.ini फ़ाइलों दोनों में इन पंक्तियों को अपने प्रमाण में जोड़ें:

    curl.cainfo="C:/wamp/cacert.pem"
    openssl.cafile="C:/wamp/cacert.pem"
    
  5. वैंप सेवाओं को पुनरारंभ करें।





php apache ssl https xampp