我有几个使用Authorize.NET付款的网站。由于他们已升级为仅支持TLS 1.2,因此我的某个网站无法使用。
我更新了集成以使用TLS v1.2,但它不再验证卡了。
我正在使用php curl进行这一特殊更改:
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
其中define的值为:
define('CURL_SSLVERSION_TLSv1_2', 6);
问题是是否还需要一些服务器证书升级来支持对Authorize.NET的调用?
答案 0 :(得分:0)
TLS 1.2应该适用于所有仍然具有实际意义且与旧版TLS一起使用的证书。它可能不适用于只有MD5签名的证书,但这些证书很久就过时了,现在不应该使用多年,即实际上并不相关。 因此,您遇到的问题很可能不是证书。
答案 1 :(得分:0)
分享您的环境信息和错误详细信息有助于找到原因。无论哪种方式,您必须确保您的TLS 1.2正常工作。您可以尝试使用PayPal的TLS test或How's My SSL进行测试。
如果效果不好,请先检查OpenSSL和cURL版本。自OpenSSL 1.0.1和cURL 7.34起支持TLS 1.2。您可以通过运行命令openssl_version
和php --ri curl
找到您的OpenSSL版本以查找您的cURL版本。请注意,PHP的cURL使用它自己的OpenSSL库,因此您可能拥有与系统上安装的OpenSSL不同的版本。
如果您的版本已过时,则可以通过为{1}}运行OpenSSL并使用yum update openssl
运行cURL来进行更新。请记住在更新后重新启动Web服务器
您可能还需要更新CA certificates to the latest (extracted from Mozilla)。只需下载它,将其放置在某处或替换当前的yum update curl libcurl
,将证书路径添加到cacert.perm
中的openssl.cafile
和curl.cainfo
,然后重试。