मैं लोकलहोस्ट पर अपाचे के लिए HTTPS की अनुमति कैसे दूं?


193

मुझे लोकलहोस्ट पर अपाचे पर एक स्व-हस्ताक्षरित प्रमाण पत्र के साथ HTTPS स्थापित करने के लिए कहा गया था, लेकिन मैं वास्तव में ऐसा कैसे करूं? मेरा कोई अता-पता नहीं है।


1
Serveo का प्रयोग करें ! ssh -R youruniquesubdomain:80:localhost:3000 serveo.netअपने उपडोमेन और पोर्ट नंबर में थप्पड़ और आप जाने के लिए तैयार हैंhttps://youruniquesubdomain.serveo.net
totymedli

जवाबों:


135

मैंने बस यही प्रयास किया है - मुझे विंडोज पर अपने लोकलहोस्ट अपाचे पर कुछ विकास कोड का परीक्षण करने की आवश्यकता है । यह वाया उससे अधिक कठिन था जितना होना चाहिए था। लेकिन यहां ऐसे कदम बताए गए हैं जो हेयरपॉलिंग के बाद काम करने में कामयाब रहे ...

मैंने पाया कि मेरा अपाचे इंस्टॉल आता है openssl.exeजो सहायक है। यदि आपके पास एक प्रति नहीं है, तो आपको इसे डाउनलोड करना होगा। मेरी कॉपी Apache2\binफ़ोल्डर में थी जो मैं इसे नीचे कैसे संदर्भित करता हूं।

कदम:

  1. सुनिश्चित करें कि आप अपने Apache conf फ़ोल्डर में लिखने की अनुमति है
  2. Apache2\confफ़ोल्डर में एक कमांड प्रॉम्प्ट खोलें
  3. प्रकार
    ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
  4. आप सभी प्रश्नों को खाली छोड़ सकते हैं:

    • पीईएम पासफ़्रेज़: एक अस्थायी पासवर्ड जैसे "पासवर्ड"
    • सामान्य नाम: आपके सर्वर का होस्टनाम

  5. जब वह पूरा हो जाए, तो टाइप करें
    ..\bin\openssl rsa -in blarg.pem -out blarg.key

  6. टाइप करके अपना स्व-हस्ताक्षरित प्रमाणपत्र बनाएं:
    ..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365

  7. Apache की conf\httpd.confफ़ाइल खोलें और सुनिश्चित करें कि SSL मॉड्यूल सक्षम है - इस लाइन के शुरू में कोई हैश नहीं होना चाहिए:
    LoadModule ssl_module modules/mod_ssl.so

  8. कुछ अपाचे इंस्टॉलेशन एसएसएल कॉन्फ़िगरेशन को एक अलग फ़ाइल में रखते हैं। यदि ऐसा है, तो सुनिश्चित करें कि SSL कॉन्फ़िडेंस फ़ाइल शामिल की जा रही है। मेरे मामले में मुझे इस लाइन को अनसुना करना पड़ा:
    Include conf/extra/httpd-ssl.conf

  9. SSL कॉन्फिगरेशन में httpd-ssl.confमुझे निम्नलिखित पंक्तियों को अपडेट करना था:

    • अपडेट
      SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
      करें
      SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
      (पथ में कोष्ठक मॉड्यूल को भ्रमित करते हैं, इसलिए हमें उनसे बचने की आवश्यकता है)
    • DocumentRoot - इसे अपनी वेब फ़ाइलों के लिए फ़ोल्डर में सेट करें
    • ServerName - सर्वर का होस्टनाम
    • SSLCertificateFile "conf/blarg.cert"
    • SSLCertificateKeyFile "conf/blarg.key"

  10. अपाचे को फिर से शुरू करें।

  11. https://localhost/अपने ब्राउज़र में लोड करने का प्रयास करें ।

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

(नील ओम्बेम्स्की के स्क्रीनशॉट सौजन्य और उनके उपयोगी लेख - हालांकि अब काफी पुराने हैं।)


2
धन्यवाद। मुझे भी ErrorLog, TransferLog और CustomLog निर्देशों को मान्य रास्तों पर संपादित करना था अन्यथा Apache शुरू नहीं होती।
तामलिन

1
किसी कारण के लिए, निर्देश किसी भी लंबे या अधूरे काम नहीं करते हैं
याकूब 13

6
मुझे काम करने के लिए अपने httpd.conf में निम्न को भी अनफॉलो करना पड़ा: लोडमॉडल सोशएचे_शमबीबी_मॉड्यूल मॉड्यूल / mod_socache_shmcb.so
erik

1
मैं यह काम करते हैं, जोड़ने मॉड्यूल LoadModule socache_shmcb_module मॉड्यूल / mod_socache_shmcb.so और में बनाने के लिए दो और चरण किया httpd-ssl.conf लाइन 250, CustomLog ".apache24 / लॉग / ssl_request.log" \ पर मैं सही ssl लॉग पथ
वसीम एक ।

5
.Pem और .key फ़ाइलों को जनरेट करने के लिए, मुझे चरण 2 पर 2 वातावरण चर सेट करने थे: OPENSSL_CONF = C: \ path \ to to \ apache \ Apache2.4.4। पथ \ _ \ _ अपाचे \ अपाचे 2.4.4 \ conf \। और
Eosphere

57

मैं इसके लिए ngrok ( https://ngrok.com/ ) का उपयोग करता हूं । ngrok एक कमांड लाइन टूल है और लोकलहोस्ट के लिए एक सुरंग बनाता है। यह http और https दोनों कनेक्शन बनाता है। इसे डाउनलोड करने के बाद, निम्नलिखित कमांड को चलाने की आवश्यकता है:

ngrok http 80

(संस्करण 2 में, सिंटैक्स है: http 80 एनरोक। संस्करण 2 में, किसी भी पोर्ट को टनल किया जा सकता है।)

कुछ सेकंड के बाद, यह दो url देगा:

http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com

अब, दोनों url लोकलहोस्ट की ओर इशारा करते हैं।


1
@sudip, क्या ngrok का ओपन सोर्स कोड इस तरह से काम करता है कि हम अपने सर्वर पर इसे बिना संशोधन के होस्ट कर सकते हैं? यदि नहीं, तो यह शोस्टॉपर के रूप में बहुत अधिक है क्योंकि यह उपयोगकर्ताओं को एनरोक जैसे बाहरी होस्ट के अनुरोधों को रीडायरेक्ट करना ठीक नहीं है
पचेरियर

2
@ स्पेसर I का इरादा सर्वर पर इसका उपयोग करने का नहीं है। मैं इसका उपयोग लोकलहोस्ट पर करता हूं (Bcz मेरा नेटवर्क प्रदाता मुझे एक गतिशील आईपी देता है)। मैंने पहली बार पेपल आईपीएन परीक्षण के लिए इसका इस्तेमाल किया और इसने पूरी तरह से काम किया। मुझे आश्चर्य है कि कोई इसे सर्वर पर और किस उद्देश्य के लिए उपयोग करेगा।
सुदीप

@ सुदीप, उद्देश्य स्पष्ट है, एचटीटीपीएस के साथ काम करने के लिए HTTP पर काम करने वाले कोड को अनुमति देने के लिए कोई अतिरिक्त कोडिंग की आवश्यकता नहीं है।
पचेरियर

1
हालांकि यह उपयोगी है, यह खुले इंटरनेट पर अपने देव मशीन तक पहुंच की अनुमति देने के लिए अविश्वसनीय रूप से असुरक्षित लगता है। इस तरह से कुछ का उपयोग करने से आपको सुरक्षा के प्रति सजग नियोक्ता को निकाल दिया जाएगा।
एंडी एम

@YumYumYum यह वी 1 में पहले पूरी तरह से मुफ्त था। लेकिन, वी 2 में http और https पोर्ट अभी भी मुफ्त हैं (न जाने क्या कोई पोर्ट प्रतिबंध मुक्त योजना है)। यहां मुफ्त की योजना देखें: ngrok.com/product#pricing
sudip

24

यहाँ यह करने का सबसे सरल तरीका है

सबसे पहले अपने apache / conf / ssl डायरेक्टरी में इन server.crt & server.key फाइल्स (अटैचमेंट में लगाएं) को कॉपी करें

तब httpd.conf फ़ाइल खोलें और निम्नलिखित पंक्ति जोड़ें

Listen 80
Listen 443

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot "d:/wamp/www"  #your wamp www root dir
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.crt"
    SSLCertificateKeyFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.key"
</VirtualHost>

3
मुझे मॉड्यूल LoadModule ssl_module libexec / apache2 / mod_ssl.so इन (/etc/apache2/httpd.conf)
एलेक्सी

17
मुझे आश्चर्य है कि कितना सुरक्षित / खतरनाक डाउनलोड हो रहा है। * .crt * .key फ़ाइलों को अपने स्वयं के जेनरेट करने के बजाय अविश्वसनीय स्रोत से।
पेट्र पेलर

4
@PetrPeller हम स्थानीय विकास के लिए https सेट कर रहे हैं, इसलिए सुरक्षित / खतरनाक के लिए आश्चर्य क्यों
अनिल गुप्ता

7
उन फ़ाइलों को कैसे जेनरेट किया जाए, इसका स्पष्टीकरण बहुत अच्छा होगा। क्योंकि अज्ञात स्रोत से फाइलें डाउनलोड करना एक बुरा अभ्यास है, लेकिन यह भी क्योंकि उस तरह के लिंक किसी बिंदु पर टूट जाएंगे।
Stephan Vierkant

2
यह ट्यूटोरियल ठीक है digitalocean.com/community/tutorials/…
धीरज

11

आपके वेब सर्वर से भेजी जाने वाली सूचनाओं की सुरक्षा की रक्षा करने के लिए, ग्राहकों और सर्वर के बीच संचार के एन्क्रिप्शन को सक्षम करना एक अच्छा विचार है। इसे अक्सर एसएसएल कहा जाता है

तो चलो Apache2 पर एक स्व-हस्ताक्षरित प्रमाण पत्र के साथ HTTPS स्थापित करें। मैं उन चरणों को सूचीबद्ध करने जा रहा हूं जिनका आपको पालन करना चाहिए:

  • अपनी मशीन पर apache2 वेब-सर्वर स्थापित करें। लाइनक्स मशीन के लिए टर्मिनल खोलें और टाइप करें

sudo apt-get install apache2

  • सफल स्थापना के बाद कमांड निष्पादित करके apache2 सेवा की स्थिति की जाँच करें

sudo सेवा apache2 स्थिति

इसका उत्पादन होना चाहिए

apache2 सेवा की स्थिति

  • ब्राउज़र और प्रकार पर नेविगेट करें

http: // localhost: 80

सत्यापित करें कि आपको इस तरह apache2 के लिए डिफ़ॉल्ट पृष्ठ मिलता है।

apache2 का डिफ़ॉल्ट आउटपुट

  • वेब कनेक्शन को एन्क्रिप्ट करने के लिए हमें CA (प्रमाणपत्र प्राधिकरण) से प्रमाण पत्र की आवश्यकता होती है या हम स्व हस्ताक्षरित प्रमाण पत्र का उपयोग कर सकते हैं। आइए निम्नलिखित कमांड का उपयोग करके स्व हस्ताक्षरित प्रमाण पत्र बनाएं।

Opensl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365 -nodes

कृपया नीचे दिखाए अनुसार जानकारी भरें।

Opensl का उपयोग करके स्व हस्ताक्षरित प्रमाणपत्र बनाएं

mykey.key और mycert.pem अपने वर्तमान कार्यशील निर्देशिका में बनाया जाना चाहिए।

  • यह अच्छा होगा यदि हम एक सामान्य स्थान पर प्रमाण पत्र और चाबियाँ ले जाएं और उन्हें खोजने के लिए apache2 वेब सर्वर के लिए आसान होगा। तो चलिए निम्नलिखित कमांड को निष्पादित करते हैं

sudo cp mycert.pem / etc / ssl / certs

sudo cp mykey.key / etc / ssl / private

  • आइए अपने सर्वर पर एसएसएल मोड को सक्षम करें

सूद a2enmod ssl

इसे इस तरह आउटपुट करना चाहिए

ssl को सक्षम करें

  • आइए अपाचे 2 को स्व-हस्ताक्षरित प्रमाणपत्र और कुंजी का उपयोग करने के लिए कॉन्फ़िगर करें जो हमने ऊपर उत्पन्न किया है।

sudo vi /etc/apache2/sites-available/default-ssl.conf

कृपया इन दो पंक्तियों को खोजें और उन्हें अपने प्रमाणित और प्रमुख रास्तों से बदलें।

प्रारंभिक

डिफ़ॉल्ट-conf

अंतिम

बाद में विन्यास बदलता है

  • साइट को सक्षम करें

cd / etc / apache2 / sites-available /

sudo a2ensite default-ssl.conf

  • Apache2 सेवा को पुनरारंभ करें

sudo service apache2 पुनरारंभ

  • Apache2 वेब-सर्वर को HTTPS पर सत्यापित करें। अपना ब्राउज़र फिर से खोलें और टाइप करें

https: // स्थानीय होस्ट: 443

इसे इस तरह से कुछ चेतावनी के साथ आउटपुट करना चाहिए कि आप जिस पृष्ठ को देखने जा रहे हैं वह सुरक्षित नहीं है क्योंकि हमने सर्वर को स्व-हस्ताक्षरित प्रमाण पत्र के साथ कॉन्फ़िगर किया है।

यहां छवि विवरण दर्ज करें

  • बधाई हो कि आपने अपने Apache2 को HTTPS समापन बिंदु से कॉन्फ़िगर किया है, अब उन्नत पर क्लिक करें -> अपवाद जोड़ें -> सुरक्षा अपवाद की पुष्टि करें , आपको फिर से डिफ़ॉल्ट पृष्ठ दिखाई देगा।

अपवाद जोड़ने के बाद पेज


यदि मैं कर सकता हूँ तो मैं किसी भी विन्यास फाइल को संपादित नहीं करना चाहता, इसलिए मैंने default-ssl.confइसे छोड़ दिया । मैं नाम बदलने वाला mycertथा, ssl-cert-snakeoilलेकिन यह फ़ाइल पहले से मौजूद है इसलिए मैंने अभी इसका उपयोग किया है! इसलिए मैं डेबियन पर दो चरणों को सुरक्षित रूप से छोड़ने में सक्षम था।
रॉल्फ

@ रॉल्फ मैं आपसे सहमत हूं लेकिन उत्पादन में, यह हमेशा मामला है एक नया प्रमाण पत्र और कुंजी का उपयोग करें। तो बस यह दिखाने के लिए कि उन्हें कैसे बनाया जा सकता है, मैंने डेबियन के लिए 2 अतिरिक्त कदम जोड़े हैं। धन्यवाद :)
दिनेश कुमार

9

उदाहरण के लिए Windows + Apache 2.4:

  1. आपकी httpd.confफ़ाइल में अपूर्ण ssl_module ।

    LoadModule ssl_module modules/mod_ssl.so
    
  2. अपनी httpd.confफ़ाइल में 443 पोर्ट को 80 पोर्ट की तरह सुनें ।

    Listen 80
    Listen 443
    
  3. अपनी httpd.confफ़ाइल में वर्चुअल होस्ट्स शामिल करें ।

    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    
  4. अपने में VirtualHost जोड़ें conf/extra/httpd-vhosts.conf

    <VirtualHost _default_:443>
        DocumentRoot "D:/www"  #your site directory path
        ServerName localhost
        #ServerAlias localhost.com localhost2.com
        SSLEngine on
        SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
        SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
        <Directory "D:/www">
            Options -Indexes +FollowSymLinks +ExecCGI
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    

केवल पोर्ट संख्या 443और SSL......लाइनें सामान्य http कॉन्फ़िगरेशन से अलग हैं।

आप फ़ाइल को बचाने के लिए और अपाचे सेवा को पुनरारंभ करें। तो आप https: // localhost / पर जा सकते हैं

वेब ब्राउज़र आपको चेतावनी देगा कि यह पहली बार असुरक्षित है, बस चुनें।


इसने मेरे लिए XP Home, Apache 2.4 पर काम किया है। पिछली पोस्ट (अनिल गुप्ता द्वारा) से 2 सर्टिफिकेट फाइलों को कॉपी किया गया। अधूरा mod_ssl और httpd-vhosts.conf को httpd.conf में शामिल किया, अनिल गुप्ता के VirtualHost निर्देश (http: -dhosts.conf में समायोजित कुछ पथों के साथ) को जोड़ा।
जोगी ९९

7

यह वास्तव में काफी आसान है, यह मानते हुए कि आपके पास एक खुलने वाला इंस्टॉलेशन काम है। (आप किस मंच पर हैं?)

यह मानते हुए कि आप लिनक्स / सोलारिस / मैक ओएस / एक्स पर हैं, वैन के अपाचे एसएसएल / टीएलएस मिनी-हॉव्टो में एक उत्कृष्ट वॉकथ्रू है जिसे मैं यहां पुन: पेश नहीं करूंगा।

हालाँकि, कार्यकारी सारांश यह है कि आपको एक स्व-हस्ताक्षरित प्रमाण पत्र बनाना होगा। चूँकि आप स्थानीय रूप से विकास के लिए अपाचे चला रहे हैं (अर्थात सार्वजनिक वेब सर्वर नहीं), आपको पता होगा कि आप स्व-हस्ताक्षरित प्रमाणपत्र पर भरोसा कर सकते हैं और उन चेतावनियों को अनदेखा कर सकते हैं जो आपका ब्राउज़र आप पर फेंक देगा।


नमस्ते, मैं विंडोज ओएस पर काम कर रहा हूं। और स्व-हस्ताक्षरित प्रमाण पत्र के लिए, क्या मुझे इसे डाउनलोड करना होगा या किसी अन्य माध्यम से करना होगा?
केएनसी।

3
नहीं। आप स्व-हस्ताक्षरित प्रमाण पत्र स्वयं बनाएंगे। क्या आपके पास अपाचे httpd + ssl सेटअप है? ऐसा करने के लिए आपको ssl की आवश्यकता होगी। यह साइट: rubayathasan.com/tutorial/apache-ssl-on-windows पर ssl के जाने की अच्छी जानकारी है। आप कुछ कमांड-लाइन काम कर रहे होंगे, लेकिन यह आपके लिए वैसे भी अच्छा है। :-)
पीट क्लार्क

3
लिंक्स मर चुका है :(
kpuccino

हाँ - यह मरा हुआ दिखता है। यह आपके लिए इंटरनेट है ... हालांकि, @kayakinkoder द्वारा संदर्भित CentOS Wiki के लिए लिंक भी अच्छा है: wiki.centos.org/HowTos/Https यदि आप एक मैक पर हैं, तो यह राइटअप भी उचित दिखता है : जिस्ट । github.com/nrollr/4daba07c67adcb30693e
पीट क्लार्क

4

यह अपाचे 2 के साथ उबंटू, मिंट के समान होना चाहिए

यह एक अच्छा मार्गदर्शक है, इसलिए इसका अनुसरण करना चाहिए

https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04

और अपने ssl.conf को इसी तरह या इसी तरह छोड़ना

<VirtualHost _default_:443>
        ServerAdmin your@email.com
        ServerName localhost
        ServerAlias www.localhost.com

        DocumentRoot /var/www


    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key

आप ये पा सकते हैं।

आशा है कि linuxer के लिए यह मदद मिलेगी


2

यह बहुत सरल है,

बस निम्नलिखित कमांड चलाएं

sudo a2enmod ssl

sudo service apache2 restart

sudo a2ensite default-ssl.conf

बस, हो गया।

यदि आप SSL (हमेशा https का उपयोग करने के लिए) बाध्य करना चाहते हैं, तो फ़ाइल को संपादित करें:

sudo nano /etc/apache2/sites-available/000-default.conf

और यह एक पंक्ति जोड़ें

<VirtualHost *:80>
        . . .

        Redirect "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>

फिर से पुनः आरंभ करें

sudo service apache2 restart

और आपको systemctl reload apache2बाद में चलाने की आवश्यकता है sudo a2ensite default-ssl.conf
तक

2

2019 अपडेट

मैं इस उत्तर को पोस्ट कर रहा हूं क्योंकि मैंने खुद से संघर्ष किया और क्रोम ने विषय वैकल्पिक नाम की आवश्यकता के साथ अपनी सुरक्षा को अद्यतन किया जिसमें बहुत सारे पद नहीं हैं क्योंकि जब उन्हें उत्तर के रूप में पोस्ट किया गया था तो इसकी आवश्यकता नहीं थी। मैं मान रहा हूं कि WAMP पहले से इंस्टॉल है।

चरण 1

ओपनएसएसएल लाइट डाउनलोड करें और इंस्टॉल करें


चरण 2 (वैकल्पिक)

हालांकि यह हिस्सा वैकल्पिक है, लेकिन यह बाद में आदेशों को निष्पादित करना आसान बनाता है। यदि आप इस चरण को छोड़ देते हैं, तो आपको Opensl.exe को पूर्ण पथ प्रदान करना होगा जहां आप कमांड निष्पादित करेंगे। यदि आप इसे सेट करना पसंद करते हैं तो पर्यावरण चर में खुलता है।

पर्यावरण चर -> प्रणाली चर -> पथ -> संपादन -> नया -> c: \ Program Files \ OpenSSL-Win64 \ bin


चरण 3

निर्देशिका में "कुंजी" नामक एक फ़ोल्डर बनाएँ c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/

सामग्री के साथ अपने CA MyCompanyCA.cnf के लिए कॉन्फ़िगरेशन फ़ाइल बनाएं (आप इसे अपनी आवश्यकताओं में बदल सकते हैं):

[ req ]
distinguished_name  = req_distinguished_name
x509_extensions     = root_ca

[ req_distinguished_name ]
countryName             = Country Name (2 letter code)
countryName_min         = 2
countryName_max         = 2
stateOrProvinceName     = State or Province Name (full name)
localityName            = Locality Name (eg, city)
0.organizationName      = Organization Name (eg, company)
organizationalUnitName  = Organizational Unit Name (eg, section)
commonName              = Common Name (eg, fully qualified host name)
commonName_max          = 64
emailAddress            = Email Address
emailAddress_max        = 64

[ root_ca ]
basicConstraints            = critical, CA:true

अपने वेब सर्वर प्रमाणपत्र के लिए एक्सटेंशन कॉन्फ़िगरेशन फ़ाइल MyCompanyLocalhost.ext बनाएं :

subjectAltName = @alt_names
extendedKeyUsage = serverAuth

[alt_names]
DNS.1   = localhost
DNS.2   = mycy.mycompany.com


चरण 4

कुंजी और प्रमाणपत्र बनाने के लिए दिए गए आदेश में इन आदेशों का पालन करें:

openssl req -x509 -newkey rsa:2048 -out MyCompanyCA.cer -outform PEM -keyout MyCompanyCA.pvk -days 10000 -verbose -config MyCompanyCA.cnf -nodes -sha256 -subj "/CN=MyCompany CA"
openssl req -newkey rsa:2048 -keyout MyCompanyLocalhost.pvk -out MyCompanyLocalhost.req -subj /CN=localhost -sha256 -nodes
openssl x509 -req -CA MyCompanyCA.cer -CAkey MyCompanyCA.pvk -in MyCompanyLocalhost.req -out MyCompanyLocalhost.cer -days 10000 -extfile MyCompanyLocalhost.ext -sha256 -set_serial 0x1111

नतीजतन, आपके पास MyCompanyCA.cer , MyCompanyLocalhost.cer और MyCompanyLocalhost.pvk फाइलें होंगी


कदम 5

के तहत MyCompanyCA.cer स्थापित करें

नियंत्रण कक्ष -> उपयोगकर्ता प्रमाणपत्र प्रबंधित करें -> विश्वसनीय रूट प्रमाणीकरण प्राधिकारी -> प्रमाण पत्र

MyCompanyLocalhost.cer स्थापित करने के लिए बस इसे डबल क्लिक करें।


चरण 6

निम्नलिखित 3 पंक्तियों को खोलें c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/httpd.confऔर अन-कमेंट (# हटाएं) :

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so


चरण 7

c:/wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.confनीचे दिखाए गए सभी मापदंडों को खोलें और बदलें:

Directory "c:/wamp64/www"
DocumentRoot "c:/wamp64/www"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "c:/wamp64/bin/apache/apache2.4.27/logs/error.log"
TransferLog "c:/wamp64/bin/apache/apache2.4.27/logs/access.log"
SSLCertificateFile "c:/wamp64/bin/apache/apache2.4.27/conf/key/MyCompanyLocalhost.cer"
SSLCertificateKeyFile "c:/wamp64/bin/apache/apache2.4.27/conf/key/MyCompanyLocalhost.pvk"
SSLSessionCache "shmcb:c:/wamp64/bin/apache/apache2.4.27/logs/ssl_scache(512000)"
CustomLog "c:/wamp64/bin/apache/apache2.4.27/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

नोट: यह मुश्किल हिस्सा है। यदि आप इस फ़ाइल को संपादित करते समय कोई छोटी गलती करते हैं, तो SSL काम नहीं करेगा। इसे संपादित करने से पहले इसकी एक प्रति तैयार करें।


चरण 8

Wamp और Chrome को पुनरारंभ करें। लोकलहोस्ट अब सुरक्षित है: https: // localhost


1

CentOS के लिए इस HowTo का पालन करना आसान था और केवल 5 मिनट लगते थे: https://wiki.centos.org/HowTos/Https

मैं यहां प्रत्येक चरण का विस्तार नहीं करूंगा, लेकिन मुख्य चरण हैं:

1.) पहले से स्थापित नहीं होने पर, अपाचे के लिए खुलता मॉड्यूल स्थापित करें

2.) एक स्व-हस्ताक्षरित प्रमाण पत्र बनाएं

- इस बिंदु पर, आपको सफलतापूर्वक https: // localhost पर जाने में सक्षम होना चाहिए

3.) यदि आवश्यक हो तो एक वर्चुअल होस्ट सेट करें


1

यह Apache24 के साथ विंडोज 10 पर काम किया:

1 - के तल पर इसे जोड़ें C:/Apache24/conf/httpd.conf

Listen 443
<VirtualHost *:443>
    DocumentRoot "C:/Apache24/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"
</VirtualHost>

2 - फ़ोल्डर में फ़ाइलों server.crtऔर server.keyफ़ाइलों को जोड़ें C:/Apache24/conf/ssl। उन 2 फ़ाइलों को खोजने के लिए इस पृष्ठ पर अन्य उत्तर देखें।

बस!


हाँ यह काम करता है। मैंने सर्टिफिकेट जेनरेट करने के लिए StephanieQ से चरण 1 - 3 का उपयोग किया और ".srt xs9 -req -in server.csr -signkey server.key -out server.crt" की तुलना में .crt फ़ाइल को साइबरविन के साथ बनाने के लिए इस्तेमाल किया।
b3wii

1

tl; डॉ

ssh -R youruniquesubdomain:80:localhost:3000 serveo.net

और आपके स्थानीय वातावरण को https://youruniquesubdomain.erveo.net से एक्सेस किया जा सकता है

सर्वियो सबसे अच्छा है

  • कोई साइनअप नहीं।
  • कोई स्थापित नहीं।
  • HTTPS है।
  • सुलभ विश्व-व्यापी।
  • आप एक कस्टम फिक्स, उपडोमेन निर्दिष्ट कर सकते हैं।
  • आप इसे स्वयं होस्ट कर सकते हैं, इसलिए आप अपने स्वयं के डोमेन का उपयोग कर सकते हैं, और भविष्य के प्रमाण हो सकते हैं, भले ही सेवा नीचे चली जाए।

जब मुझे यह सेवा मिली तो मुझे विश्वास नहीं हो रहा था। यह सब कुछ प्रदान करता है और इसका उपयोग करना सबसे आसान है। अगर हर समस्या के लिए एक ऐसा आसान और दर्द रहित उपकरण होगा ...


1

विंडोज 10 पर अपाचे चलाना यहां। मुझे साइमन द्वारा शीर्ष उत्तर में बनाए गए प्रमाण पत्र पर भरोसा करने के लिए क्रोम नहीं मिल सका। मैंने जो किया, वह स्वयं हस्ताक्षरित प्रमाण पत्र बनाने के लिए पावरशेल का उपयोग कर रहा था।

चरण 1 - स्व-हस्ताक्षरित प्रमाण पत्र उत्पन्न करें

PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My" 1 में

चरण 2 - कॉन्फ़िगर और निर्यात प्रमाणपत्र

Certificateविंडोज सर्च बार में टाइप करें, जो Manage Computer Certificatesकंट्रोल पैनल आइटम सुझाया गया है, उस पर क्लिक करें ।

सर्टिफिकेट मैनेजमेंट प्रोग्राम जो आता है (सर्टिफिकेट) से, आपको अब एक localhostकुंजी देखनी चाहिए Personal >> Certificates

मैंने इस प्रमाणपत्र की प्रतिलिपि बनाई Trusted Root Certification Authorities। मैं इस बात में ईमानदार रहूँगा कि मुझे यकीन नहीं है कि यह आवश्यक है।

नए कॉपी किए गए प्रमाणपत्र का चयन करते हुए, उस पर डबल क्लिक करें (स्थानीयहोस्ट प्रमाणपत्र)। सर्टिफिकेट मोडल से Detailsटैब, फिर Copy to File...बटन पर क्लिक करें।

यह ऊपर और निर्यात विज़ार्ड लाएगा, मैंने निजी कुंजी को निर्यात करने के लिए चुना, अगले पर क्लिक करें। मैंने भी चुना Export all extended properties(फिर, मुझे यकीन नहीं है कि अगर यह आवश्यक था)। मैंने एक साधारण पासवर्ड ( pass) और डिफ़ॉल्ट एन्क्रिप्शन का उपयोग करना चुना । फ़ाइल को निर्यात और नाम देने के लिए एक फ़ोल्डर चुनें। यदि आवश्यक हो तो आप हमेशा फ़ाइल को स्थानांतरित कर सकते हैं और नाम बदल सकते हैं। सादगी के लिए आइए इसे अपने अपाचे इंस्टालेशन के तहत अपने गोपनीय फ़ोल्डर में कॉपी करें (मेरे मामले में C:\apache\conf) : और फाइल को नाम दें myCert(परिणामस्वरूप फाइल एक .pfxफाइल होगी )

चरण 3 - .pfxअपाचे के साथ उपयोग के लिए कन्वर्ट फ़ाइल

यहाँ से मैंने मूल रूप से यहाँ ट्यूटोरियल का अनुसरण किया , लेकिन उस साइट के डाउन होने की स्थिति में मैं यहाँ निर्देश (हमारी सेटिंग्स के लिए ट्वीक किया गया) जोड़ दूँगा।

ओपन अपने आदेश में तत्काल /apache/conf/फ़ोल्डर
भागो निम्न कमांड: नोट: यह मान लिया गया है आप openssl.exeमें binअपाचे रूट फ़ोल्डर में फ़ोल्डर (इस मानक / डिफ़ॉल्ट होना चाहिए)

..\bin\openssl pkcs12 -in myCert.pfx -nocerts -out privateKey.pem

यह आपको एक पासवर्ड के लिए संकेत देगा, जब आपने .pfxफ़ाइल निर्यात की तो आप चरण 2 के लिए क्या इनपुट दर्ज करेंगे । मेरे मामले में, यह है pass। मैंने PEM वाक्यांश और फिर से सत्यापित करने के लिए एक ही पासवर्ड दर्ज किया। यह privateKey.pemआपके गोपनीय फ़ोल्डर में एक नई फ़ाइल बनाएगा ।

फिर भागो

..\bin\openssl rsa -in privateKey.pem -out private.pem

फिर से आपको पासवर्ड के लिए कहा जाएगा ( Enter pass phrase for privateKey.pem:), आपके द्वारा निर्धारित पासवर्ड का उपयोग करें privateKey.pem। (मेरे मामले में, pass)
आपको एक संदेश देखना चाहिए जो कहता है writing RSA keyऔर private.pemआपके conf/फ़ोल्डर में एक नई फ़ाइल कहलाती है । यह आपका SSLCertificateKeyFile होगा।

अब संबंधित सर्वर प्रमाणपत्र उत्पन्न करने के लिए। Daud:

..\bin\openssl pkcs12 -in myCert.pfx -clcerts -nokeys -out EntrustCert.pem

यह आपको एक पासवर्ड के लिए संकेत देगा, जब आपने .pfxफ़ाइल निर्यात की तो आप चरण 2 के लिए क्या इनपुट दर्ज करेंगे । इसे दर्ज करें और अब आपके पास EntrustCert.pemआपके confफ़ोल्डर में एक फ़ाइल होगी । यह आपका SSLCertificateFile है

चरण 4 - कॉन्फ़िगर करें httpd.conf

आपके द्वारा सर्वर की कुंजी और प्रमाणपत्र के रूप में बनाई गई नई फ़ाइलों का उपयोग करें। अपनी फ़ाइलों को अपनी दस्तावेज़ रूट में बदलना सुनिश्चित करें!

ServerName localhost:80
Protocols h2 h2c http/1.1
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

<VirtualHost _default_:443>
  ServerName localhost:443
  DocumentRoot ${SRVROOT}/htdocs/MYSITE
  SSLEngine on
  SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
  SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
</VirtualHost>

इसमें भी httpd.conf:

  • सुनिश्चित करें कि LoadModule ssl_module modules/mod_ssl.soअप्रभावित है ( #सामने नहीं)
  • टिप्पणी हटाएं LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
  • टिप्पणी हटाएं LoadModule http2_module modules/mod_http2.so
  • Uncomment Include conf/extra/httpd-ssl.conf (नोट: सुनिश्चित करें कि फ़ाइल कहाँ है!)

मेरे पास कर्ल और ओपन एसएलएस लाइब्रेरी भी शामिल हैं:

# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"

ये मॉड्यूल आवश्यक नहीं होने चाहिए, लेकिन मैं ध्यान दूंगा कि मैंने उन्हें सक्षम किया है:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so

चरण 5 - विन्यास httpd-ssl.conf

में extra/फ़ोल्डर conf/फ़ोल्डर आप एक फ़ाइल बुलाया देखना चाहिए httpd-ssl.conf

5 ए। बदलेंDocumentRoot - DocumentRootडिफ़ॉल्ट से उस निर्देशिका में बदलें जहां आपकी फाइलें हैं।

5 ब। बदलेंServerName - ServerNameडिफ़ॉल्ट (जैसे कुछ www.example.com:443) से बदलेंlocalhost:443

5c। SSLCertificateFile डिफ़ॉल्ट ( ) से बदलें को
बदलेंSSLCertificateFile${SRVROOT}/conf/server.crt${SRVROOT}/conf/EntrustCert.pem

5c। SSLCertificateKeyFile डिफ़ॉल्ट ( ) से बदलें को
बदलेंSSLCertificateKeyFile${SRVROOT}/conf/server.key${SRVROOT}/conf/private.pem

सभी एक साथ, <VirtualHost _default_:443>टैग में।

#   General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs/MYSITE"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

#   Server Certificate:
#   Point SSLCertificateFile at a PEM encoded certificate.  If
#   the certificate is encrypted, then you will be prompted for a
#   pass phrase.  Note that a kill -HUP will prompt again.  Keep
#   in mind that if you have both an RSA and a DSA certificate you
#   can configure both in parallel (to also allow the use of DSA
#   ciphers, etc.)
#   Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
#   require an ECC certificate which can also be configured in
#   parallel.
SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
#SSLCertificateFile "${SRVROOT}/conf/server-dsa.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-ecc.crt"

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
#   ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-dsa.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-ecc.key"

अपाचे को फिर से शुरू करें

इन परिवर्तनों को करने के बाद आपको अपाचे को फिर से शुरू करने और https: // लोकलहोस्ट पर बिना सुरक्षा चेतावनी और थोड़े पैडलॉक के नेविगेट करने में सक्षम होना चाहिए !

सुरक्षित लोकलहोस्ट

मुझे उम्मीद है इससे किसी को सहायता मिलेगी! 😊

स्रोत:
1.) Auri रहीमजादेह का उत्तर स्व-हस्ताक्षरित प्रमाण पत्र बनाने पर
2.) Entrust Datacard - मैं एक अपाचे सर्वर के साथ उपयोग किए जाने वाले .pfx को कैसे परिवर्तित करूं?


0

एक और सरल विधि उबंटू में पायथन सर्वर का उपयोग कर रही है।

  1. टर्मिनल में निम्न कमांड के साथ server.xml उत्पन्न करें:

    openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes

    नोट: मान लें कि आपके पास ओपनसेल इंस्टॉल है।

  2. किसी भी निर्देशिका simple-https-server.pyमें नामित फ़ाइल में कोड के नीचे सेव करें जिसे आप सर्वर चलाना चाहते हैं।

    import BaseHTTPServer, SimpleHTTPServer
    import ssl
    
    httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
    httpd.serve_forever()
    
  3. टर्मिनल से सर्वर चलाएँ:

    python simple-https-server.py

  4. इस पृष्ठ पर जाएँ:

    https://localhost:4443

अतिरिक्त नोट :

  1. आप फ़ाइल में पोर्टsimple-https-server.py को लाइन में बदल सकते हैं

    httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

  2. आप ऊपर की पंक्ति में अपने आईपी में बदलlocalhost सकते हैं :

    httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)

    और आपके नेटवर्क से जुड़े किसी भी डिवाइस पर पेज को एक्सेस करें। यह उन मामलों में बहुत आसान है जैसे "आपको एक मोबाइल में एचटीएमएल 5 जीओलोकेशन एपीआई का परीक्षण करना है, और क्रोम सुरक्षित कनेक्शनों में एपीआई को प्रतिबंधित करता है"।

Gist: https://gist.github.com/dergachev/7028596

http://www.piware.de/2011/01/creating-an-https-server-in-python/


0

MacOS का उपयोग करने वालों के लिए यह एक बढ़िया गाइड है https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions अपने स्थानीय वेब देव वातावरण को स्थापित करने के लिए। इसके तीसरे भाग में https://getgrav.org/blog/macos-sierra-apache-ssl एंडी मिलर बताते हैं कि अपाचे को स्व-हस्ताक्षरित प्रमाण पत्र के साथ कैसे सेट करें:

यह प्रमुख आदेश है:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt

लेकिन कुछ कदम हैं जिनका आपको पालन करने की आवश्यकता है, इसलिए बाहर की जाँच करें और शुभकामनाएँ! ;)


0

मैं @CodeWarrior के बहुत अच्छे उत्तर में कुछ जोड़ना चाहता हूं, जो क्रोम पर पूरी तरह से काम करता है, लेकिन फ़ायरफ़ॉक्स के लिए एक अतिरिक्त कदम की आवश्यकता है।

चूंकि फ़ायरफ़ॉक्स सीए सर्टिफिकेट को जोर नहीं देता है जो विंडोज डिफ़ॉल्ट रूप से करता है, इसलिए आपको इसे चालू about:configकरने security.enterprise_roots.enabled और इसे सच करने के लिए स्क्रॉल करने की आवश्यकता है।

अब आपके प्रमाणपत्र को फ़ायरफ़ॉक्स पर भी मान्य होना चाहिए।

बेशक, यह केवल विकास के उद्देश्यों के लिए है, क्योंकि ssl ट्रस्ट एक महत्वपूर्ण सुरक्षा चिंता है और इस सेटिंग को केवल तभी परिवर्तित करें जब आपको निहितार्थ पता हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.