如何验证我的SSL转发代理的证书

时间:2013-10-18 07:12:29

标签: ssl proxy ssl-certificate omniauth

盖,

我在我的一个内部服务器上访问www.googleapis.com时遇到问题。我在该服务器上的Rails应用程序上使用omniauth-google-oauth2。连接问题使得用户原始信息api的抓取失败到www.googleapis.com

因此,我设置了一个nginx代理服务器,以将SSL请求代理到www.googleapis.com

我的nginx服务器配置如下:

    server {
        listen       443;
        ssl          on;
        server_name  rome.jianshu.io;

        ssl_certificate      ssl/server.crt;
        ssl_certificate_key  ssl/server.key;
        ssl_protocols SSLv2 SSLv3 TLSv1;

        location / {
            resolver 8.8.8.8;
            proxy_pass       https://www.googleapis.com$request_uri;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_buffering  off;
            proxy_http_version 1.1;
            proxy_read_timeout 120s;
            proxy_send_timeout 120s;
        }
    ...
}

server.crt& server.key由我自己在服务器上生成。然后我将我的Dev机器上的/etc/hosts更改为指向代理服务器api的www.googleapis.com

代理服务器运行良好,但我遇到了验证认证的问题。我的开发人员遇到以下异常:

Faraday::Error::ConnectionFailed at /users/auth/google_oauth2/callback SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我知道我可以绕过它:OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE,但因为这是一个非常不安全的解决方案。我想问你们,我能对我的app / prd服务器/代理服务器做些什么才能做到这一点?

0 个答案:

没有答案