如何调用启用 SSL 的 Web Api?

Posted

技术标签:

【中文标题】如何调用启用 SSL 的 Web Api?【英文标题】:How to invoke SSL enabled Web Api? 【发布时间】:2014-03-07 12:20:04 【问题描述】:

我需要从 WinForm 应用程序调用启用 SSL 的 Web Api。如何为此配置HttpClient

这些是我已经完成的先决条件:

    我使用 RequireHttpsAttribute 在 Web Api 中启用了 SSL。 我在 IIS 中完成了必要的证书导入任务,以使我的 Web Api 工作正常。

【问题讨论】:

【参考方案1】:

您可以尝试将 HttpClinet 类与 HttpClientHandler 一起使用。

X509Certificate2 cert;
X509Store store = new X509Store(StoreName.My);

try

    store.Open(OpenFlags.ReadOnly);
    cert = store.Certificates.OfType<X509Certificate2>().First(p => p.Thumbprint == "...");
    cert.Dump();

finally

    if (store != null)
        store.Close();
   

var clientHandler = new WebRequestHandler();
clientHandler.ClientCertificates.Add(cert);
var client = new HttpClient(clientHandler);

【讨论】:

谢谢,CertificateUtility 在哪里? CertificateUtility 是我的包装器,类似于syfuhs.net/post/2011/05/12/…。我已经更改了代码以避免它。

以上是关于如何调用启用 SSL 的 Web Api?的主要内容,如果未能解决你的问题,请参考以下文章

如何调用在受SSL保护的服务器上运行的API

如何在启用基本身份验证的情况下启用对 Web API 中所有来​​源的访问?

如何在使用 openssl 的专用网络上的服务器上启用 SSL?

c#web api - 使用HTTPS运行Web应用程序 - 添加了证书并启用了SSL,但是连接被拒绝了

如何在 jndi 中启用 ldap over ssl

SAP ABAP 如何启用SSL HTTPS连接