web-dev-qa-db-ja.com

Nginxの古いSSL証明書の置き換えに関する問題

免責事項:これは私の最初のProWebmastersの投稿です。これはこの質問にふさわしい場所だと思いましたが、そうでない場合は削除できてうれしいです。


私たちのビジネスサイトではSSL For Freeを使用しています。 95日前に元の証明書を取得し、5日前に期限が切れました。期限切れの証明書を置き換えることができません。

Nginxサーバーは24時間ごとに再構築され、Git Labリポジトリのmasterブランチからプルされます。 VMインスタンスは破棄され、SSL証明書を含むGitリポジトリのコンテンツを使用してNginxをアセンブルおよび構成するスタートアップスクリプトを含む新しいインスタンスに置き換えられます。

証明書を更新し、ルート証明書と中間バンドルおよび秘密鍵をダウンロードしたとき、リポジトリ内の古い証明書を単に置き換え、Webサーバーを再構築しました。

何らかの理由で、ウェブサイトは、交換後も期限切れの証明書を使用します。

Webサーバーshould n'tは空白のUbuntuイメージから再構築され、Gitから最新のコンテンツをプルするため、古い証明書の痕跡があるため、これは非常に奇妙です。

openssl x509 -in certificate.crt -text -nooutにある証明書に対して/var/www/ssl/を実行し、それらが新しい証明書であることを確認しました。

これはNginxサーバーの設定です:

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    server_name foobar.com www.foobar.com;

    ssl_certificate /var/www/ssl/chained.crt;
    ssl_certificate_key /var/www/ssl/private.key;

    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-EC$

    ssl_prefer_server_ciphers on;

    ssl_dhparam /var/www/ssl/dhparams.pem;

    root /var/www/html;

    location / {
        if ($http_x_forwarded_proto = "http") {
            return 301 https://$Host$request_uri;
        }
        if ($request_uri ~ ^/(.*)\.html$) {
            return 301 /$1;
        }
        try_files $uri $uri.html $uri/ /404;
    }
}

これを引き起こしている可能性のあるアイデアはありますか?ありがとう!

(既にChrome SSLキャッシュをクリアしようとしました)

(SSLLabsは、サイトがまだ古い証明書を使用していることを示していますが、証明書の有効期限が切れていること以外は何も問題はありません)

2
willbattel

さらに掘り下げたところ、予想どおり、NginxサーバーまたはホストされているVMに問題はありませんでした。 HTTP Load Balancerが使用する証明書を更新するのを怠ったため、サーバーが新しい証明書を使用していても、フォワーダーには警告が発生した古い証明書が残っていました。

1
willbattel