1 votes

Le certificat Let's Encrypt n'est pas reconnu par Nginx

J'ai créé avec succès quelques certificats SSL LE, en utilisant ce guide .

Cependant, lorsque j'ai mis à jour ma configuration nginx pour utiliser les certitudes et rediriger tout le trafic du port 80 vers 443. http redirige avec succès vers https, le site ne se charge pas. Le navigateur détecte que j'ai un cert valide, mais dit que je n'ai pas de connexion sécurisée. Voici ce que j'ai dans mon /var/log/nginx/error.log :

2016/03/08 00:11:49 [error] 7301#0: *14 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 55.555.55.555, server: 0.0.0.0:443

L'erreur indique que je n'ai pas de certificat SSL défini, alors que j'en ai un. Voici ma configuration :

server {
  listen 443 ssl;
  server_name cooldomain.pizza www.cooldomain.pizza
  ssl_certificate /etc/letsencrypt/live/cooldomain.pizza/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/cooldomain.pizza/privkey.pem;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

  root /home/ubuntu/www/cooldomain-pizza;
  index index.php index.html index.htm;

  server_name cooldomain.pizza www.cooldomain.pizza;
  charset utf-8;

  location / {
    try_files $uri $uri/ =404;
    # Uncomment to enable naxsi on this location
    # include /etc/nginx/naxsi.rules
  }

  location ~ \.php$ {
    try_files $uri $uri/ =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

J'utilise Ubuntu 14.04 avec Nginx 1.4.6.

Une idée de ce qui se passe ? J'ai dû annuler la version SSL du site et revenir au port-80 uniquement.

1 votes

Vérifiez les permissions sur les clés, et vérifiez le cert contre votre env CA locale. ie : openssl x509 -in certificate.crt -text -noout

2 votes

Vous devez recharger ou redémarrer nginx après avoir modifié sa configuration. Notez qu'il ne sera pas rechargé ou redémarré s'il y a une erreur de configuration. Exécutez nginx -t pour vérifier les erreurs.

0 votes

Je vote pour clore cette question car les problèmes liés aux didacticiels doivent être adressés à leur auteur.

7voto

Peter Green Points 3844

Il semble qu'il manque un point-virgule à la fin de la directive server_name. Je pense que cela fait que la ligne suivante est interprétée comme faisant partie de la directive server_name plutôt que comme une nouvelle directive.

-1voto

Erik Telepovský Points 101

J'ai eu le même problème. Cela m'a aidé de mettre

default_server

dans la directive d'écoute.

1 votes

Default_server est un fourre-tout qui indique à Nginx d'envoyer toutes les requêtes pour les domaines qui ne sont pas explicitement configurés à ce serveur. Si vous configurez Nginx correctement, cela ne sera pas nécessaire. Si vous faites cela sur un serveur SSL, le navigateur Web peut recevoir un avertissement de non concordance de certificat si le certificat utilisé ne correspond pas au domaine saisi dans le navigateur Web.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X