1

我有一个 Web 窗体站点,它将调用我的 IIS 托管 Web API 服务。站点和 Web API 都托管在同一台物理机器上。我们在同一台机器上也有一个 x509 证书。

我希望 Web API 使用此证书来验证请求。所以它只会接受来自“使用”这个证书的客户端的请求。

当我说“使用”时,我想这样做:

  1. 使用 Request.ClientCertificates.Add(myCert); 然后在 API 中 - 从请求中检索证书并验证它。

2.或者如果这太繁琐而无法设置(请参阅下面的问题) - 只需在请求标头中签名或加密令牌(单个单词)。然后在 API 服务中验证或解密令牌。

我的问题是 - 对于选项 1。

我不清楚客户证书。在开发客户端和服务时,是否需要设置 SSL、将证书加载到 IIS 并在 IIS 中调试以测试/调试?或者我可以仅使用 WebDev 测试端到端呼叫吗?

我问这个的原因 - 当我尝试在 WebDev 中做一个非常简单的示例时,我将证书添加到集合客户端,但是当 Web API 收到请求时,请求中不存在证书。

非常感谢。

4

1 回答 1

1

I am unclear about client certs. When I am developing the client and the service, do I need to set up SSL, load the certificate into IIS and debug in IIS to test/debug this? Or can I test the end to end call just using WebDev?

为了使用客户端证书,您必须通过 SSL(相互身份验证)进行连接。因此,这意味着使用服务器证书设置 Web 服务器,然后生成要附加到客户端请求的客户端证书。

IIS 和 IIS express 都支持 SSL,但 Visual Studio 开发 Web 服务器不支持。

于 2013-01-03T22:41:04.780 回答