我有三个前端Rails服务器,Nginx充当FastCGI工作人员的反向代理。昨天,我们的证书过期了,我从GoDaddy获得了一个新的证书,并安装了它。当直接访问静态资源时,我看到更新的证书,但当从“虚拟子域”访问它们时,我看到的是旧证书。我的nginx配置只引用了我的新链接证书,所以我想知道旧证书是如何显示的。我甚至把它从目录中删除了。
示例:https://www212.doostang.com/javascripts/base_packaged.js?1331831461 (SSL没有证书问题) https://asset5.doostang.com/javascripts/base_packaged.js?1331831461 (正在使用旧证书!)(映射到www212.doostang.com)
curl:(60) SSL证书问题,请验证CA证书是否正常。详细信息:错误:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate验证失败详细信息在这里:http://curl.haxx.se/docs/sslcerts.html
curl默认使用证书颁发机构(CA)公钥(CA certs)的“包”来执行SSL证书验证。如果默认的包文件不够,可以使用--cacert选项指定备用文件。如果此HTTPS服务器使用由包中表示的CA签名的证书,证书验证可能由于证书问题而失败(该证书可能过期,或者该名称可能与URL中的域名不匹配)。如果您想关闭curl对证书的验证,请使用-k (或--不安全)选项.
10.99.110.27 --20/Apr/2012:18:02:52-0700 "GET /javascripts/base_packaged.js?1331831461 HTTP/1.0“2005740 "-”curl/7.21.3 (x86_64-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8ozlib/1.2.3.4力比丁/1.18“
我把我认为是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;
}
发布于 2012-04-23 03:18:41
巴顿青。我的非标准化负载均衡器实际上有nginx运行的SSL终端。我没有注意到这一点,但我认为我做的一切都是正确的。重点是,当你接管操作时,获得,标准化和文件!(这里有一些非常奇怪的工程师:)
https://stackoverflow.com/questions/10261974
复制相似问题