我正在尝试为我的其中一台内部服务器设置一个 SSL 代理,以便https://www.googleapis.com
使用 Squid 进行访问,从而使该服务器上的 Rails 应用程序能够googleapis.com
通过代理进行访问。
我是新手,所以我的方法是使用 Squid 设置 SSL 透明代理。我Squid 3.3
在 Ubuntu 12.04 上构建,生成一对 ssl 密钥和 crt,并按如下方式配置 squid:
http_port 443 transparent cert=/home/larry/ssl/server.csr key=/home/larry/ssl/server.key
其余配置基本都保留默认设置。保存 key/crt 的目录的授权为drwxrwxr-x 2 proxy proxy 4096 Oct 17 15:45 ssl
回到我的开发笔记本电脑上,我输入<proxy-server-ip> www.googleapis.com
我的/etc/hosts
电话,然后转到我的代理服务器。
但是当我在我的 Rails 应用程序中尝试它时,我得到了:
SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol
我也在 cli 中尝试使用 openssl:
openssl s_client -state -nbio -connect www.googleapis.com:443 2>&1 | grep "^SSL"
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:error in SSLv2/v3 read server hello A
SSL_connect:error in SSLv2/v3 read server hello A
我哪里做错了?
答案1
这个文件确实包含您的证书吗?
cert=/home/larry/ssl/server.csr
如果您遵循标准惯例,这就是您发送给 SSL 供应商的 CSR(证书签名请求)。作为回报,SSL 供应商会向您提供您需要在此处使用的证书(通常是 .crt)文件。