Quicker网站已改为使用Let's Encrypt的证书,
如果您的Windows版本过旧且长时间没有打补丁,可能不支持比较新的SSL证书。
参考问题:Websocket服务出错:获取服务端证书失败。发送请求时出错。 - Quicker
可以尝试的方法:
1) 安装比较新的Win7累积补丁。
2)安装根证书,参考:https://docs.certifytheweb.com/docs/kb/kb-202109-letsencrypt/#windows-pcs
以下是中文翻译:
Windows 电脑
在 Windows 电脑上,只需使用 Chrome、Edge 等浏览器访问某个网站,即可通过所需证书来更新客户端信任存储。访问 https://valid-isrgrootx1.letsencrypt.org/ 时,Windows 会自动将 ISRG Root X1 包含到其信任存储中。
如果你的 Windows 证书存储过时,可以手动安装 ISRG Root X1:
- 访问 http://x1.i.lencr.org/ 下载 ISRG Root X1 的
.cer
文件(你的浏览器可能会警告文件类型,你可能需要点击“保留”来保存文件)。- 打开下载后的文件,点击“安装证书...”,选择“将证书安装到受信任的根证书存储”选项,依次点击“下一步”、“完成”。
- 重启电脑。
完成后,你应该检查为何你的 Windows 系统没有自动更新证书颁发机构(这通常是默认行为)。
以下是ChatGPT给出的建议:
在较新的系统(如 Windows 10/11)上,绝大多数浏览器已默认信任 Let's Encrypt 的根证书,因此访问使用该免费 SSL 证书的网站时通常不会有问题。但在 Windows 7 上,如果系统缺少必要的根证书更新,就有可能无法正常访问或会出现证书不被信任的提示。
下面提供几种常见的解决思路和步骤,建议按从简到繁的顺序操作:
方法一:确认并安装 Windows 7 的系统更新(包括根证书更新)
确保 Windows 7 已经安装了 Service Pack 1 (SP1)
- 只有安装了 SP1 的 Windows 7 才能继续接收后续更新(虽然微软对 Win7 官方支持已停止,但在一些场景下仍能获取部分关键更新),并且一些软件或第三方工具可能需要 SP1 作为依赖环境。
- 右键“计算机”,选择“属性”,可查看系统信息,确认是否已安装 Service Pack 1。
开启自动更新或手动更新根证书
- 在“控制面板” > “Windows Update” 中,查看是否有可用的重要更新,尽量安装完所有重要更新。
- 由于微软对 Windows 7 已经停止主流支持,如果无法自动更新,可尝试通过Microsoft Update Catalog手动下载安装相关更新补丁。
- 重点关注能更新根证书的补丁(如 KB3004394、KB931125 等),因为这些是用来定期更新系统的根证书存储区的。
验证根证书是否已经更新
- 安装更新完成后,可以在浏览器中再次访问目标网站,或使用一些 SSL 检测工具(如 SSL Labs - SSL Server Test)来查看是否还存在“不受信任”或“证书链不完整”等问题。
优点:这是最常规、最官方的方法,如果 Windows 7 还未安装所有关键性安全补丁,装上之后不仅能解决证书问题,还能提升系统稳定和安全性。
缺点:由于 Windows 7 已停止主流支持,有时更新安装可能不太顺畅,需要手动去下载和安装补丁。
方法二:手动导入 Let's Encrypt 的根证书(ISRG Root X1 等)
如果实在无法更新系统,或者更新后依旧无法正常访问,也可以手动将最新版的根证书导入到 Win7 本地的“受信任的根证书颁发机构”中。比较常见的需要导入的根证书为 ISRG Root X1(这是 Let's Encrypt 主要使用的根证书),有时还需要 DST Root CA X3(历史原因,少数老系统中依旧依赖它来建立完整的证书链)。不过现阶段关键是 ISRG Root X1。
1. 下载根证书
- 建议从 Let's Encrypt 官方证书仓库 下载对应的根证书,也可以从一些可靠的第三方获取(确保来源可信)。
下载时,可根据需求选择“PEM”、“DER”等格式,一般导入 Windows 使用
.crt
或.cer
格式较为方便。2. 打开“证书管理器”并导入
方法 1:
- 在下载好的根证书文件上右键,选择“安装证书(Install Certificate)”。
- 在证书导入向导里,选择“本地计算机(Local Machine)”或“当前用户(Current User)”,若需要所有用户都生效则选“本地计算机”。
- 接着在“证书存储”中选择“将所有的证书都放入下列存储”,并指定“受信任的根证书颁发机构”。
- 点击“完成”并确认安装。
方法 2:
- 按下
Win + R
,输入 mmc 并回车,打开“Microsoft 管理控制台”。- 在菜单“文件”中选择“添加/删除管理单元”,然后在左侧选择“证书”,点击“添加”。
- 选择“计算机账户”并下一步完成添加。
- 在控制台中展开“证书 (本地计算机)” > “受信任的根证书颁发机构” > “证书”。
- 右键空白处 > “所有任务” > “导入”,然后选择刚才下载的根证书文件,按照向导点击“下一步”完成导入。
3. 验证导入结果
- 导入成功后,可以在“证书 (本地计算机)” > “受信任的根证书颁发机构” > “证书”中看到 ISRG Root X1(或对应证书)。
- 重新打开浏览器,访问目标网站,如果一切正常,浏览器会显示网站使用的是受信任的加密连接。
优点:无需依赖系统更新,只要手动导入到根证书颁发机构即可;对局域网内大量旧机型也可以半自动化或脚本化来分发证书。
缺点:需要自己保持对证书的更新关注,一旦 Let's Encrypt 根证书有变动,需要再次手动更新。
方法三:在浏览器或网络代理层面做自定义信任(非常规)
如果只在特定浏览器使用,或者可以通过代理服务器统一“代理+转发”来解决证书信任问题,也是一种思路,不过比较非常规,适合某些测试或临时应急场景。例如:
- 在 Firefox 中自带一个证书管理器,它自身在一定程度上依赖自身的根证书库,而不是 Windows 的根证书库(所以在 Win7 未更新的情况下,有时用 Firefox 能正常访问,用 IE 却不行)。
- 在网络代理服务器或 SSL 中间人代理中添加根证书,让旧系统访问时能够通过代理的中间证书建立 SSL 连接。
但对于一般用户、日常使用而言,不太建议用这种方法,除非对网络环境、代理配置非常熟悉且可控。
常见问答
为什么 Windows 7 访问同一个网站,而在 Windows 10/11 或手机上却正常?
这主要是因为 Win7 已停止官方支持,系统自带的根证书存储很老,如果不更新或手动导入,就不包含 Let's Encrypt 的最新根证书。因此 Win7 会误认为该网站的证书不受信任。导入证书后,浏览器还是提示不信任?
- 确认证书是正确且完整的,比如必须把 ISRG Root X1 根证书导入到“受信任的根证书颁发机构”,而非中间证书或用户证书存储区。
- 确认没有导入到错误位置或者中途选择错了安装路径。
- 如果是多浏览器,可能需要分别导入,或导入到“本地计算机”的受信任根证书才能覆盖所有浏览器。
DST Root CA X3 还用手动导入吗?
由于大部分当前使用的证书链已经迁移到 ISRG Root X1,为了兼容极少数尚未更新链的服务环境,仍可能需要 DST Root CA X3;但在大多数情况下,手动导入 ISRG Root X1 即可。
总结
- 最建议的方式是给 Windows 7 安装所有关键性安全补丁,尤其是根证书更新相关的补丁,这样系统可以自动信任 Let’s Encrypt 的最新证书。
- 如果无法更新,也可以 手动导入 Let’s Encrypt 根证书(主要是 ISRG Root X1),让系统和浏览器信任该证书。
- 如果以上都无法实现(或场景特殊),才考虑非常规的 代理方式 或 单浏览器证书管理 等手段。
通过以上方法,Windows 7 即可正常访问使用 Let’s Encrypt 免费 SSL 证书的网站。