使用C#安装pfx文件似乎与手动安装有所不同

使用C#安装pfx文件似乎与手动安装有所不同,c#,websocket,pfx,C#,Websocket,Pfx,我有一个安装pfx文件的c#程序(代码如下) 当我在管理控制台中查看证书时,这似乎将证书添加到了正确的位置。然而,我有一个c#格式的websocket服务器,它将从商店中挑选出来,并将其用于与浏览器的ssl连接,但是由于没有证书认证,浏览器都会失败 但是,如果我手动安装它(单击证书)并将其安装到同一位置,一切正常 注意:它是自签名的 如何解决此问题如果证书是自签名的,您还必须将其用于包含连接到websocket的javascript代码的HTTPS页面,以便浏览器可以提示您接受证书 您可以使用以

我有一个安装pfx文件的c#程序(代码如下)

当我在管理控制台中查看证书时,这似乎将证书添加到了正确的位置。然而,我有一个c#格式的websocket服务器,它将从商店中挑选出来,并将其用于与浏览器的ssl连接,但是由于没有证书认证,浏览器都会失败

但是,如果我手动安装它(单击证书)并将其安装到同一位置,一切正常

注意:它是自签名的


如何解决此问题

如果证书是自签名的,您还必须将其用于包含连接到websocket的javascript代码的HTTPS页面,以便浏览器可以提示您接受证书

您可以使用以下方法检索证书,例如:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates[1];
store.Close();

然后将其用于WebSocket服务器。我不知道您使用的是哪个.NET WebSocket服务器,但是。

如果证书是自签名的,那么您还必须将其用于包含连接到WebSocket的javascript代码的HTTPS页面,以便浏览器可以提示您接受证书

您可以使用以下方法检索证书,例如:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates[1];
store.Close();

然后将其用于WebSocket服务器。我不知道您使用的是哪个.NET WebSocket服务器,但是。

是的,我在c#server中使用了它,它可以很好地识别证书。HTTPS站点有一个有效的可信证书。如果我通过c#安装本地证书,它将无法工作。手动安装工作正常您是否尝试使用
StoreName.My、StoreLocation.LocalMachine
安装证书?我将尝试。我实际上是在使用你的dll的vtortola:)它不允许我添加到那个位置。我尝试了
currentUser
,它已安装,但在服务器中重新修改证书时找不到它。似乎只有在放入
StoreName.Root,StoreLocation.CurrentUser中才能找到它手动安装证书工作正常…真是太痛苦了。p、 在websocket上做得很好谢谢!明天我将尝试重现我在c#server中使用的问题,它会很好地挑选证书。HTTPS站点有一个有效的可信证书。如果我通过c#安装本地证书,它将无法工作。手动安装工作正常您是否尝试使用
StoreName.My、StoreLocation.LocalMachine
安装证书?我将尝试。我实际上是在使用你的dll的vtortola:)它不允许我添加到那个位置。我尝试了
currentUser
,它已安装,但在服务器中重新修改证书时找不到它。似乎只有在放入
StoreName.Root,StoreLocation.CurrentUser中才能找到它手动安装证书工作正常…真是太痛苦了。p、 在websocket上做得很好谢谢!明天我将设法复制这个问题