如何在 curl 调用中引用已安装的客户端证书?

问题描述 投票:0回答:1

使用 C#,可以在 Web 请求中提供已安装的客户端证书。如果指纹主题等属性已知,则可以在请求中选择和使用它。不需要证书文件的已知文件路径。 这里是一个例子。

我想对 Windows curl 做同样的事情。

例如,像这样的伪代码。

curl GET https://www.somekindOfaRESTAPI.com -ThumbPrintOfClientCertificate XXXXXX

这样的事情可能吗?如果我需要 C# 使用客户端证书执行简单的 GET 调用,那将是非常令人惊讶的。 Windows curl 也应该能让我这样做。但是如何呢?

windows curl x509certificate x509 client-certificates
1个回答
0
投票

首先必须设置强制 SCHANNEL SSL 后端的环境变量。

set CURL_SSL_BACKEND=schannel

然后可以像这样将证书指纹传递给 curl:

--cert "CurrentUser\\TrustedPeople\\12345abcdefghijk"

与 libcurl 相同的是在代码顶部添加以下内容:

curl_global_sslset(CURLSSLBACKEND_SCHANNEL, NULL, NULL);

然后加载证书:

curl_easy_setopt(curl, CURLOPT_SSLCERT, "CurrentUser\\TrustedPeople\\12345abcdefghijk");
© www.soinside.com 2019 - 2024. All rights reserved.