无法通过证书验证解决问题.
有Web API服务器,它使用HTTPS来处理请求.服务器的证书具有以下认证路径:RCA(root) - > ICA(中间) - > Web API服务器.RCA,ICA和Web API服务器是同一Active Directory域的成员.
客户端应用程序(桌面,计算机加入同一域)用于HttpClient
与服务器通信并支持两种方案:
连接到企业网络;
与公司网络断开连接(Internet访问).
两种方案都使用基本身份验
RCA和ICA证书分别放在"受信任的根证书颁发机构"和"中间证书颁发机构"中,用于本地计算机帐户.RCA证书是自签名的.
现在,当客户端连接到公司网络时,证书验证按预期工作,用户可以与Web API"对话".
当客户端断开连接(只有Internet连接可用)时,证书验证失败AuthenticationException
("远程证书根据验证过程无效").
我不想完全关闭证书验证,但只需要告诉验证系统,这个特定证书是有效的.此外,客户端应用程序使用SignalR,它默认使用它自己的传输.因此,这和这不是选项.
为什么将RCA ICA证书放到"Trusted ..."和"Intermediate ..."文件夹中没有帮助?
有没有解决方法?
您遇到的问题是因为证书提供的主题CN与Uri中的主机名不匹配。
确保绑定到主机的公共IP地址的证书确实具有与您用来访问资源的主机名匹配的CN。
为了轻松进行验证,请在浏览器中打开“ URL”并查看证书。在颁发给字段应包含FQDN并匹配URI中的主机名部分。就您而言,事实并非如此。