Nginx
NGINX 允許加密“收到 2 個證書”
我目前正在執行幾個 docker 容器。一個用於 nginx,一個用於我的 node js 應用程序,最後一個用於創建和更新 Lets encrypt 的證書。這在一段時間內工作得很好,但我遇到了一個問題。
在這台伺服器上,我有 5 個域都安裝了 ssl。但現在我不能再安裝任何證書了。我明白了:
- The following errors were reported by the server: Domain: domain1.com Type: unauthorized Detail: Incorrect validation certificate for tls-sni-01 challenge. Requested c7a966714b5363c594f152b27f947722.f767e462430a051872cd4eaab3969248.acme.invalid from MY_IP:443. Received 2 certificate(s), first certificate had names "domain0.com"
環顧四周後,我發現如果我轉到“ https://domain1.com/ ”,我會收到一條錯誤消息,內容如下:
Safari 無法驗證網站“domain1.com”的身份。
當我點擊“顯示證書”時,它會顯示 domain0.com 的證書
這是 domain0.com 的配置
server { listen 80; server_name domain0.com; location /.well-known/acme-challenge { proxy_pass http://certbot:80; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto https; } location / { return 301 https://$server_name$request_uri; } } server { listen 443; server_name domain0.com; client_max_body_size 50M; ssl on; ssl_certificate /etc/letsencrypt/live/domain0.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain0.com/privkey.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_dhparam /etc/ssl/private/dhparams.pem; location /.well-known/acme-challenge { proxy_pass http://certbot:443; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto https; } location / { proxy_pass http://cldapi1:8080; proxy_set_header Host $host; proxy_set_header X-Protocol https; proxy_set_header X-Forwarded-For $remote_addr; } }
certbot 是 let encrypt 容器的連結,cldapi1 是節點應用程序的連結。
我猜這是預設伺服器,因為它是 nginx 配置中的第一個伺服器塊。但是,當我嘗試創建一個 ssl 預設伺服器時,它不會工作,因為我沒有預設伺服器的證書,如果我有一個不能很好地使用 let encrypt 的證書。
我想我需要一種方法來不讓伺服器在讓 encrypt 查找時使用 ssl 證書進行響應。
如果您有任何建議或問題,請告訴我!
我正在執行 nginx 版本 1.11.9 和 certbot 版本 0.9.3
我在請求證書時使用此參數解決了這個問題
--standalone-supported-challenges http-01