我在我的单声道虚拟机上使用这个命令
sudo mozroots --import --sync
它似乎正在从 this site 获得证书.
然后我尝试连接到我的 ssl 站点,但我收到证书无效的异常。我使用 firefox 并看到证书是在 2010 年颁发的。我查看了该文件,看到它上次更新的时间是 2009-05-21 12:50
在同一台机器上使用 firefox 时,我可以导航到我尝试连接的同一个 URL,并且没有 ssl 问题。 (没有警报,也没有要求我将其添加到异常中)。
我在这里很困惑。如何更新单声道以使用最新的证书?
-edit- 我检查了谁签署了我想访问的网站的证书,他们的名字在 certdata 中。我想知道为什么单声道说证书无效。
我试着写这个,我对它要求我导入的 3 个证书点击是
certmgr -ssl https://www.site.com/users/login --machine
我再次运行我的应用程序并收到此错误。谷歌搜索错误代码 0xffffffff80092012 i found this .
看起来像一个尚未应用于 2.6.4 的固定错误。或者我可能做错了。我确实将 ServerCertificateValidationCallback 设置为我自己的东西,并为此应用程序返回 true 作为对单声道的修复。
System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff80092012
最佳答案
关于错误 606002 的后续行动 - 这是忽略所述错误代码的代码。在初始化时调用一次
ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors sslPolicyErrors) {
if (sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors) {
foreach (X509ChainStatus status in chain.ChainStatus) {
if (status.Status != X509ChainStatusFlags.RevocationStatusUnknown) {
return false;
}
}
return true;
}
return false;
};
关于.net - cert 和 mozroots 的 Mono 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285489/