Linux Varnish/Nginx缓存SSL证书之谜
我使用Nginx作为FastCGI工作人员的反向代理,实现了三个前端Rails服务器的负载平衡。昨天,我们的证书过期了,我从GoDaddy那里得到了一个新的证书,并安装了它。当直接访问静态资源时,我看到更新的证书,但当从“虚拟子域”访问它们时,我看到的是旧的证书。我的nginx配置只引用了我的新链接证书,所以我想知道旧证书是如何显示的。我甚至把它从目录中删除了 例如: (SSL没有证书问题) (旧证书正在使用!)(映射到ww212.doostang.com)Linux Varnish/Nginx缓存SSL证书之谜,linux,ssl,nginx,varnish,Linux,Ssl,Nginx,Varnish,我使用Nginx作为FastCGI工作人员的反向代理,实现了三个前端Rails服务器的负载平衡。昨天,我们的证书过期了,我从GoDaddy那里得到了一个新的证书,并安装了它。当直接访问静态资源时,我看到更新的证书,但当从“虚拟子域”访问它们时,我看到的是旧的证书。我的nginx配置只引用了我的新链接证书,所以我想知道旧证书是如何显示的。我甚至把它从目录中删除了 例如: (SSL没有证书问题) (旧证书正在使用!)(映射到ww212.doostang.com) 我重新加载了nginx,甚至停止并
- 我重新加载了nginx,甚至停止并重新启动了nginx,测试了nginx以确保它从正确的配置读取,并使用新的缓存文件重新启动了varnish
- 当我在asset5.doostang.com上卷曲文件时,我得到一个证书错误: curl:(60)SSL证书问题,请验证CA证书是否正常。细节: 错误:14090086:SSL例程:SSL3\u获取\u服务器\u证书:证书验证失败 详情如下: curl默认情况下使用“bundle”执行SSL证书验证 颁发证书机构(CA)公钥(CA证书)。如果默认 捆绑文件不足,您可以指定一个备用文件 使用--cacert选项。 如果此HTTPS服务器使用由中表示的CA签名的证书 对于捆绑包,证书验证可能由于错误而失败 证书有问题(可能已过期,或者名称可能已过期) 与URL中的域名不匹配)。 如果要关闭curl对证书的验证,请使用 -k(或--unsecure)选项
- 当我添加-k选项时,我得到了请求的文件,并且可以在我的nginx访问日志中看到它。当我不提供-k时,我不会得到nginx错误;nginx对证书错误保持沉默
server {
# port to listen on. Can also be set to an IP:PORT
listen 443;
server_name www.doostang.com, *.doostang.com;
passenger_enabled on;
rails_env production;
ssl on;
ssl_certificate /.../doostang_combined.crt;
ssl_certificate_key /.../doostang.com.key;
ssl_protocols SSLv3;
# doc root
root /.../public/files;
if ($host = 'doostang.com' ) {
rewrite ^/(.*)$ https://www.doostang.com/$1 permanent;
}
}
# Catchall redirect
server {
# port to listen on. Can also be set to an IP:PORT
listen 443;
ssl on;
ssl_certificate /.../doostang_combined.crt;
ssl_certificate_key /.../doostang.com.key;
rewrite ^(.*)$ https://www.doostang.com$1;
}
巴敦青。我的非标准化负载平衡器实际上运行了nginx来终止SSL。我没有注意到这一点,但我认为我做的其他一切都是正确的。要点是,当您在收购时接管运营时,请标准化并记录!那里有一些非常奇怪的工程师:)