FastCGIワーカーのリバースプロキシとして機能するNginxを使用して、3つのフロントエンドRailsサーバーにVarnish負荷分散を行っています。昨日、証明書の有効期限が切れたため、GoDaddy から新しい証明書を取得してインストールしました。静的リソースに直接アクセスすると、更新された証明書が表示されますが、「仮想サブドメイン」からそれらにアクセスすると、古い証明書が表示されます。私のnginx構成は、チェーンされた新しい証明書のみを引用しているため、古い証明書がどのように表示されているのか疑問に思っています。ディレクトリからも削除しました。
例: https://www212.doostang.com/javascripts/base_packaged.js?1331831461 (SSL では証明書の問題はありません) https://asset5.doostang.com/javascripts/base_packaged.js?1331831461 (古い証明書が使用されています) !) (www212.doostang.com にマップ)
- nginxをリロードし、停止して再起動し、nginxをテストして正しい構成から読み取っていることを確認し、新しいキャッシュファイルでワニスを再起動しました。
asset5.doostang.com でファイルを curl すると、証明書エラーが発生します。
curl: (60) SSL 証明書に問題があります。CA 証明書に問題がないことを確認してください。詳細: エラー:14090086:SSL ルーチン:SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。詳細はこちら: http://curl.haxx.se/docs/sslcerts.html
curl は、認証局 (CA) の公開鍵 (CA 証明書) の「バンドル」を使用して、デフォルトで SSL 証明書の検証を実行します。デフォルトのバンドル ファイルが適切でない場合は、 --cacert オプションを使用して別のファイルを指定できます。この HTTPS サーバーがバンドル内の CA によって署名された証明書を使用している場合、証明書の問題が原因で証明書の検証が失敗した可能性があります (証明書の有効期限が切れているか、名前が URL のドメイン名と一致しない可能性があります)。curl による証明書の検証をオフにする場合は、-k (または --insecure) オプションを使用します。
-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 "-" "カール/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;
}