关于php:php-curl请求时设置客户端证书及私钥

因为之前没有接触到https双向认证,所以有点生疏。
因为ssl证书和私钥都是对接方提供的,我的了解如下:
ssl证书携带了客户端的公钥,
对方服务器应用客户端的私钥验证,再用服务端的公钥加密返回
客户端再用设置的私钥解密造成通道,单方在通道中发收数据。
之前看他人文章时,残缺流程还波及了对称加密,这里先记下这次遇到的问题吧,如果有谬误,欢送斧正。
php的curl代码如下:~~~~

$sslcert = ‘ssl证书.pem’;

    $sslkey = 'ssl证书私钥指定文件';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, '地址');
    curl_setopt($ch, CURLOPT_PORT, 443);
    curl_setopt($ch, CURLOPT_HEADER, ['Content-Type: application/xml']);
    // 客户端ssl证书
    curl_setopt($ch, CURLOPT_SSLCERT, $sslcert);
    curl_setopt($ch, CURLOPT_SSLCERTPASSWD, '明码');
    curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
    // 私钥
    curl_setopt($ch, CURLOPT_SSLKEY, $sslkey);
    curl_setopt($ch, CURLOPT_SSLKEYPASSWD, '明码');
    curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, '发送的数据');
    //验证对方的证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
    //以字符串模式输入
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理