2016-06-02 12 views
6

मैं उपयोग कर रहा हूँ निम्नलिखित nginx.confडोकर Nginx शिकायत: एसएसएल: त्रुटि: 02,001,002

worker_processes 1; 


events { 
worker_connections 1024; 
} 

http { 
include  mime.types; 

default_type application/octet-stream; 

sendfile  on; 

keepalive_timeout 65; 

gzip on; 
gzip_disable "msie6"; 
gzip_vary on; 
gzip_proxied any; 
gzip_comp_level 6; 
gzip_buffers 16 8k; 
gzip_http_version 1.1; 
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

server { 
    listen   80; 
    server_name mydomain.org; 
    return   301 https://$server_name$request_uri; 
} 


server { 

    listen 443 ssl http2; 
    ssl_certificate /etc/letsencrypt/live/mydomain.org/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/mydomain.org/privkey.pem; 
    ssl_session_timeout 1d; 
    ssl_session_cache shared:SSL:50m; 
    ssl_session_tickets off; 

    ssl_protocols TLSv1.1 TLSv1.2; 
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK'; 
    ssl_prefer_server_ciphers on; 
    ssl_dhparam /etc/nginx/certs/dhparam.pem; 

    add_header Strict-Transport-Security max-age=15768000; 

    ssl_stapling on; 
    ssl_stapling_verify on; 


    ssl_trusted_certificate /etc/letsencrypt/live/mydomain.org/chain.pem; 

    resolver 8.8.8.8 8.8.4.4 valid=86400; 

    root /var/www/html; 
    index index.php; 
    location/{ 
    try_files $uri $uri/ /index.php?$args; 
    } 

    rewrite /wp-admin$ $scheme://$host$uri/ permanent; 

    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { 
    access_log off; log_not_found off; expires max; 
    } 

    location ~ [^/]\.php(/|$) { 
    fastcgi_split_path_info ^(.+?\.php)(/.*)$; 
    if (!-f $document_root$fastcgi_script_name) { 
     return 404; 
    } 
     root   /var/www/html; 
     fastcgi_pass wp_db:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; 
     include  fastcgi_params; 
    }  
} 
} 

लेकिन nginx कंटेनर के साथ शिकायत:

nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/mydomain.org/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/mydomain.org/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file) 

मैं के एन्क्रिप्ट के लिए उस रास्ते पर सभी प्रमाणपत्र मिला है, । मैं इस सूत्र https://serverfault.com/questions/537343/nginx-startup-fails-ssl-no-such-file-or-directory

पाया और

chown -R root:root /etc/letsencrypt/live/mydomain.org/fullchain.pem 
chmod -R 600 /etc/letsencrypt/live/mydomain.org/fullchain.pem 

एक ही त्रुटि nginx कंटेनर से फेंक दिया गया था था। मैंने /docker-compose/etc/nginx/certs पर nging.conf पर समान अनुमतियां और लिंक बदलने के लिए certs रखा है लेकिन कुछ भी नहीं बदला है।

मुझे क्या याद आ रही है?

+0

साथ भागो nginx डोकर इंजन मैं एक ही समस्या है। क्या आप विंडोज बीटा के लिए डॉकर का उपयोग कर रहे हैं? – styfle

+0

मैं डेबियन 8 पर डॉकर का उपयोग कर रहा हूं। अब मैं [https-portal] (https://github.com/SteveLTN/https-portal) और [letsencrypt-nginx-proxy-companion] का उपयोग कर रहा हूं (https: // github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) दोनों बिना मुद्दों के काम कर रहे हैं। – berzas

उत्तर

4

मैं बंदरगाह की तैनाती एक ही समस्या (एक डोकर रजिस्ट्री + अभिगम नियंत्रण यूआई) मात्रा मानचित्रण का उपयोग/सामना कर रहा था etc/letsencrypt:/etc/letsencrypt

nginx "ऐसी कोई फाइल" सूचना जब प्रमाणपत्र फ़ाइल लोड हो रहा है, भले ही मैं उस कंटेनर (डॉकर exec bash ..) में प्रवेश कर सकता हूं और फ़ाइलों को सटीक उसी पथ का उपयोग कर बिल्ली डाल सकता हूं।

मैं इस समस्या सिमलिंक की letsencrypt उपयोग के कारण होता है संदिग्ध, इसलिए मेरे समाधान सीपी -rL का उपयोग कर (डी-संदर्भ के लिए सिमलिंक)

[email protected]:/etc/letsencrypt# mkdir copy 
[email protected]:/etc/letsencrypt# cp -rL live/* copy/ 

तो मैं बदल किसी अन्य फ़ोल्डर में लाइव प्रमाणपत्र की प्रतिलिपि करने के लिए था nginx.conf 'लाइव' के बजाय 'प्रतिलिपि' को संदर्भित करने के लिए

अब nginx सही ढंग से डॉकर के अंदर शुरू होता है।

यह दीर्घकालिक समाधान नहीं है क्योंकि जब कर्ट नवीनीकृत होते हैं तो प्रति स्वचालित रूप से अपडेट नहीं हो जाएगी। लेकिन चूंकि मैं cronjob से letencrypt नवीनीकरण चला रहा हूं, वह कार्य फिर से कॉपी प्रक्रिया चला सकता है।

मैंने यह भी पढ़ा है कि अगर certs बदलता है तो nginx को पुनरारंभ करना होगा, इसलिए यह एक और मुद्दा है जिसका मुझे सामना करना पड़ेगा। लेकिन कम से कम nginx अब ठीक से शुरू होता है।

+0

इसके लिए धन्यवाद। मुझे अभी भी मार्च 2017 में यह समस्या है। अजीब बात यह है कि इसे लेट्ससेक्रिप्ट/डॉकर द्वारा संबोधित नहीं किया गया है। – jonbaldie

-1

मैंने आज एक दिन बर्बाद कर दिया और समाधान पाया।

-v /etc/letsencrypt/archive/your_domain.com:/nginx/letsencrypt/your_domain.com

और nginx.conf

ssl_certificate /nginx/letsencrypt/your_domain.com/fullchain1.pem; ssl_certificate_key /nginx/letsencrypt/your_domain.com/privkey1.pem;

+0

सुनिश्चित नहीं है कि यह क्यों कम किया गया है?जीवित बिंदु में symlinks संग्रह –

+0

@RonniSkansing मुझे लगता है कि downvoted सही है! क्योंकि अगली नवीनीकरण में, नए कर्ट पूर्ण होंगे 2, prikey2, ... वह नाम कॉन्फ़िगर गलत है। मेरा विचार बुरा है! :( – Shinichi

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