Nginx
Nginx 使用 SSL 重定向 2 個域,包括 www
我有一個域的 .com 和 .co.uk 版本。我希望這些(包括 www 子域)的每個組合都重定向到 https .co.uk 版本。
通過每種組合,我的意思是以下所有內容都應重定向到
https://example.co.uk
.http://example.com https://example.com http://www.example.com https://www.example.com http://example.co.uk http://www.example.co.uk https://www.example.co.uk
我想我已經通過以下方式實現了這一點:
server { listen 443 ssl http2; server_name example.co.uk; ssl_certificate /etc/letsencrypt/live/example.co.uk/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.co.uk/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; root /var/www/example.co.uk; index index.html; } server { listen 80; server_name example.co.uk; return 301 https://example.co.uk$request_uri; } server { listen 443 ssl; server_name www.example.co.uk; return 301 https://example.co.uk$request_uri; } server { listen 80; server_name www.example.co.uk; return 301 https://example.co.uk$request_uri; } server { listen 443 ssl; server_name example.com; return 301 https://example.co.uk$request_uri; } server { listen 80; server_name example.com; return 301 https://example.co.uk$request_uri; } server { listen 443 ssl; server_name www.example.com; return 301 https://example.co.uk$request_uri; } server { listen 80; server_name www.example.com; return 301 https://example.co.uk$request_uri; }
唯一的事情是,當我嘗試
https://example.com
或https://www.example.com
它給我一個瀏覽器隱私錯誤頁面時。我是否需要為兩個域和兩個 www 子域獲取單獨的 SSL 證書才能使此設置正常工作?所以我最終會得到4個證書?
最簡單的方法是獲取一個與您的所有域名匹配的證書。一個證書可以匹配多個名稱,稱為主題備用名稱 (SAN)。
您可以從 Let’s encrypt 免費獲得這樣的證書,您只需安排對所有域名進行驗證。