Authorize.net gem TLS 1.2 兼容性

Authorize.net gem TLS 1.2 compatibility

我正在使用授权 gem 1.8.2

我想知道它是否兼容 TLS 1.2。

对于authorize.net的TLS升级,是基于你服务器的OpenSSL库版本。要查看您是否兼容,运行 以下命令:

openssl s_client -connect secure.authorize.net:443

如果您收到这样的 one-line 错误消息:

6641:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:586:

那你们不合。要修复,您需要在 Linux 中更新您的 OpenSSL 或从此处获取最新的 OpenSSL - https://www.openssl.org/source/

对于构建,您可能需要像这样配置它:

export CFLAGS=-fPIC
./config shared
make
make install     # this one as root

理论上,更新后,最好从源重建ruby。但是,如果没有,您可以使用一个技巧:

创建一个新文件,我在ruby相同的目录中命名为我的ruby_openssl。该文件应包含以下内容:

#!/bin/sh
export LD_PRELOAD=/lib64/libssl.so.1.0.0:/lib64/libcrypto.so.1.0.0
exec /opt/ruby-1.8.7-p352/bin/ruby $*

LD_PRELOAD 应该转到通过安装 OpenSSL 安装的共享文件,无论您在哪里安装它们。

然后,在您的 Apache 配置中,在您引用 ruby 的任何地方引用您的新 ruby_newopenssl。