產生並更新讓我們加密證書

產生並更新讓我們加密證書

我的網域是(範例):mydomain.eu,它透過 np-ip 與我的動態 IP 同步。
在內部,我有一個 Web 伺服器偵聽連接埠 80/443,並且我從 Let's Encrypt with certbot 獲得了新的通配符憑證並使用 DNS 記錄 (txt) 進行部署。

我認為這已經足夠了,但不行…
我需要另一台伺服器的憑證(cname mydomain.eu:cloud.mydomain.eu e mail.mydomain.eu),並且我在我的提供者面板上設定了cname 。

我還使用 Nextcloud 設定了一個雲端伺服器,我想取得該伺服器的憑證。我收到錯誤,因為 certbot 需要 80 和 443 端口,但我的 Ncserver 偵聽端口 81 和 1443 將來,我將創建一個內部 Web 郵件,它還偵聽另一個端口

內部設定

Example:
WEBSERVER # www.mydomain.eu - nginx - ip xxx.xxx.xxx.50 --> port 80/443
NEXTCLOUD # cloud.mydomain.eu - apache - ip xxx.xxx.xxx.51 -> port 81/1443
MAIL # mail.cloud.mydomain.eu - nginx/apache - ip xxx.xxx.xxx.52 -> port 82/2443

Nginx Web 伺服器設定:

ssl_certificate /etc/letsencrypt/live/mydomain.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.eu/privkey.pem;

server {
listen 80;
listen [::]:80;
server_name *.mydomain.eu;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name *.mydomain.eu;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

server {
listen 80;
listen [::]:80;
server_name cloud.mydomain.eu;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name cloud.mydomain.eu;

location / {
proxy_pass http://xxx.xxx.xxx.51:1443;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}

為每台伺服器取得憑證(或通配符憑證)的最佳實踐是什麼?我最好啟動 cron 來更新證書,而無需txt每三個月部署一次記錄

答案1

如果所有網域都在同一台主機上,您只需在其他設定中使用相同的檔案(您已經提到通配符憑證可用)...

是否要在更多服務上(重新)使用一個通配符或每個子網域使用額外的證書,這取決於您。無論如何,如果您有通配符證書並且計劃自動更新它,您無論如何都需要 DNS 令牌驗證(TXT 記錄),並且一旦使用 DNS 驗證了網域,您甚至不需要運行伺服器來獲取憑證...所以在「每個網域」憑證情況下,您可以使用網域的DNS 驗證,因此非標準連接埠沒有問題。

無論如何,在通配符憑證的情況下,將所有內容放在標準 80/443 連接埠上不是更容易嗎?如今,SNI(共用連接埠並根據請求內容進行區分)沒有問題。在這種情況下,您可以使用一個反向代理程式(例如 haproxy)來處理通配符憑證並將流量傳遞到後端(nginx、apache httpd,...)

--- 編輯 - 2020 年 1 月 19 日:22:40 CET ---

如果您的DNS 提供者不提供「簡單」的dns 更新,您可以將所需的「子網域」委託給您的系統,並或多或少地運行本地DNS 伺服器,以應對這種動態更新- TXT記錄...

假設域example.com以及具有更新的 FQDN 的本地節點local-example.com.noip.com指向您的系統。在註冊商系統中可以進行靜態記錄:

_acme-challenge.example.com. 3600 IN NS local-example.com.noip.com.

透過這種方式,您可以輕鬆地將 example.com 網域的 DNS 令牌委託給您的本機系統。在那裡您可以使用配置的網域運行本機 DNS 伺服器(例如綁定)_acme-challenge.example.com然後您可以在其中本地更新 TXT 記錄。請注意,在此網域中,A 或 AAAA 都不是有效記錄,因此至少對於 TXT,只有 SOA、NS 和動態更新;-)。

相關內容