我正在尝试连接到需要 SSL 证书固定的 Web 服务。以前的实现是用 Java 完成的,现在我必须将它转换为 PHP。
我将 JKS 转换为 pem 文件并使用它,如下所示。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSLKEY, "F:\www\key.pem");
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
/// END - CERTIFICATION ///
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_user_registration);
//curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
if ($result == false) {
echo "Satrt:";
echo curl_error($ch);
echo $result;
echo ":End";
}
else{
echo "No Error";
}
但我得到了错误。
error:14082174:SSL routines:ssl3_check_cert_and_algorithm:dh key too small
有没有人遇到过这个问题。是我做错了什么还是 Web 服务有问题。