Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Varnish/Nginx缓存SSL证书之谜_Linux_Ssl_Nginx_Varnish - Fatal编程技术网

Linux Varnish/Nginx缓存SSL证书之谜

Linux Varnish/Nginx缓存SSL证书之谜,linux,ssl,nginx,varnish,Linux,Ssl,Nginx,Varnish,我使用Nginx作为FastCGI工作人员的反向代理,实现了三个前端Rails服务器的负载平衡。昨天,我们的证书过期了,我从GoDaddy那里得到了一个新的证书,并安装了它。当直接访问静态资源时,我看到更新的证书,但当从“虚拟子域”访问它们时,我看到的是旧的证书。我的nginx配置只引用了我的新链接证书,所以我想知道旧证书是如何显示的。我甚至把它从目录中删除了 例如: (SSL没有证书问题) (旧证书正在使用!)(映射到ww212.doostang.com) 我重新加载了nginx,甚至停止并

我使用Nginx作为FastCGI工作人员的反向代理,实现了三个前端Rails服务器的负载平衡。昨天,我们的证书过期了,我从GoDaddy那里得到了一个新的证书,并安装了它。当直接访问静态资源时,我看到更新的证书,但当从“虚拟子域”访问它们时,我看到的是旧的证书。我的nginx配置只引用了我的新链接证书,所以我想知道旧证书是如何显示的。我甚至把它从目录中删除了

例如: (SSL没有证书问题) (旧证书正在使用!)(映射到ww212.doostang.com)

  • 我重新加载了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对证书错误保持沉默

10.99.110.27--[20/Apr/2012:18:02:52-0700]“GET/javascripts/base_packaged.js?1331831461 HTTP/1.0”200 5740“-” “curl/7.21.3(x86_64-pc-linux-gnu)libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/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;
} 

巴敦青。我的非标准化负载平衡器实际上运行了nginx来终止SSL。我没有注意到这一点,但我认为我做的其他一切都是正确的。要点是,当您在收购时接管运营时,请标准化并记录!那里有一些非常奇怪的工程师:)