2016-04-17 10 views
5

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

url : domain.in 
root: /var/www/production/html 
मेरी nginx डिफ़ॉल्ट पृष्ठ में

तो मैं दो सर्वर ब्लॉक उत्पादन

के लिए विकास के लिए और दूसरा है:

url : dev.domain.in 
root: /var/www/dev/html 

उत्पादन इस प्रकार है:

मेरे विकास सेटिंग इस प्रकार हैं

मैं दोनों सर्वरों के लिए एक प्रमाणपत्र देना चाहता हूं।

मैं आइए एन्क्रिप्ट वेबसाइट आदेश के रूप में

सीडी/opt/letsencrypt ./letsencrypt-auto certonly -एक webroot --webroot-पथ =/usr/share/nginx इस प्रकार है के अनुसार पता/html -d example.com -d www.example.com

लेकिन यह केवल तभी किया जा सकता है जब SUBDOMAIN के पास एक ही वेबूट है जो मेरे मामले में सत्य नहीं है।

तो मैं दोनों यहाँ CERT जोड़ सकते हैं

कृपया मेरी मदद करो बाहर

+0

प्रतिक्रिया देने का समय? –

उत्तर

1

चलो एन्क्रिप्ट webroot विधि ".well प्रसिद्ध/एक्मे-चुनौती" का नाम आपके webroot निर्देशिका पर एक फ़ाइल का उपयोग करता है । आप इस फ़ाइल के लिए किसी अन्य वेबूट पर इंगित करने के लिए अपने देव और मुख्य सर्वर पर एक स्थान स्निपेट कॉन्फ़िगर कर सकते हैं।

कुछ की तरह:

location /.well-known/acme-challenge { 
     alias /etc/letsencrypt/webrootauth/.well-known/acme-challenge; 
     location ~ /.well-known/acme-challenge/(.*) { 
      add_header Content-Type application/jose+json; 
     } 
    } 

और अपने webroot बात --webroot-path /etc/letsencrypt/webrootauth रूप

यह discussion मदद कर सकते हैं

या आप स्टैंडअलोन विधि का उपयोग करें और हाथ से कुछ काम कर सकते।

+0

आप इस निर्देशिका को दुनिया द्वारा पठनीय करने के लिए एक्सेस-कंट्रोल जोड़ सकते हैं (चुनौती सर्वर आईपी बदल सकते हैं), यदि आपके पास एक्सेस-कंट्रोल के साथ कुछ साइटें हैं, जैसे डेवलपमेंट साइट्स या पासवर्ड या आईपी द्वारा प्रतिबंधित एडमिन साइट्स। यह निर्देशिका केवल थोड़े समय के लिए चुनौती/प्रतिक्रिया रखती है, और एक अनूठा नाम के साथ, इसलिए यहां कोई सुरक्षा नहीं है। –

9

मैं अपने nginx बॉक्स पर अपने सभी वर्चुअल होस्टों में एक सामान्य वेबूट का उपयोग करता हूं।

/opt/certbot/certbot-auto certonly --webroot --agree-tos -w /srv/www/letsencrypt/ \ 
-d example.com,www.example.com 

... और nginx में मैं snippets/letsencrypt.conf है:

location ~ /.well-known { 
    root /srv/www/letsencrypt; 
    allow all; 
} 

... जो प्रत्येक साइट के लिए अपने सर्वर ब्लॉक में शामिल हो जाता है।

। -वेल-ज्ञात निर्देशिका में फ़ाइलें अस्थायी हैं - वे केवल प्रमाणीकरण प्रक्रिया को पूरा करने के लिए पर्याप्त लंबे समय तक मौजूद हैं और फिर हटा दिए जाते हैं।

एक बार पंजीकरण सफल होता है, मैं तो include ssl/example.com.conf; के माध्यम से सर्वर ब्लॉक में प्रमाण पत्र परिभाषा में शामिल हैं, जहां कि फ़ाइल में निम्न शामिल हैं: 443 पोर्ट पर SSL को सक्षम करने

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 

... प्रासंगिक के साथ निर्देशों सुनने ।

आप एकाधिक सर्वर ब्लॉक में एक ही परिभाषा शामिल कर सकते हैं।

मैं भी मेरी प्रमाण पत्र में बिना के रूप में अतिरिक्त उप डोमेन हैं और मैं click.example.com तरह example.com, www.example.com और भी अन्य उप डोमेन के लिए अलग सर्वर ब्लॉक है - सभी एक ही प्रमाण पत्र का उपयोग कर।

+0

यह बेहद उपयोगी पाया। बहुत सारे टाइपिंग बचाता है, और letsencrypt कमांड को सरल बनाता है। धन्यवाद!! – Gruzzles

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