ruby-on-rails - 如何在 Nginx 中启用 TLS 1.2?

标签 ruby-on-rails ssl nginx paypal centos

我被 this 困住了终于知道了

"SSLv3 was proven to be insecure with the POODLE vulnerability. You should make sure that your system has the latest version of OpenSSL so that you can use TLSv1.2."

我发现了完全相同的问题 here但找不到工作解决方案。那么如何在我的 cent OS 生产服务器上启用 TLSV1.2? 我正在使用 ruby​​ 2.1.2 和 Rails 3.2.21。

我尝试在我的 nginx 配置文件中添加 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

server {
    listen       80;
        server_name kickmarket.eu www.kickmarket.eu;
        passenger_enabled on;
        root /home/kickmarketeu/current/public;
        rails_env production;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

但它对我不起作用。

 root@186-aven-vps nginx]# openssl s_client -connect xx.xx.xx.xx:80 -ssl3
    CONNECTED(00000003)
    140503487715232:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:339:
    ---
    no peer certificate available
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 5 bytes and written 7 bytes
    ---
    New, (NONE), Cipher is (NONE)
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
    SSL-Session:
        Protocol  : SSLv3
        Cipher    : 0000
        Session-ID:
        Session-ID-ctx:
        Master-Key:
        Key-Arg   : None
        Krb5 Principal: None
        PSK identity: None
        PSK identity hint: None
        Start Time: 1445843616
        Timeout   : 7200 (sec)
        Verify return code: 0 (ok)
    ---

我正在使用以下版本的 nginx 和 openssl 库。

[root@186-aven-vps nginx]# nginx -v
nginx version: nginx/1.8.0
[root@186-aven-vps nginx]#  openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Mon Jun 29 12:45:07 UTC 2015
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  dynamic 

最佳答案

要使用 Ruby 中的 TLSv1.2 调用 PayPal 沙盒,只需确保您拥有 OpenSSLv1.0.1c 或更高版本(看起来像您拥有)并连接到 https API(没有 HTTP 等效项).

您应该只需要担心 Nginx 配置以接收 TLSv1.2 连接。 (您可能无论如何都想这样做。)SSLLabs has a test tool您可以用来验证服务器的配置。

关于ruby-on-rails - 如何在 Nginx 中启用 TLS 1.2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33340332/

相关文章:

codeigniter - 带有 SSL 的 CodeIgniter 中的 basepath 或 apppath 有问题 - 在错误的地方查找?

Java 8 在下载 jar 时不会使用新的 Sectigo 交叉签名证书

node.js - 使用 NGINX 提供静态文件时如何响应 Node.js 的 404?

ssl - Nginx 替换配置中的 PEM 文件

sockets - Nginx 无法访问 CentOS 7 上的 uWSGI unix 套接字

ruby-on-rails - Rails 使用正在运行的构建器编写 xml

ruby-on-rails - Heroku Rails App 立即终止(SIGTERM)

linux - 用于 SSL 的 Arangod.conf

ruby-on-rails - rails、websocket-rails、websocket、redis + websocket-rails 问题

ruby-on-rails - #<Devise::OmniauthCallbacksController:0x007fb5d1741e48> 的未定义局部变量或方法 `flash'