0

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

The HTTP request was forbidden with client authentication scheme 'Anonymous' error;
  • 在电子邮件服务方面:

SSL 设置在 Require SSL (Require) 上,IIS Binding 在 HTTPS 上

  • 在 API 方面: 在此处输入图像描述

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

有什么建议么?谢谢

4

1 回答 1

-1

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

于 2020-04-02T03:12:16.050 回答