Windows7/ Win10 更新Let's Encrypt 根证书

CL 2025/1/7 发布 · 2025/1/13 更新 · 24769 次阅读

Quicker网站已改为使用Let's Encrypt的证书,

如果您的Windows版本过旧且长时间没有打补丁,可能不支持比较新的SSL证书。

也有一些比较新的系统如Win11、Win10可能因某种原因丢失根证书,可参考本文添加根证书。

参考问题:Websocket服务出错:获取服务端证书失败。发送请求时出错。 - Quicker 

 

可以尝试的方法:

1)安装根证书,参考: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:

  1. 访问 http://x1.i.lencr.org/ 下载 ISRG Root X1 的 .der 文件(你的浏览器可能会警告文件类型,你可能需要点击“保留”来保存文件)。如果点击链接没有开始下载,请复制链接网址后,在新标签页打开。

    下载到文件:
  2. 双击打开下载后的文件,点击“安装证书...”,选择“将证书安装到受信任的根证书存储”选项,依次点击“下一步”、“完成”。








  3. 重启电脑。(不重启也可能解决)

完成后,你应该检查为何你的 Windows 系统没有自动更新证书颁发机构(这通常是默认行为)。

 

以下是ChatGPT给出的建议:

在较新的系统(如 Windows 10/11)上,绝大多数浏览器已默认信任 Let's Encrypt 的根证书,因此访问使用该免费 SSL 证书的网站时通常不会有问题。但在 Windows 7 上,如果系统缺少必要的根证书更新,就有可能无法正常访问或会出现证书不被信任的提示。

下面提供几种常见的解决思路和步骤,建议按从简到繁的顺序操作:


方法一:确认并安装 Windows 7 的系统更新(包括根证书更新)

  1. 确保 Windows 7 已经安装了 Service Pack 1 (SP1)

    • 只有安装了 SP1 的 Windows 7 才能继续接收后续更新(虽然微软对 Win7 官方支持已停止,但在一些场景下仍能获取部分关键更新),并且一些软件或第三方工具可能需要 SP1 作为依赖环境。
    • 右键“计算机”,选择“属性”,可查看系统信息,确认是否已安装 Service Pack 1。
  2. 开启自动更新或手动更新根证书

    • 在“控制面板” > “Windows Update” 中,查看是否有可用的重要更新,尽量安装完所有重要更新。
    • 由于微软对 Windows 7 已经停止主流支持,如果无法自动更新,可尝试通过Microsoft Update Catalog手动下载安装相关更新补丁。
    • 重点关注能更新根证书的补丁(如 KB3004394、KB931125 等),因为这些是用来定期更新系统的根证书存储区的。
  3. 验证根证书是否已经更新

    • 安装更新完成后,可以在浏览器中再次访问目标网站,或使用一些 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. 下载根证书

下载时,可根据需求选择“PEM”、“DER”等格式,一般导入 Windows 使用 .crt 或 .cer 格式较为方便。

2. 打开“证书管理器”并导入

方法 1:

  1. 在下载好的根证书文件上右键,选择“安装证书(Install Certificate)”。
  2. 在证书导入向导里,选择“本地计算机(Local Machine)”或“当前用户(Current User)”,若需要所有用户都生效则选“本地计算机”。
  3. 接着在“证书存储”中选择“将所有的证书都放入下列存储”,并指定“受信任的根证书颁发机构”。
  4. 点击“完成”并确认安装。

方法 2:

  1. 按下 Win + R,输入 mmc 并回车,打开“Microsoft 管理控制台”。
  2. 在菜单“文件”中选择“添加/删除管理单元”,然后在左侧选择“证书”,点击“添加”。
  3. 选择“计算机账户”并下一步完成添加。
  4. 在控制台中展开“证书 (本地计算机)” > “受信任的根证书颁发机构” > “证书”。
  5. 右键空白处 > “所有任务” > “导入”,然后选择刚才下载的根证书文件,按照向导点击“下一步”完成导入。

3. 验证导入结果

  • 导入成功后,可以在“证书 (本地计算机)” > “受信任的根证书颁发机构” > “证书”中看到 ISRG Root X1(或对应证书)。
  • 重新打开浏览器,访问目标网站,如果一切正常,浏览器会显示网站使用的是受信任的加密连接。

优点:无需依赖系统更新,只要手动导入到根证书颁发机构即可;对局域网内大量旧机型也可以半自动化或脚本化来分发证书。
缺点:需要自己保持对证书的更新关注,一旦 Let's Encrypt 根证书有变动,需要再次手动更新。


方法三:在浏览器或网络代理层面做自定义信任(非常规)

如果只在特定浏览器使用,或者可以通过代理服务器统一“代理+转发”来解决证书信任问题,也是一种思路,不过比较非常规,适合某些测试或临时应急场景。例如:

  • 在 Firefox 中自带一个证书管理器,它自身在一定程度上依赖自身的根证书库,而不是 Windows 的根证书库(所以在 Win7 未更新的情况下,有时用 Firefox 能正常访问,用 IE 却不行)。
  • 在网络代理服务器或 SSL 中间人代理中添加根证书,让旧系统访问时能够通过代理的中间证书建立 SSL 连接。

但对于一般用户、日常使用而言,不太建议用这种方法,除非对网络环境、代理配置非常熟悉且可控。


常见问答

  1. 为什么 Windows 7 访问同一个网站,而在 Windows 10/11 或手机上却正常?
    这主要是因为 Win7 已停止官方支持,系统自带的根证书存储很老,如果不更新或手动导入,就不包含 Let's Encrypt 的最新根证书。因此 Win7 会误认为该网站的证书不受信任。

  2. 导入证书后,浏览器还是提示不信任?

    • 确认证书是正确且完整的,比如必须把 ISRG Root X1 根证书导入到“受信任的根证书颁发机构”,而非中间证书或用户证书存储区。
    • 确认没有导入到错误位置或者中途选择错了安装路径。
    • 如果是多浏览器,可能需要分别导入,或导入到“本地计算机”的受信任根证书才能覆盖所有浏览器。
  3. DST Root CA X3 还用手动导入吗?
    由于大部分当前使用的证书链已经迁移到 ISRG Root X1,为了兼容极少数尚未更新链的服务环境,仍可能需要 DST Root CA X3;但在大多数情况下,手动导入 ISRG Root X1 即可。


总结

  1. 最建议的方式是给 Windows 7 安装所有关键性安全补丁,尤其是根证书更新相关的补丁,这样系统可以自动信任 Let’s Encrypt 的最新证书。
  2. 如果无法更新,也可以 手动导入 Let’s Encrypt 根证书(主要是 ISRG Root X1),让系统和浏览器信任该证书。
  3. 如果以上都无法实现(或场景特殊),才考虑非常规的 代理方式 或 单浏览器证书管理 等手段。

通过以上方法,Windows 7 即可正常访问使用 Let’s Encrypt 免费 SSL 证书的网站。

· {{comment.createTimeStr}}
{{reply.votePoints}}
回复:   – {{reply.createTimeStr}}
回复 x
标签
目录
相关操作