You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

访问https://www.example.com出现SSL证书错误,Apache重定向无效求助

问题原因与解决办法

原因分析

SSL握手流程优先于Apache的任何重定向规则执行。当你访问https://www.example.com时,浏览器会先与服务器建立SSL连接,此时服务器出示的证书仅匹配example.com,不包含www.example.com域名,浏览器直接触发SSL证书错误,重定向规则根本没机会被执行——因为重定向是在SSL握手成功、Apache开始处理HTTP请求阶段才会运行的。

无需购买新证书的解决办法

方法1:拦截HTTP协议的www请求,提前重定向

大部分用户输入域名时不会主动加https://,可以给www.example.com配置单独的HTTP虚拟主机,把所有HTTP请求直接重定向到https://example.com:

  1. 创建并编辑Apache虚拟主机配置文件:
    sudo nano /etc/apache2/sites-available/www.example.com.conf
    
  2. 添加以下配置内容:
    <VirtualHost *:80>
        ServerName www.example.com
        # 永久重定向到非www的HTTPS地址
        Redirect 301 / https://example.com/
    </VirtualHost>
    
  3. 启用该配置并重启Apache:
    sudo a2ensite www.example.com.conf
    sudo systemctl restart apache2
    

这样用户输入www.example.com(HTTP协议)会直接被重定向到安全地址,不会触发证书错误。

方法2:使用免费SSL证书覆盖www域名(无需购买)

如果希望彻底解决https://www.example.com的证书问题,可以使用Let's Encrypt的免费SSL证书,它支持同时包含主域名和www子域名:

  1. 安装Certbot工具:
    sudo apt update
    sudo apt install certbot python3-certbot-apache
    
  2. 生成包含example.com和www.example.com的证书:
    sudo certbot --apache -d example.com -d www.example.com
    
  3. 按照提示完成配置,Certbot会自动更新Apache的虚拟主机配置,同时设置证书自动续期。

补充说明

如果用户直接输入https://www.example.com,方法1无法避免证书错误——因为此时强制走HTTPS协议,必须先完成SSL握手。这种情况下,方法2是彻底解决的最优方案,且完全免费。

内容的提问来源于stack exchange,提问作者DavidBouckaert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:20:59