客户端身份验证方案“匿名”网络核心禁止HTTP请求

时间:2020-03-30 10:05:29

标签: wcf asp.net-core iis connected-services

我有一个.net核心API和一个EmailService作为连接服务(WCF) EmailService托管在IIS(HTTPS)上;我正在尝试使用客户端证书连接到emailService。一切都很好,但是我得到了

The HTTP request was forbidden with client authentication scheme 'Anonymous' error;
  • 在EmailService端:

“ SSL设置”位于“需要SSL”(“必需”)上,IIS绑定位于“ HTTPS”上

  • 在API方面: enter image description here

当我尝试通过chrome浏览器访问电子邮件服务时,提示输入客户端证书,选择证书,一切正常;

有什么建议吗? 谢谢

1 个答案:

答案 0 :(得分:-1)

我不确定您是否可以正确调用该服务,因为DotNet Core不支持WS-security。无论如何,此错误通常表示建立Https通信时服务器端无法识别客户端的证书。另外,如果您的客户端通过HTTP与服务器通信,并且服务器要求SSL,则也会发生这种错误。
enter image description here
无法正确建立客户端和服务器端之间的Https安全通信。如您所知,https安全通信需要相互交换证书的公共密钥的过程。因此,服务器端和客户端应建立相互信任。换句话说,服务器的证书必须受客户端信任,而客户端的证书必须受服务器信任。具体操作是将证书安装在本地Trusted Root Certification Authorities中。
请参考以下链接。
https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/transport-security-with-certificate-authentication
此外,客户端应有权访问客户端提供的证书的私钥,以便https安全通信有效。具体操作是将当前用户添加到证书的私钥管理组中。
随时让我知道是否有什么可以帮助您的。