我想使用证书验证我的信号客户端。
在客户端,我有:
Connection = new HubConnection(ServerUri);
var certificate = new X509Certificate2(path);
Connection.AddClientCertificate(certificate);
HubProxy = Connection.CreateHubProxy("MyHub");
我还尝试使用私钥创建证书:
var certificate = new X509Certificate2(path, "...");
在服务器上我有这个配置:
<location path="signalr">
<system.webServer>
<security>
<access sslFlags="SslNegotiateCert" />
</security>
</system.webServer>
</location>
要获得我尝试的证书:
Context.Request.GetHttpContext().Request.ClientCertificate
Context.Request.Environment.TryGetValue("ssl.ClientCertificate", out cert)
第一个问题是path =“signalr”。当我使用它时,客户端无法连接到服务器,我得到:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data
for the page is invalid.
我试过:path =“〜”,path =“signalr / content”,path =“signalr / send”并且没有错误,但服务器上的客户端证书始终为空。
非常感谢任何帮助。