web-dev-qa-db-fra.com

Problème de remplacement de l'ancien certificat SSL sur Nginx

Disclaimer: Ceci est mon premier article sur ProWebmasters. Je pensais que ce serait un endroit approprié pour cette question, mais si ce n’est pas le cas, je serai heureux de le supprimer.


Nous utilisons SSL gratuitement pour notre site d'entreprise. Nous avons reçu le certificat original il y a 95 jours et il a expiré il y a 5 jours. Je ne parviens pas à remplacer le certificat expiré.

Le serveur Nginx est reconstruit toutes les 24 heures, à partir de la branche principale de mon référentiel Git Lab. L'instance VM est détruite et remplacée par une nouvelle instance dotée d'un script de démarrage qui assemble et configure Nginx à l'aide du contenu du référentiel Git, y compris des certificats SSL.

Lorsque j'ai mis à jour le certificat et téléchargé le certificat racine et l'ensemble intermédiaire et la clé privée, j'ai simplement remplacé les anciens certificats dans le référentiel et reconstruit les serveurs Web.

Pour une raison quelconque, le site Web utilise toujours les jours de certificat expirés après son remplacement.

Cela m'est très étrange car le serveur Web ne devrait avoir aucune trace de l'ancien certificat, car il est reconstruit à partir d'une image vide Ubuntu, puis extrait le dernier contenu de Git. .

J'ai exécuté openssl x509 -in certificate.crt -text -noout sur les certificats situés dans /var/www/ssl/ et j'ai confirmé qu'il s'agissait bien des nouveaux certificats.

Voici la configuration du serveur 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;
    }
}

Des idées sur ce qui pourrait être la cause? Merci!

(J'ai déjà essayé d'effacer mon cache Chrome SSL)

(SSLLabs montre que le site utilise toujours l'ancien certificat, mais en dehors du certificat expiré, rien d'autre ne va mal avec celui-ci)

2
willbattel

J'ai creusé un peu plus et, comme prévu, le problème ne concernait pas le serveur Nginx ni le VM sur lequel il est hébergé. J'ai négligé de mettre à jour le certificat utilisé par notre équilibreur de charge HTTP. Par conséquent, même si les serveurs utilisaient le nouveau certificat, le transitaire conservait toujours l'ancien certificat à l'origine des avertissements.

1
willbattel