我有一个安装pfx文件的c#程序(代码如下)
X509Certificate2 cert;
cert = new X509Certificate2(@"myCert.pfx", "password");
if (cert != null)
{
var store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
if (!store.Certificates.Contains(cert))
{
store.Add(cert);
}
}当我在管理控制台中查看证书时,这似乎将证书添加到了正确的位置。然而,我在c#中有一个websocket服务器,它会将它从存储中挑选出来,并将其用于与浏览器的ssl连接,但是浏览器都会失败,因为没有对证书进行身份验证。
但是,如果我手动安装它(单击证书)并将其安装到相同的位置,则一切正常。
注意:它是自签名的
我该如何解决这个问题?
发布于 2015-10-27 00:01:06
如果证书是自签名的,您也必须将其用于HTTPS页面,该页面包含连接到websocket的javascript代码,因此浏览器可以提示您接受证书。
您可以使用以下命令检索证书:
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates[1];
store.Close();然后将其用于您的WebSocket服务器。我不知道您使用的是哪个.NET WebSocket服务器,但是in WebSocketListener is done this way。
https://stackoverflow.com/questions/33350155
复制相似问题