首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >curl未能在命令提示符下导入cert文件client.crt,而Powershell在gitbash上运行良好。

curl未能在命令提示符下导入cert文件client.crt,而Powershell在gitbash上运行良好。
EN

Stack Overflow用户
提问于 2022-03-02 16:11:29
回答 3查看 5.1K关注 0票数 1

我在用Windows..。

当我通过gitbash运行以下curl命令时,它运行得很好:

代码语言:javascript
运行
复制
curl --cacert ca.crt --key client.key --cert client.crt "https://myurl"

但是,如果我试图在命令提示符或Powershell中运行相同的命令,则会得到以下错误:

代码语言:javascript
运行
复制
curl: (58) schannel: Failed to import cert file client.crt, last error is 0x80092002

要使命令在命令提示符或Powershell中工作,我需要做什么?

EN

回答 3

Stack Overflow用户

发布于 2022-03-03 12:01:30

Windows版本的curl.exe没有配置为可以使用openssl,但是git的版本是。

因此,为了确保每当我在命令提示符中输入“curl”,它使用了Git版本的curl,我在系统环境变量中添加了到Git的curl (C:\Program \Git\mingw64 64\bin)的路径,并将其移到顶部的…中。所以它在找到窗口卷曲之前就找到了盖特卷曲。

然后重新启动命令提示符,它解决了这个问题。

票数 5
EN

Stack Overflow用户

发布于 2022-03-02 17:27:42

您以错误的格式提供客户端证书。curl需要PEM格式的证书(来源):

-E/-cert (SSL)告诉curl在使用HTTPS或FTPS获取文件时使用指定的证书文件。证书必须采用PEM格式。如果未指定可选密码,则将在终端上查询该密码。请注意,此选项假定一个“证书”文件,即私钥和私有证书连接在一起!请参见--证书和--键,以独立指定它们。如果curl是针对NSS库构建的,那么这个选项可以告诉curl,在由环境变量SSL_DIR (或默认情况下/etc/pki/nssdb)定义的NSS数据库中使用证书的昵称。如果NSS PKCS#11模块(libnsspem.so)可用,则可以加载PEM文件。如果要使用当前目录中的文件,请在其前面加上"./“前缀,以避免与昵称混淆。如果多次使用此选项,则将使用最后一个选项。

您的证书可能是DER格式的,也可能包含完整的证书链,而不是单个客户端证书。

票数 1
EN

Stack Overflow用户

发布于 2022-07-27 10:43:31

在curl的手册中,描述了在Windows上,默认情况下它使用schannel提供程序(它本身使用windows存储)。我现在正在执行同样的任务:-)试图找到一种从命令行和本地文件传递证书的方法。

也许尝试将证书导入到Windows存储中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71325829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档