首页 文章

如何让XSockets与HTTPS和WSS一起使用?

提问于
浏览
2

当我使用“ws://”URL时,我的XSockets.Net代码工作正常,但是当我尝试实现安全版本时,我无法使其工作 .

我使用以下C#示例代码作为我的指南:

//Sample 1 - Certificate from store public class ChuckNorrisConfig :
ConfigurationSetting {
  public MyCustomConfig1() : base(new Uri("wss://my.server.ip.address:4502"))
  {
    this.CertificateLocation = StoreLocation.LocalMachine;
    this.CertificateSubjectDistinguishedName = "cn=localmachine";
  } 
}

//Sample 2 - X509Certificate2
public class MyCustomConfig2 : ConfigurationSetting {
 public ChuckNorrisConfig() : base(new Uri("wss://my.server.ip.address:4502"))
 {
   this.Certificate = new X509Certificate2("file.name", "password");//  line 369
 }
}

我收到以下错误:

ERROR 2014/09 / 07-19:50:16无法启动XSockets服务器 . System.Reflection.TargetInvocationException:调用目标抛出了异常 . ---> System.Security.Cryptography.CryptographicException:系统找不到指定的文件 . 位于System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName)的System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32hr),位于System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName,Object password,X509KeyStorageFlags) keyStorageFlags)位于C:\ MyProjects \ NET.Server \ Program.cs中的NET.Server.MyCustomConfig2..ctor()的System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName,String password):第369行 - - 内部异常堆栈跟踪结束---

它在我用评论标记的第369行出错了 . 我不知道应该是什么“file.name” . 如何获取SSL证书的“file.name”?我一直在使用我制作的自签名测试证书,但我不知道从哪里获得它的“file.name”我希望有一个可以引用的可运行代码的实际示例,而不是必须查看通用的东西 .

有没有人有一个有效的XSockets WSS实现的完整示例?我正在使用XSockets.Net版本3.0.6,谢谢 .

1 回答

  • 0

    如果您在机器上安装了证书,则需要使用Sample1(这听起来就像您要找的那样) .

    您可以使用certmanager certmgr.msc在计算机中找到证书,并按名称查找 .

    示例1是为了您有实际的文件证书,并且不想导入它 .

相关问题