我创建了一个ASP.NET Core服务,该服务以具有自签名证书的HTTPS服务运行。 在配置中,我将客户端证书设置如下:
var httpsConnectionOptions = new HttpsConnectionAdapterOptions
{
ClientCertificateMode = ClientCertificateMode.AllowCertificate,
SslProtocols = SslProtocols.Tls12,
ServerCertificate = GetServerCert()
};
因此,建立连接后,身份验证处理程序将接受没有证书的客户端 。
我打算使用以下协议:
但是,当我尝试连接到服务器时,总是出现错误 “根据验证过程,远程证书无效。”
有2种情况:
问题之一,它看起来像 catch 22 ,因为客户端尝试获取其证书,但由于没有有效的证书,因此无法建立HTTPS连接,因为客户端没有因为尚未建立TLS连接,所以没有收到自己的(和服务器的)。
我可以在服务器上创建无需HTTPS即可调用的排除方法吗?还是我也应该创建一个HTTP服务,以使客户端在那里下载证书?这种情况下的最佳做法是什么?