我电脑一直有一个奇怪的问题。访问部分https页面错乱,尤其edge浏览器。在网络正常情况下,打开应用商店(Microsoft Store)显示无法访问网络。
搜错误代码发现网上提供以下办法均不能解决:
1、关闭代理
2、修改IE高级配置启用TLS1.2
3、关闭防火墙
怪异的是 我打开fiddler 抓https包,刷新应用商店链接,提示unsafe然后忽略提示,应用商店就能用了。关了fiddler或者停止抓包,应用商店就不能用。提示信息如下:
Session #9: The server (storeedgefd.dsx.mp.microsoft.com) presented a certificate that did not validate, due to RemoteCertificateChainErrors.
0 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。
ISSUER: CN=Microsoft Azure ECC TLS Issuing CA 02, O=Microsoft Corporation, C=US
This warning can be disabled by clicking Tools > Options.
想着不影响啥,很长时间没有解决。直到我要用VScode 装bito插件,搜索插件列表显示不出来。结果提示“XHR failed”。同样怪异的是 我打开fiddler 抓https包,刷新搜索插件列表就能显示出来。bito是联网用的,我也不能为了使用VScode 一直开着fiddler啊。
2023-07-21 14:43:01.385 [error] Error: XHR failed
at y.onerror (vscode-file://vscode-app/c:/Users/Administrator/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:77:1261)
决定从应用商店入手。
通过点击应用商店“刷新页面”,系统“事件查看器”显示错误日志 事件ID:36882
错误信息为:从远程服务器上收到的证书是不受信任的证书颁发机构发行的。因此,不能验证此证书里包含的数据。TLS 连接请求失败。附带的数据包含服务器证书。
上网上搜事件ID,没找到解决办法。考虑是证书的问题。
由于本人不是很懂证书。网上搜搜搜发现这个东西叫“根证书”。
大意思是:HTTPS协议的网站需要服务器和客户端(用户电脑)安装证书。通过证书确认网站安全。如果客户端没有证书,就会认为网站不安全禁止访问或报错。客户端根证书无法主动更新,微软又在升级中严格执行验证了,导致电脑访问网址出现一系列问题。
所以想法更新客户端证书就行了。搜搜搜到自动更新证书服务。
解决方法如下:
1、以管理员身份运行“Microsoft Power Shell”(程序上右键)。
2、执行下面代码
certutil.exe -generateSSTFromWU roots.sst
注意下面第一段代码的路径。是根据第一句执行的路径拼接的。
$sstStore = (Get-ChildItem -Path C:\Windows\system32\roots.sst)
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
3、执行结果如下
然后证书就更新完成了。应用商店和VSCODE问题都解决。爽~~~~
寻找问题过程曲折离奇,跌宕起伏,写此篇文章解表达激动之情,同时方便后来人。
参考网址:百度安全验证