【发布时间】:2021-06-21 16:08:04
【问题描述】:
1)我使用以下命令创建了 myfile.csr
req -out myfile.csr -new -newkey rsa:2048 -nodes -keyout myfile-pr.key
- 我将 myfile.csr 发送给第 3 方进行签名
- 第三方应用程序签名并发送给我 serverfile.pem
使用这些文件,我将能够使用 curl 命令调用 REST Web 服务。我尝试了以下命令,但它返回了未经授权的错误
curl --cacert ./serverfile.pem --key ./myfile-pr.key --cert ./myfile.csr --pass <password> https://serverpost:port/getEmployeeInfo
【问题讨论】:
-
可能是服务器端的错误配置、您的站点上缺少链证书、仅证书不足以进行身份验证、使用了错误的证书(即使您认为它是正确的)、错误的 URL 等等。不幸的是,不可能根据您问题中的信息重现任何内容,因此只能推测常见问题。
-
感谢@SteffenUllrich 的cmets。我可以通过添加密钥库文件(由第 3 方提供的签名证书)serverfile.pem 和密码来使用soap-ui 调用Web 服务。我按照downey.io/notes/dev/curl-using-mutual-tls 中的说明进行操作。但我不确定 --cacert 是否是我从 3rd 方网络服务应用程序收到的签名证书
-
如果应用程序返回 "unauthorized",那么 TLS 握手本身就起作用了。因此,问题可能是在握手之后对客户端证书进行了更深入的检查,并且失败了。但它也可能与证书完全无关并抱怨因为错误的用户代理、错误的访问方法、错误的 HTTP 标头等。不可能说。
-
实际消息是 "Status": { "code": "401-01", "message": "Unauthorized client failed to present a valid digital certificate",
-
能否提供使用
curl -v时的完整输出@
标签: web-services ssl curl tls1.2