Ssl-Certificate
使用 SSL 和動態 dns 將 SLD 重定向到註冊商上的子域
我想在註冊商本身(但在自己的伺服器上)沒有 SSL 證書的情況下將
https://example.com
二級域重定向/轉發到子域。https://www.example.com
我的問題是,我沒有靜態 IP,所以不能使用 A-Record / AAAA-Record,只能使用 DynDNS 地址。還嘗試了 Alias / A-Name,但他們只將 SLD 重定向到 SLD。簡單轉發不考慮SSL,只考慮簡單http。我也很滿意,通過自己的伺服器重定向它,但 SLD 無論如何都不能轉發到我的伺服器,因為它必須通過動態 dns 服務(只有子域)連接。
(擁有 namecheap 作為註冊商和 DynDns)
我找到了 FreeCodeCamp 的這篇文章,他們發布了解決方案。
您必須使用 ALIAS 記錄(可以與 CNAME 記錄結合使用)。
ALIAS
在 DNSimple和namecheapANAME
在 DNS 變得簡單ANAME
在easyDNSCNAME
(虛擬)在 CloudFlare某些提供商沒有這些選項(例如 United Domains),您可能必須轉移到其他提供商。
然後你必須在你的伺服器上添加兩個 SSL 證書,在 NGINX 中看起來像這樣:
server { # Forward http://www.example.com, http://example.com to https:// listen 80; listen [::]:80; server_name www.example.com example.com; return 301 https://$http_host$request_uri; } server { # Forward https://example.com to https://www.example.com listen 443 ssl; listen [::]:443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot return 301 https://www.$host$request_uri; } server { # handle https://www.example.com listen 443 ssl; listen [::]:443 ssl; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot root /var/www/example.com; index index.html; }