伙计,
我在访问www.googleapis.com
我的一台内部服务器时遇到问题。我omniauth-google-oauth2
在该服务器上的 Rails 应用程序上使用。连接问题导致获取用户原始信息 apiwww.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
是我自己在服务器上生成的。然后我将/etc/hosts
我的开发机器上的 更改为指向www.googleapis.com
代理服务器 api。
代理服务器运行良好,但我遇到了验证证书的问题。我的开发机器出现以下异常:
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
,但因为这是一个高度不安全的解决方案。我想问你们,我可以对我的应用程序/prd 服务器/代理服务器做些什么来做到这一点?