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

如何将HTTPS重定向(降级)至HTTP?配置后无法访问问题排查

问题分析与解决步骤

首先明确:浏览器提示“站点未找到”并非现代浏览器阻止HTTPS降级,而是TLS握手未完成——HTTPS请求的第一步是建立TLS连接,服务器必须提供SSL证书才能完成握手,没有证书的情况下浏览器会直接终止请求,根本不会收到你的301重定向指令。

以下是具体排查和解决方法:

1. 确认Web服务是否监听443端口

首先检查你的Web服务器(Apache/Nginx)是否真正在监听443端口:

# 适用于所有系统
ss -tulpn | grep ":443"
# 或者用netstat(部分系统需安装)
netstat -tulpn | grep ":443"

如果没有任何输出,说明你的443 VirtualHost配置未生效:

  • Apache用户:执行a2ensite mysite.conf启用站点,再重启服务systemctl restart apache2
  • Nginx用户:执行nginx -t检查配置语法,无错误后重启systemctl restart nginx

2. 配置临时SSL证书完成TLS握手

即使Web服务监听了443端口,没有证书的话TLS握手依然会失败。你需要生成一个自签SSL证书(无需迁移原有证书),让浏览器能完成握手并接收重定向:

生成自签证书(通用命令)

openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/example.key -out /etc/ssl/certs/example.crt -days 7 -nodes

(参数说明:-days 7设置有效期为7天,足够临时使用;-nodes生成无密码的私钥)

配置Web服务的443 VirtualHost

Apache示例:

<VirtualHost *:443>
    ServerName example.com
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key
    # 301重定向到HTTP
    Redirect 301 / http://example.com/
</VirtualHost>

Nginx示例:

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;
    return 301 http://example.com$request_uri;
}

配置完成后重启Web服务,此时访问HTTPS地址会先出现“不安全连接”提示(自签证书的正常现象),但用户确认后会被重定向到HTTP地址。

3. 排查外部网络限制

即使关闭了ufw,若你的服务器是云服务器(如AWS、阿里云),需检查云服务商的安全组/防火墙规则是否放行443端口——很多云服务商的安全组默认会拦截非80/443的端口,但部分默认也会拦截443,需手动添加放行规则。

4. 清除浏览器缓存测试

部分浏览器会缓存HTTPS站点的失败状态,建议用隐私/无痕窗口测试,或清除对应站点的缓存后再尝试访问。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:07:19