2016-07-14 9 views
12

मैंने काम किया था कुछ महीने पहले (पुरानी letencrypt क्लाइंट के साथ) प्रमाणपत्रों को एन्क्रिप्ट करें। मैं जिस सर्वर का उपयोग कर रहा हूं वह nginx है।सर्टबॉट एसीएम-चैलेंज फ़ोल्डर नहीं बना रहा

Certbot .well प्रसिद्ध फ़ोल्डर पैदा कर रही है, लेकिन नहीं एक्मे-चुनौती फ़ोल्डर

अब मैं के माध्यम से ~/certbot-auto certonly --webroot -w /var/www/webroot -d domain.com -d www.domain.com -d git.domain.com

नया प्रमाण पत्र बनाने की कोशिश की लेकिन मैं हमेशा इस तरह त्रुटियों मिलती है:

IMPORTANT NOTES: 
    - The following errors were reported by the server: 

    Domain: git.domain.com 
    Type: unauthorized 
    Detail: Invalid response from 
    http://git.domain.com/.well-known/acme-challenge/ZLsZwCsBU5LQn6mnzDBaD6MHHlhV3FP7ozenxaw4fow: 
    "<.!DOCTYPE html> 
    <.html lang='en'> 
    <.head prefix='og: http://ogp.me/ns#'> 
    <.meta charset='utf-8'> 
    <.meta content='IE=edge' http-equiv" 

    Domain: www.domain.com 
    Type: unauthorized 
    Detail: Invalid response from 
    http://www.domain.com/.well-known/acme-challenge/7vHwDXstyiY0wgECcR5zuS2jE57m8I3utszEkwj_mWw: 
    "<.html> 
    <.head><.title>404 Not Found</title></head> 
    <.body bgcolor="white"> 
    <.center><.h1>404 Not Found</h1></center> 

(बेशक एचटीएमएल टैग के अंदर बिंदु वास्तव में नहीं हैं)

मैंने एक समाधान की तलाश की है, लेकिन नहीं मिला अभी तक एक क्या कोई जानता है कि प्रमाणपत्रबॉट फ़ोल्डर्स क्यों नहीं बना रहा है?

अग्रिम धन्यवाद!

उत्तर

7

समस्या nginx कॉन्फ़िगरेशन थी।

server { 
    listen 80; 
    server_name domain.com www.domain.com git.domain.com; 
    root /var/www/domain/; 
} 

तो मैं नया प्रमाणपत्र जारी करने में सक्षम था: मैं सबसे सरल config संभव के साथ अपने लंबे विन्यास फाइल बदल दिया।

मेरे लंबे विन्यास फाइल के साथ समस्या थी (जहाँ तक मैं बता सकता हूँ)

है कि मैं इन पंक्तियों था:

location ~ /.well-known { 
    allow all; 
} 

लेकिन वे किया जाना चाहिए:

location ~ /.well-known/acme-challenge/ { 
    allow all; 
} 

अब नवीकरण काम करता है भी

+6

यह उल्लेख करने लायक है कि जारी करने की कोशिश करने के बाद सर्टबॉट '। ज्ञात' निर्देशिका को साफ़ कर देगा। तो यदि आप इसे देख रहे हैं कि फ़ाइल फाइलिंग की बजाय फ़ाइल पीढ़ी के साथ समस्या है, तो आश्वस्त रहें कि यह नहीं है। जब अनुमति त्रुटियां होती हैं तो आपको त्रुटि मिलती है। – DfKimera

+0

ध्यान दें कि इस मामले में, सभी सबडोमेन एक ही रूट निर्देशिका का उपयोग करते हैं। एकाधिक जड़ों का उपयोग करते समय प्रति रूट एक सर्वर एक समाधान है (शायद सबसे अच्छा नहीं, लेकिन यह काम करता है)। – aluriak

+0

ये समाधान मेरे लिए काम नहीं किया था। मेरे पास "location /.well-known {.. सभी को अनुमति दें;}। स्ट्र्रेस से पता चलता है कि सर्टबॉट एसीएम-चुनौती निर्देशिका को हटा देता है जब इसे प्रमाणपत्रबॉट शुरू करने से पहले मैन्युअल रूप से बनाया जाता है। फिर यह चुनौती फ़ाइल खोलने में विफल रहता है। – rhoerbe

3

मुझे एक समान समस्या थी। मेरे समस्या थी, कि मैं इस नियम था: "।"

location ~ /\. { 
    access_log off; 
    log_not_found off; 
    deny all; 
} 

इन पंक्तियों जहां के साथ शुरू किसी भी निर्देशिका के लिए हर acces रद्द (बिंदु)

+2

मुझे यह समस्या थी भी (Nginx पर वर्डप्रेस के लिए डिफ़ॉल्ट) लेकिन यह एक मूल्यवान नियम है, तो बस इसे 'स्थान ~/.well- ज्ञात' नियम के बाद रखें –

0

मुझे एक मूर्ख समस्या है - प्रमाणपत्रबॉट कमांड चलाते समय मेरे पास मेरी रिपॉजिटरी की मूल निर्देशिका को इंगित करने वाला वेबूट विशेषता थी, न कि सार्वजनिक।

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