Lor*_*nzo 4 curl openssl ssl-certificate
我开始“玩”curl 和 SSL。我正在使用客户端证书,并使用curl 将API 请求发送到服务器。在curl 命令中,我指定客户端证书、私钥文件和密码。为什么我需要使用选项指定私钥--key?我是将文件发送到服务器还是只是通知curl如何解密接收到的数据的一种方式?
小智 8
您没有将私钥发送到服务器。使用它key以便服务器可以验证您提供的客户端证书确实已颁发给您并且您拥有相应的私钥。它用于对服务器发送的一段数据进行签名。仅传输该签名数据而不传输密钥。然后,服务器使用您的证书(由服务器信任的 CA 签名)来解密数据并确认您拥有相应的私钥。(有关 TLS 如何在 TLS 握手期间检查客户端证书的更多信息,请参阅此答案或较短的一则答案)
这与您需要向浏览器提供(通常是 PKCS#12 文件)的方式类似,以便访问需要客户端证书身份验证的网页。PCKS#12 是一种包含捆绑证书和私钥的存档格式。curl也允许您在选项中使用此格式--cert,来自man page:
-E, --cert <certificate[:password]>
(TLS) 告诉curl 在通过 HTTPS、FTPS 或其他基于 SSL 的协议获取文件时使用指定的客户端证书文件。如果使用安全传输,则证书必须采用 PKCS#12 格式;如果使用任何其他引擎,则必须采用 PEM 格式。
| 归档时间: |
|
| 查看次数: |
17247 次 |
| 最近记录: |