• Applications
  • [Discussion] Certificat SSL signé et gratuit avec Let's Encrypt

bonjour a tous

j'ai changé de serveurs et j'ai voulu réinstaller des certificats letsencrypt. J'ai suivi le tuto et l'installation s'est bien passé. mais quand je relance nginx j'ai ça

service nginx start
Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.
systemctl status nginx.service
 nginx.service - LSB: Stop/start nginx
   Loaded: loaded (/etc/init.d/nginx)
   Active: failed (Result: exit-code) since Wed 2017-05-24 10:51:42 CEST; 1min 12s ago
  Process: 22680 ExecStop=/etc/init.d/nginx stop (code=exited, status=0/SUCCESS)
  Process: 22062 ExecReload=/etc/init.d/nginx reload (code=exited, status=0/SUCCESS)
  Process: 7176 ExecStart=/etc/init.d/nginx start (code=exited, status=1/FAILURE)

May 24 10:51:42 sd-74270 nginx[7176]: nginx: [emerg] SSL_CTX_load_verify_locations("/etc/letsencrypt/live/domain.tld/fullchain.pem") failed ...
May 24 10:51:42 sd-74270 systemd[1]: nginx.service: control process exited, code=exited status=1
May 24 10:51:42 sd-74270 systemd[1]: Failed to start LSB: Stop/start nginx.
May 24 10:51:42 sd-74270 systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
nginx -t
nginx: [emerg] SSL_CTX_load_verify_locations("/etc/letsencrypt/live/domain.tld/fullchain.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/domain.tld/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib)
nginx: configuration file /etc/nginx/nginx.conf test failed

Malgré mes recherches sur google, j'ai rien trouvé 😟

@Killerfun

Regarde ce que t'indique le log nginx. C'est clair :

SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/domain.tld/fullchain.pem'

Il ne trouve pas l'emplacement de ce fichier. Vérifie que letsencrypt a bien généré un certificat, au bon endroit, avec la bonne dénomination. Le problème est à corrigé dans ton vhost.

    NOnoS

    a priori, les certificats sont bien générés

    /etc/letsencrypt/live# ls -l
    total 8
    drwxr-xr-x 2 root root 4096 May 24 09:00 domaine.fr
    drwxr-xr-x 2 root root 4096 May 24 09:36 phpmyadmin.domaine.fr
    

    et mon vhost

    server {
            listen 80;
                server_name phpmyadmin.domaine.fr;
            return 301 https://$server_name$request_uri;
    }
    server {
        listen 443 ssl;
        server_name phpmyadmin.domaine.fr;
    
    index index.html index.php;
    charset utf-8;
    client_max_body_size 10M;
     
    ssl_certificate /etc/letsencrypt/live/phpmyadmin.domaine.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/phpmyadmin.domaine.fr/privkey.pem;

    est ce que cela pourrait venir d'un problème de permissions ?

    Je ne pense pas. Le message est plutôt limpide, c'est un problème de chemin d'accès. A moins que des éléments soient manquant dans ton vhost. On sait toujours pas ce qu'il y a dans tes 2 dossiers. Si les certificats sont bien présents dans les dossiers, c'est que tu indiques mal dans ton vhost.

    D'ailleurs, tu as fait un copier/coller mais il manque une parenthèse fermante à la fin de ton vhost. Peut etre ça ??

    non les parentheses sont ok. J'ai juste fait un copier/coller partiel.

    voila qu'il y a dans le dossier

    /etc/letsencrypt/live/phpmyadmin.domaine.fr# ls -l
    total 4
    lrwxrwxrwx 1 root root  50 May 24 09:36 cert.pem -> ../../archive/phpmyadmin.domaine.fr/cert1.pem
    lrwxrwxrwx 1 root root  51 May 24 09:36 chain.pem -> ../../archive/phpmyadmin.domaine.fr/chain1.pem
    lrwxrwxrwx 1 root root  55 May 24 09:36 fullchain.pem -> ../../archive/phpmyadmin.domaine.fr/fullchain1.pem
    lrwxrwxrwx 1 root root  53 May 24 09:36 privkey.pem -> ../../archive/phpmyadmin.domaine.fr/privkey1.pem
    -rw-r--r-- 1 root root 543 May 24 09:36 README

    du coup je ne sais pas pkoi j'ai des liens symboliques vers le dossier archive

    Pour les liens symboliques, j'ai pareil de mon côté. Je pense que c'est quand tu renouvelles/changes le certificat. Le lien est toujours actif sur la version de ton certificat la plus récente. Cela t'évite de changer le lien du certificat dans ton vhost.
    A priori, les fichiers sont au bon endroit. Donc ça doit être les infos que tu as renseignés dans ton vhost.

    pour le vhost de phpmyadmin je ne me suis pas cassé la tete, j'ai copié-collé celui qui est sur le tuto d'installation de mysql + phpmyadmin.
    J'ai remplacé le ndd par mon nom de domaine et les chemins des certificats par ceux générés par nginx.
    Enfin, j'avais préalablement configuré la zone DNS sur online.net

    Aerya
    Merci, j'avais complètement oublié qu'il fallait rajouter les sous domaines sur ovh, et en même temps ,c'est logique ! Merci !

    5 jours plus tard

    j'ai aussi eu l'erreur suivante:
    DNS problem: NXDOMAIN looking up A for mon.domaine.com. Skipping.

    alors que mes entrées DNS sont bien créées et répondent bien.

    J'ai donc relancé une deuxième fois la MAJ via un ./certbot-auto renew
    et c'est passé OK. Petit timeout peut-être 🙂

    6 jours plus tard

    Bonsoir,

    je suis en train de paramètre mon firewall Sophos XG et je souhaiterais intégrer le certificat généré par let's encerypt et pour cela j'ai besoin de la CA passphrase mais je n'ai jamais donnée de mot de passe lors de la génération ....

    Comment faire alors ??? révoquer tout les certificats et les refaire ???

    Merci pour vos lumières.

    23 jours plus tard

    Salut,
    lors de mon renew j'ai eu un bug qui empeche le renew...

    Attempting to renew cert from /etc/letsencrypt/renewal/ndd.tld.conf produced an unexpected error: Problem binding to port 443: Could not bind to IPv4 or IPv6.. Skipping.
    

    une idee?
    parce que quand j'édit ce conf j'ai pas de référence à de l'ip... c'est que des references à mes clef..*.pem

      On dirait que ton nginx/apache tourne toujours.. Faut l'arréter avant de faire tes renew

      Lorsque certbot coince (ou bug), il faut parfois réessayer à plusieurs reprises. Alors j'espère que ceci pourra aider :

      ## Pour vérifier si nginx s'est réellement et correctement arrêter.
      ps -ef | grep nginx
      ## Pour tuer la totalité des processus de nginx.
      kill -9 `pgrep nginx`;
      ## Au final, puisqu'il s'avère que celle-ci refuse de fonctionner (ou alors très mal)...
      /etc/init.d/nginx restart;

      ouaip ba finalement ce matin je recommence et ça fonctionne
      sinon oui je stoppais le service nginx...
      bref la magie informatique...
      merci

      un mois plus tard

      bonjour🙂
      bon ben pour moi le renouvellement coinçait aussi avec

      ./certbot-auto renew

      par contre c'est passé en virant le -auto

      ./certbot renew

      je ne sais ni pourquoi ni comment mais bon ca marche c'est le principal🙂

      16 jours plus tard

      Il serait possible de retirer la partie dans le tuto sur l'ajout de : include /etc/nginx/ssl/params.conf; dans nginx.conf ? Ça cause une erreur et j'ai cherché un moment avant de voir que ça venait de là.

        Nginx refusait de redémarrer. ("Job for nginx.service failed.") J'ai parcouru ce topic et j'ai vu que quelqu'un avait le même problème, cela venait de cette ligne : nclude /etc/nginx/ssl/params.conf; dans nginx.conf, selon certain, elle ne devrait pas s'y trouver et justement, en la retirant, cela corrige le problème.

        Et du coup où sont tes paramètres SSL ?