who*_*cow 25 ssl curl ssl-certificate
我有一个使用自签名证书运行的烧瓶应用程序.我可以使用以下命令发送卷曲请求:
curl -v -k -H "Content-Type: application/json" -d '{"data":"value1","key":"value2"}' https://<server_ip>:<port>
Run Code Online (Sandbox Code Playgroud)
详细的日志显示一切顺利.
我想避免使用-k(--insecure)选项,而是指定curl可以使用的.pem文件.看一下curl手册页,我发现你可以使用--cert选项来做到这一点.所以我用这个创建了一个.pem文件:
openssl rsa -in server.key -text > private.pem
Run Code Online (Sandbox Code Playgroud)
使用private.pem文件时CURL会抛出此错误:
curl: (58) unable to use client certificate (no key found or wrong pass phrase?)
Run Code Online (Sandbox Code Playgroud)
有什么建议? - 或者这是否只有正确签署的证书?
TNX
Dan*_*erg 51
这只是这个问题的另一个版本:使用openssl从服务器获取证书
或者更坦率地说:
使用curl --cert是错误的,它适用于客户端证书.
首先,获取您的服务器使用的证书:
$ echo quit | openssl s_client -showcerts -servername server -connect server:443 > cacert.pem
Run Code Online (Sandbox Code Playgroud)
(-servername对于SNI是必要的,以便您获得正确的虚拟服务器证书)
然后让你的curl命令行使用该设置来验证后续操作中的服务器:
$ curl --cacert cacert.pem https://server/ [and the rest]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54308 次 |
| 最近记录: |