使用 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 或不是。理想情况下,自动化 letsencrypt config 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 证书

如果你正在使用certbot要颁发 Let's Encrypt 证书,您可以使用多个-d参数来指定多个域,例如:

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

相关内容