Skip to content

Certificates mismatch on NGINX redeploy

Scenariusz

  1. Mam NGNIXa z Certbotem, skonfigurowane przy użyciu naszych ról.

  2. Robię redeploy na istniejącym środowisku, nic nie zmieniam w konfiguracji certyfikatów.

  3. NGINX rzucił mi taki błąd:

    Dec 01 10:33:58 metrics02.stg.metrics.apl.task.gda.pl docker[1952556]: 2022/12/01 10:33:58 [emerg] 914640#914640: SSL_CTX_use_PrivateKey("/etc/nginx/certs/stg.metrics.apl.task.gda.pl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
    Dec 01 10:33:58 metrics02.stg.metrics.apl.task.gda.pl docker[1952556]: nginx: [emerg] SSL_CTX_use_PrivateKey("/etc/nginx/certs/stg.metrics.apl.task.gda.pl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
    Dec 01 10:33:58 metrics02.stg.metrics.apl.task.gda.pl systemd[1]: nginx.service: Main process exited, code=exited, status=1/FAILURE
  4. Usuwam certyfikat ręcznie:

    sudo rm -rf /etc/nginx_certbot/certificates/stg.metrics.apl.task.gda.pl
  5. Odpalam playbook jeszcze raz.

  6. Wszystko znów jest dobrze.

Obserwacje

  1. Zdarzyło mi się to pierwszy raz, zwykle działa dobrze.

  2. Odpalenie playbooka n razy nie pomaga w niczym, trzeba ręcznie usunąć certyfikat.

  3. Występują jakieś wyścigi między uprawnieniami do katalogu ustawionymi przez playbook a tymi ustawianymi przy synchronizacji plików:

    Playbook robi tak:

    drwx------ 9 root root 108 Dec  1 00:37 .
    drwx------ 3 root root  41 Nov 10 08:11 ..
    drwx------ 3 root root  42 Nov 10 08:12 accounts
    drwx------ 3 root root  41 Nov 10 08:13 archive
    drwx------ 2 root root  62 Dec  1 00:37 csr
    drwx------ 2 root root  62 Dec  1 00:37 keys
    drwx------ 3 root root  55 Nov 10 08:13 live
    drwx------ 2 root root  46 Dec  1 00:37 renewal
    drwx------ 5 root root  43 Nov 10 08:12 renewal-hooks

    A po zaciągnięciu plików przez certbota jest tak:

    drwx------ 8 root root 87 Dec  1 10:50 .
    drwx------ 3 root root 41 Dec  1 10:50 ..
    drwxr-xr-x 3 root root 42 Dec  1 10:50 accounts
    drwxr-xr-x 3 root root 41 Dec  1 10:50 archive
    drwxr-xr-x 2 root root 62 Dec  1 10:50 csr
    drwxr-xr-x 2 root root 62 Dec  1 10:50 keys
    drwxr-xr-x 3 root root 55 Dec  1 10:50 live
    drwxr-xr-x 2 root root 46 Dec  1 10:50 renewal

    To raczej nie jest przyczyna problemu, ale tak czy inaczej dziwne.