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

如何通过.htaccess将HTTPS流量重定向至HTTP(证书过期场景)

解决SSL证书过期后将HTTPS流量重定向至HTTP的方案

我来帮你搞定这个头疼的问题!当SSL证书过期后,要把HTTPS流量转去HTTP确实有点麻烦——毕竟浏览器现在都会优先尝试HTTPS连接,而证书过期直接就触发ERR_SSL_PROTOCOL_ERROR,连常规重定向的机会都不给。不过别慌,下面给你分几种常用服务器的具体配置方法,虽然没法完全跳过浏览器的证书警告,但至少能让用户确认后自动跳转到正常的HTTP站点:

Nginx 配置方案

首先得让Nginx能正常监听443端口,哪怕用的是过期证书(不然Nginx启动不了443监听),然后在这个端口的配置里直接返回重定向:

server {
    listen 443 ssl;
    server_name example.com;

    # 填入你服务器上过期证书的路径,必须配置才能启动443端口
    ssl_certificate /path/to/your/expired-cert.pem;
    ssl_certificate_key /path/to/your/expired-key.pem;

    # 强制重定向所有HTTPS请求到对应的HTTP地址
    return 301 http://$server_name$request_uri;
}

server {
    listen 80;
    server_name example.com;
    # 这里放你正常的HTTP站点配置
    root /var/www/your-site;
    index index.html index.php;
}

说明:用户访问HTTPS时,浏览器会先弹出证书过期的警告,只有当用户手动选择“继续访问”(不同浏览器提示不同),才会触发重定向到HTTP。这是浏览器的安全机制限制,没法完全绕过——毕竟SSL握手在HTTP请求之前,证书无效的话握手失败,浏览器不会把请求发给服务器。

Apache 配置方案

先确保Apache启用了mod_ssl和mod_rewrite模块,然后配置虚拟主机:

<VirtualHost *:443>
    ServerName example.com

    # 配置过期的证书文件路径
    SSLCertificateFile /path/to/your/expired-cert.pem
    SSLCertificateKeyFile /path/to/your/expired-key.pem

    # 启用重写引擎并设置重定向规则
    RewriteEngine On
    RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [L,R=301]
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    # 正常的HTTP站点配置
    DocumentRoot /var/www/your-site
</VirtualHost>

说明:和Nginx的逻辑一样,必须配置过期证书让Apache能监听443端口,用户确认证书警告后会被自动跳转到HTTP站点。

IIS 配置方案

  1. 先在IIS管理器中给你的网站绑定443端口:选择网站→编辑绑定→添加,类型选HTTPS,端口填443,然后选择你服务器上的过期证书。
  2. 如果没装URL重写模块,先安装它(可通过IIS管理器的“Web平台安装程序”搜索下载)。
  3. 打开网站的URL重写功能,添加一条新规则:
    • 规则名称:HTTPS to HTTP Redirect
    • 匹配URL:选择“正则表达式”,模式填(.*)
    • 条件:添加条件,输入{HTTPS},匹配模式选^ON$
    • 操作:重定向到http://{HTTP_HOST}/{R:1},重定向类型选择“永久(301)”

说明:同样,用户访问HTTPS时会遇到证书警告,确认后被重定向到正常的HTTP站点。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:19:16