使用 zonefile 或 LetsEncrypt 設定 www.domain.com 和domain.com,以始終轉送至domain.com

使用 zonefile 或 LetsEncrypt 設定 www.domain.com 和domain.com,以始終轉送至domain.com

我有一個例子,應該總是導致https://example.com,即使使用者正在輸入www.example.com、https 與否。理想情況下,自動的 letencrypt 設定 https 設定檔應該可以運作。

  • 我嘗試刪除 www 的 A 記錄並使用 CNAME 來指向 example.com 或 @。這似乎沒有任何效果,用戶仍然會訪問 www.我不知道為什麼。

這是我目前的配置:

<VirtualHost [IPV6]:80 IPV4:80>
    ServerAdmin [email protected]
    DocumentRoot /home/example/public_html
    ServerName example.com
    ServerAlias www.example.com
    ErrorLog logs/example.error.log
    CustomLog logs/example.acccess.log common
    <Directory /home/example/public_html>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    RewriteEngine on 
    RewriteCond %{SERVER_NAME} =example.com [OR] 
    RewriteCond %{SERVER_NAME} =www.example.com 
    RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent] 
</VirtualHost>

<VirtualHost [IPV6]:443 IPV4:443>
    ServerAdmin [email protected]
    DocumentRoot /home/example/public_html
    ServerName example.com
    ServerAlias www.example.com
    ErrorLog logs/example.error.log
    CustomLog logs/example.acccess.log common
    <Directory /home/example/public_html>
        Options FollowSymLinks
        AllowOverride All
    </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
</VirtualHost>

然後然而,https://www.example.com即使我將其添加到 :443 配置中,也會拋出錯誤的憑證:

    RewriteCond %{SERVER_NAME} =www.example.com 
    RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent] 

如何將 http 和 https 請求重新導向到www.example.comhttps://example.com

答案1

客戶到達https://www.example.com所以即使你重定向到https://example.com你需要兩個 SSL 憑證(一個用於 example.com,另一個用於www.example.com) 或者對兩個網域都有效的單一 SSL 憑證

如果您正在使用證書機器人若要頒發 Let's Encrypt 證書,您可以使用多個-d參數來指定多個網域,例如:

certbot certonly --webroot -w /var/www/example -d www.example.com -d example.com

相關內容