Chrome浏览器无法访问本地HTTPS页面,报ERR_SSL_PROTOCOL_ERROR错误
解决Chrome访问本地HTTPS页面出现ERR_SSL_PROTOCOL_ERROR的问题
我之前踩过一模一样的坑,给你整理几个亲测有效的排查和解决步骤,按顺序试试:
一、先排查本地HTTPS服务的证书问题
- 首先确认你的本地服务有没有正确配置SSL证书:很多时候是自签证书没被Chrome信任,或者证书绑定的域名不是
localhost。 - 手动导入证书到Chrome信任库:打开Chrome设置→隐私和安全→安全→管理证书→导入你的自签证书,然后把它设为“信任该证书颁发机构”,重启Chrome再试。
二、清理Chrome的SSL相关缓存(不止HSTS)
- 你已经试过在
chrome://net-internals/#hsts删除localhost了,那再试试清理浏览器的SSL缓存:- 打开
chrome://settings/clearBrowserData,切换到“高级”标签,时间范围选“所有时间”,勾选「缓存的图片和文件」和「SSL证书缓存」,点击清除数据。 - 完全关闭Chrome(包括后台进程)再重新打开,测试访问。
- 打开
三、确认本地服务的端口和协议匹配
- 别犯低级错误:你的本地服务得是真的跑在HTTPS协议上,不能把HTTP服务放在HTTPS端口(比如443、8443)上,这种情况必然会返回无效响应。
- 可以用
curl -v https://localhost:你的端口命令在终端测试,看输出的SSL握手信息,判断是服务端配置问题还是浏览器的问题。
四、临时禁用Chrome证书校验(仅排查用)
- 注意:这是临时测试手段,别长期开着!右键Chrome快捷方式,在「目标」字段最后加一段
--ignore-certificate-errors(前面要留空格),重启Chrome后如果能访问,说明核心问题还是证书信任,回到第一步彻底解决证书问题。
五、检查HOSTS和代理设置
- 打开系统的HOSTS文件,确认
localhost还是指向127.0.0.1,没有被篡改。 - 关闭Chrome的代理:打开设置→系统→打开您计算机的代理设置,确保自动代理和手动代理都处于关闭状态,避免代理干扰本地SSL连接。
内容的提问来源于stack exchange,提问作者jikku




