php - 如果 CURLOPT_SSLCERT 设置为同时包含证书和私钥的文件,我是否应该设置 CURLOPT_SSLKEY?

标签 php ssl curl certificate ssl-certificate

服务器给了我一个我应该使用的客户端证书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/

相关文章:

php - 将 whois 返回的字符串转换为对象或数组

php - 在 JavaScript 中设置 phps $_REQUEST ['variable_name' ]

php - 调用 PHP 函数 ftp_login 时获取 "Authentication via SSL not supported."

python - 使用 pyOpenSSL 处理 SNI - Python

javascript - 如何清理 JavaScript 中使用的参数?

php - 对 JSON、PHP、AS3 不知所措 : Cannot trace correct value

ssl - VPN 与 SSL - 如何保护我的传输

linux - 如何正确地将文件的一行读入数组?

PHP CURL Open Ai 从发布数据中删除引号

php - 重用来自 cURL 多处理程序的句柄