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

Bon j'ai avancé dans mon problème, j'ai pu obtenir les certificats et j'ai bien vérifiés qu'ils étaient présents pour mon site dans /etc/letsencrypt/live/.

Ensuite je pense que là où ça coince c'est dans la config du rutorrent.conf, je m'explique j'ai essayé plein de choses, mais aucune ne me permettaient de redémarrer mon service nginx. J'avais systématiquement le droit a une erreur. Est-ce que qqn aurait la gentillesse de me montrer le sien ? Au moins pour la partie "server" s'il vous plait, car je pense que ma syntaxe ne doit pas être la bonne ?

    Fenrir

    Salut Fenrir,

    Voici:

    server {
        listen 666 default_server;
        listen 443 default_server ssl http2;
        server_name _;
    
        index index.html index.php;
        charset utf-8;
        client_max_body_size 10M;
    
        ssl on;
        ssl_certificate /etc/letsencrypt/live/xxxxxx/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/xxxxxx/privkey.pem;
    
        include /etc/nginx/conf.d/ciphers.conf;
    
        access_log /var/log/nginx/rutorrent-access.log combined;
        error_log /var/log/nginx/rutorrent-error.log error;
    
        error_page 500 502 503 504 /50x.html;
        location = /50x.html { root /usr/share/nginx/html; }
    
        auth_basic "seedbox";
        auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";
    
        location = /favicon.ico {
                access_log off;
                log_not_found off;
        }

      zarev merci, je m'aperçois déjà qu'il y a une ligne supplémentaire par rapport au tuto : "ssl on;" que je n'avais pas mise sur toutes mes tentative. Mais malheureusement, même avec ça j'ai toujours un message d'erreur en voulant redémarrer mon service Nginx. voici l'erreur qu'il me retourne :

      systemctl status nginx.service
      ● nginx.service - LSB: Stop/start nginx
      Loaded: loaded (/etc/init.d/nginx)
      Active: failed (Result: exit-code) since Tue 2017-02-07 10:46:25 CET; 4min 36s ago
      Process: 1997 ExecStop=/etc/init.d/nginx stop (code=exited, status=0/SUCCESS)
      Process: 2595 ExecStart=/etc/init.d/nginx start (code=exited, status=1/FAILURE)
      Feb 07 10:46:25 monhostname nginx[2595]: nginx: [emerg] BIO_new_file("/etc/letsencrypt/live/monnomdedomaine/fullchain.pem") failed (SSL: error:02001002:system l...
      Feb 07 10:46:25 monhostname systemd[1]: nginx.service: control process exited, code=exited status=1
      Feb 07 10:46:25 monhostname systemd[1]: Failed to start LSB: Stop/start nginx.
      Feb 07 10:46:25 monhostname systemd[1]: Unit nginx.service entered failed state.
      Hint: Some lines were ellipsized, use -l to show in full.
      root@monhostname:/tmp# service nginx restart
      Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.

      Est ce que j'ai juste a insérer dans mon fichier nginx.conf la ligne /etc/nginx/ssl/params.conf; entre les balises http comme c'est indiqué ou bien y a t il encore une ligne ou deux a mettre sans que je le sache ?

      J'avoue que je suis perdu maintenant... j'y passe des heures, mais je n'arrive à rien alors que je suis sur que c'est quelque chose de tout bête.

        Fenrir

        Salutations Fenrir,

        Si tu as un doute sur ton fichier (params.conf), tu peux commencer par le supprimer:

        rm /etc/nginx/ssl/params.conf

        Ensuite, le refaire:

          nano /etc/nginx/ssl/params.conf

        Dedans tu colles tout le texte comme demande MAIS tu n'oublies pas de changer la ligne:

        ssl_trusted_certificate /etc/letsencrypt/live/TON_NOM_DE_DOMAINE/fullchain.pem;

        Donc cela donne:

        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        
        ssl_ecdh_curve secp384r1;
        
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA";
        
        ssl_prefer_server_ciphers on;
        
        add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        
        ssl_stapling on;
        ssl_stapling_verify on;
        
        ssl_trusted_certificate /etc/letsencrypt/live/NE_PAS_OUBLIER_TON_NDD!!/fullchain.pem;
        
        resolver 8.8.8.8;

        Après tu fais CTRL+X => YES => ENTER pour valider.

        Un petit (pour détecter les erreurs):

        nginx -t

        Et si tout va bien:

        service nginx restart

          zarev J'ai effectué le nginx -t avant de me lancer dans les procédures que tu m'as indiqué et il m'indique que tu es OK (biensur, j'ai vérifié au préalable que mon nom de domaine était bien renseigné dans le fichier de conf) :

          nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
          nginx: configuration file /etc/nginx/nginx.conf test is successful

          En fait, quand je parlais de ligne a rajouter dans un fichier conf, c'était sur cette partie du tuto :

          On n'oublie pas d'inclure le fichier params.conf entre les balises http {} dans le fichier nginx.conf

          #nano /etc/nginx/nginx.conf
          
          http {
              include /etc/nginx/ssl/params.conf;
          }

          Mon soucis apparait systématiquement quand je fais des modifications sur ses deux fichiers :

          • /etc/nginx/sites-enabled/rutorrent.conf
          • /etc/nginx/nginx.conf

          Merci encore pour ton aide !

            Fenrir

            En effet, tu peux bien mettre la ligne en fin de ficher, avant le } final.

              zarev OK c'est bien ce que j'avais fait... et cela a plusieurs endroits différents du fichier, mais cela n'a pas fonctionné. Franchement là, je cale. J'ai passé tellement de temps là dessus. C'est vraiment la seule chose qui me manque sur ma seedbox, tout le reste s'est très bien déroulé.

                Encore une fois, un grand merci pour ton aide !

                  17 jours plus tard

                  Bonjour a tous ,
                  Un grand merci pour ce tuto, rutorrent, cakebox, seedboxmanager sont bien avec le certificat vert mais mon soucis vient d'autres applications j'utilise aussi transmission btsync et pyload et ces 3 la je n'y ai plus acces depuis aux interfaces web.
                  Il manque surement des configurations à ajouter mais je ne les connais pas ..
                  Si vous avez besoin plus d'info dites le 🙂
                  Voila mes conf :
                  /etc/nginx/sites-enabled/rutorrent.conf

                   server {
                      listen 80 default_server;
                   server_name ndd.fr;
                  rewrite ^ https://ndd.fr$request_uri? permanent;
                  }
                  server {
                      listen 443 default_server ssl;
                      server_name ndd.fr;
                  
                      charset utf-8;
                      index index.html index.php;
                      client_max_body_size 10M;
                  
                      ssl_certificate /etc/letsencrypt/live/ndd.fr/fullchain.pem;
                      ssl_certificate_key /etc/letsencrypt/live/ndd.fr/privkey.pem;
                      ssl_dhparam /etc/nginx/ssl/dhparam.pem;
                  
                      access_log /var/log/nginx/rutorrent-access.log combined;
                      error_log /var/log/nginx/rutorrent-error.log error;
                  
                      error_page 500 502 503 504 /50x.html;
                      location = /50x.html { root /usr/share/nginx/html; }
                  
                      auth_basic "seedbox";
                      auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";
                  
                      location = /favicon.ico {
                          access_log off;
                          log_not_found off;
                      }
                  
                   ## début config seedbox-manager ##
                  
                      location ^~ /seedbox-manager {
                  	alias /var/www/seedbox-manager/public;
                  	include /etc/nginx/conf.d/php-manager.conf;
                  	include /etc/nginx/conf.d/cache.conf;
                      }
                  
                      ## fin config seedbox-manager ##    
                  ## début config rutorrent ##
                  
                  location /USER1 {
                          include scgi_params;
                          scgi_pass 127.0.0.1:5001;
                          auth_basic "seedbox";
                          auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_user1";
                      }
                  
                  location /USER2 {
                          include scgi_params;
                          scgi_pass 127.0.0.1:5002;
                          auth_basic "seedbox";
                          auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_USER2";
                      }
                  
                  location /USER3 {
                          include scgi_params;
                          scgi_pass 127.0.0.1:5003;
                          auth_basic "seedbox";
                          auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_user3";
                      }
                  
                  location /USER4 {
                          include scgi_params;
                          scgi_pass 127.0.0.1:5004;
                          auth_basic "seedbox";
                          auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_user4";
                      }
                  
                  
                      location ^~ /rutorrent {
                  	root /var/www;
                  	include /etc/nginx/conf.d/php.conf;
                  	include /etc/nginx/conf.d/cache.conf;
                  
                  	location ~ /\.svn {
                  		deny all;
                  	}
                  
                  	location ~ /\.ht {
                  		deny all;
                  	}
                      }
                  
                      location ^~ /rutorrent/conf/ {
                  	deny all;
                      }
                  
                      location ^~ /rutorrent/share/ {
                  	deny all;
                      }
                  
                      ## fin config rutorrent ##
                  ## debut config cakebox-light ##
                   
                     location /cakebox/ {
                          rewrite ^/cakebox(/.*)$ $1 break;
                          proxy_pass http://127.0.0.1:81;
                          proxy_set_header Host $host;
                          proxy_set_header X-Real-IP $remote_addr;
                          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                          proxy_redirect off;
                      }
                  
                      location /cakebox/user1/ {
                          alias /home/user1/torrents/;
                          add_header Content-Disposition "attachment";
                          satisfy any;
                          allow all;
                      }
                  
                      location /cakebox/USER2/ {
                          alias /home/USER2/torrents/;
                          add_header Content-Disposition "attachment";
                          satisfy any;
                          allow all;
                      }
                      location /cakebox/user3/ {
                          alias /home/user3/torrents/;
                          add_header Content-Disposition "attachment";
                          satisfy any;
                          allow all;
                      }
                      location /cakebox/user4/ {
                          alias /home/user4/torrents/;
                          add_header Content-Disposition "attachment";
                          satisfy any;
                          allow all;
                      }
                  }

                  /etc/nginx/sites-enabled/cakebox.conf

                  server {
                      listen 81;
                      server_name ndd.fr;
                      ssl_certificate /etc/letsencrypt/live/ndd.fr/fullchain.pem;
                      ssl_certificate_key /etc/letsencrypt/live/ndd.fr/privkey.pem;
                  
                      root /var/www/cakebox/public;
                      index index.php;
                  
                      allow 127.0.0.1; # only the proxy
                      deny all;
                  
                      charset utf-8;
                      include /etc/nginx/conf.d/cache.conf;
                  
                      access_log /var/log/nginx/cakebox-access.log;
                      error_log /var/log/nginx/cakebox-error.log;
                  
                      location = / {
                          try_files @site @site;
                      }
                  
                      location / {
                          try_files $uri $uri/ @site;
                      }
                  
                      location ~ \.php$ {
                          return 404;
                      }
                  
                      location @site {
                          fastcgi_pass unix:/var/run/php5-fpm.sock;
                          include fastcgi_params;
                          fastcgi_param SCRIPT_FILENAME $document_root/index.php;
                          fastcgi_param APPLICATION_ENV production;
                          ## uncomment when running via https
                          ## fastcgi_param HTTPS on;
                      }
                  }

                    ludoz59 Salut,

                    As-tu des services en sous-domaine?

                    En tout cas dans tes conf aucune trace des services non couverts par le certificat.

                    Ou sont-ils renseignés ?

                    Si cela fonctionnait avant que tu installes tes certificats, il doit bien y avoir un fichier reprenant leur config.

                    Salut Zarev
                    Je n'utilise aucun sous domaine.
                    Justement je me demande s'il faut pas rajouter des fichiers conf dans le répertoire /etc/nginx/sites-enabled/ car j'ai seulement des fichiers conf pour rutorrent, cakebox, et seedbox-manager. Il n'y a rien par rapport aux trois autres logiciels que j'utilise (transmission, pyload et btsync) par contre sans passer par le nom de domaine j'arrive a acceder a transmission, pyload et btsync.

                    Bonjour,

                    Merci pour ce tuto !
                    Juste peut-être, lors de la création du fichier params.conf, préciser qu'il faut modifier le path

                    ssl_trusted_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;

                    ça évitera peut-être que certains (comme moi) ne le voient pas du premier coup 🙂 (nginx ne redémarrera pas sinon)

                    edit: par contre j'obtiens un score de: A
                    A cause des protocoles utilisés 😛rotocoles TLSv1_2 (en vert) TLSv1_1 TLSv1. A désactiver ? SI oui, savez-vous comment ?

                    edit 2: la réponse à ma question est donnée en décembre 2015. Merci 🙂 !

                    Merci d'avance !

                    Bonjour a tous pour mon soucis j'ai fais autrement sans passer par mon nom de domaine, sinon depuis que j'ai mis le certificat SSL j'ai une erreur dans rutorrent des que je veux bouger, compresser ou extraire un fichier via le file manager dans rutorrent si jamais vous avez une idée même par PM hésitez pas 🙂 Voila les screens des erreurs
                    Compression
                    https://images.mondedie.fr/x2ICeeHX/bD67spSv.png
                    Extraction
                    https://images.mondedie.fr/rD2j5zAI/P05Tm9VS.png
                    Déplacer
                    https://images.mondedie.fr/MtG3c8KK/MYgYx4vH.png

                    Salut,

                    Je ne vois aucun screen (?).

                    Bizarre quand j'arrive sur la page je les vois directement :S ce sont des liens google drive si tu veux je peux te les envoyés en PM

                    Ok, normal que je les affiche pas alors. Tu peux par exemple les héberger sur MDD (cf lien en haut).

                    Je ne sais pas d'où ça vient mais c'est une erreur de code ça, pas liée à ton SSL. As-tu relancé ruTorrent dans la foulée de Nginx ?
                    Au passage, faudrait changer ton hostname aussi.