服务器给了我一个我应该使用的客户端证书customer.pem
。如果我在文本编辑器中打开它,它包含客户端证书和客户端 key :
-----BEGIN RSA PRIVATE KEY-----
here is private key
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
here is certificate
-----END CERTIFICATE-----
但是according to PHP curl doc有两个单独的选项用于设置客户端证书和私有(private)客户端 key :
CURLOPT_SSLCERT The name of a file containing a PEM formatted certificate;
CURLOPT_SSLKEY The name of a file containing a private SSL key;
拥有包含证书和私钥的 customer.pem
文件 - 我可以仅设置 CURLOPT_SSLCERT
选项吗? CURL 会自动读取客户端 key 并正确使用它吗?就像下面这样:
$curl_opt = array(
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_SSL_VERIFYPEER => 1,
CURLOPT_SSLCERT => $cert_dir . 'customer.pem',
CURLOPT_CAINFO => $cert_dir . 'ca.crt',
CURLOPT_SSLCERTPASSWD => $extra_settings['certificate_password'],
);
最佳答案
如果CURLOPT_SSLCERT
指出包含证书和 key 的PEM文件,那么您根本不需要使用/设置CURLOPT_SSLKEY
。
关于php - 如果 CURLOPT_SSLCERT 设置为同时包含证书和私钥的文件,我是否应该设置 CURLOPT_SSLKEY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50416563/