Forum Linux.débutant Servir des pages en HTTPS avec un certificat auto-signé

Posté par (page perso) . Licence CC by-sa
Tags : aucun
1
7
avr.
2013

Bonjour,

Déjà je ne savais dans quelle section poster donc je m’excuse si ça n’est pas la bonne.

Ça fait un moment que j’ai un serveur web Nginx qui sert des pages web depuis mon serveur auto-hébergé qui tourne sous Arch Linux. Malheureusement, je n’ai jamais réussi à servir des pages en HTTPS sans avoir de problèmes (et là ça commence à me décourager sérieusement).

J’ai un peu essayé tous les tutoriels du web, en français, en anglais, sur le site de Nginx, sur celui d’http://www.auto-hebergement.fr/, ceux de divers sites web et/ou blog perdus sur la toile… Sans succès.

J’aimerais donc avoir votre aide pour:
– générer un certificat auto-signé, peut-être deux parce que j’ai des sous-domaines et j’ai des informations qui se contredisent à ce sujet
– configurer Nginx éventuellement (je commence à commenter que ça viens peut-être de là, vu que quelque soit la façon dont je génère les certificats ça merde)

Merci d’avance.

  • # c'est pas sorcier...

    Posté par . Évalué à 4.

    • générer le certificat (et la clé associée)

      openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem

      Il faut simplement indiquer le nom du site pour le champ CommonName (CN). Assure-toi que la clé ne soit lisible que par root.

    • configurer nginx

      listen 443;
      ssl on;
      ssl_certificate chemin/vers/certificat.pem;
      ssl_certificate_key /chemin/vers/clé.key;

    Note que si tu as plusieurs vhosts en SSL, ça pourra poser problème avec des vieux brouteurs : http://en.wikipedia.org/wiki/Server_Name_Indication#Browsers_with_support_for_TLS_server_name_indication.5B6.5D

    Normalement, c'est pas plus dûr que ça. Si ça ne fonctionne pas chez toi, il faudrait que tu sois plus précis sur les problèmes rencontrés.

    • [^] # Re: c'est pas sorcier...

      Posté par (page perso) . Évalué à 1.

      Merci ça marche enfin!!! J’ai juste une toute petite question: j’ai mis ça dans un de mes fichiers de configuration de Nginx:

      server {
      server_name http://hack-libre.org;
      rewrite ^ https://hack-libre.org$request_uri? permanent;
      }

      Le truc c’est que quand j’essaie de charger http://blog.hack-libre.org, ça me redirige vers https://hack-libre.org, ce qui n’est pas du tout ce que je veux…

      Écrit en Bépo selon l’orthographe de 1990

      • [^] # Re: c'est pas sorcier...

        Posté par (page perso) . Évalué à 2.

        Enlever le https dans le rewrite ?

        Système - Réseau - Sécurité Open Source

        • [^] # Re: c'est pas sorcier...

          Posté par (page perso) . Évalué à 1.

          Mais si je veux tout rediriger vers la version https?

          Écrit en Bépo selon l’orthographe de 1990

          • [^] # Re: c'est pas sorcier...

            Posté par (page perso) . Évalué à 4.

            server {
            server_name http://hack-libre.org;
            rewrite ^ https://$server_name$request_uri? permanent;
            }

            D'ailleurs, je serais toi, je ferais :
            server {
            server_name hack-libre.org;
            rewrite ^ https://$server_name$request_uri? permanent;
            }

            Je viens d'écrire un petit aide-mémoire nginx, si ça peut aider :
            http://e-loquens.fr/post/Aide-m%C3%A9moire-Nginx

            Prochainement, je vous proposerai peut-être un commentaire constructif.

            • [^] # Re: c'est pas sorcier...

              Posté par (page perso) . Évalué à 2.

              Si en fait ça marche, c’est juste cette saleté de Firefox qui fait encore des siennes… Je ne sais pas comment il se démerde mais on dirait que la moindre page que l’on visite enregistre des tas de choses en cache et dès que l’on change quelque chose ça ne fonctionne pas bien…

              Écrit en Bépo selon l’orthographe de 1990

              • [^] # Re: c'est pas sorcier...

                Posté par (page perso) . Évalué à 2. Dernière modification le 12/04/13 à 23:52.

                Ça marchait bien avec Rekonq mais pas avec Firefox, en mettant:

                return 301 https://$server_name$request_uri;

                à la place du rewrite ça fonctionne très bien! Tu peux admirer mon site en https maintenant! ^ ^

                Écrit en Bépo selon l’orthographe de 1990

            • [^] # Re: c'est pas sorcier...

              Posté par (page perso) . Évalué à 2.

              Bon j’ai encore un problème (décidément…) J’ai mis ça dans mon un sous-fichier de configuration de Nginx:

              server {
                  listen              443 ssl;
                  ssl on;
                  ssl_certificate     /srv/certs/*.hack-libre.org.pem;
                  ssl_certificate_key /srv/certs/*.hack-libre.org.key;
                  ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
                  ssl_ciphers         HIGH:!aNULL:!MD5;
              
                  server_name blog.hack-libre.org;
              
                  root /var/www/blog;
                  index index.htm index.php;
              
                  include common;
              
                  if (!-e $request_filename) {
                      rewrite ^/([^feed\/].*)$ /index.php?$1 last;
                  }
              
                  location /version       { deny all; }
                  location /config.php    { deny all; }
                  location /data          { deny all; }
              
                  rewrite ^/feed\/(.*)$ /feed.php?$1 last;
              }
              
              server {
                  listen 80;
                  server_name blog.hack-libre.org;
                  return 301 https://blog.hack-libre.org$request_uri;
              }
              
              

              Le problème, c’est que mon flux RSS n’est pas chiffré? Je pense que ça vient de la réécriture d’URL (rewrite ^/feed\/(.*)$ /feed.php?$1 last;), en tout cas je ne sais pas du tout comment résoudre mon problème… :(

              Écrit en Bépo selon l’orthographe de 1990

              • [^] # Re: c'est pas sorcier...

                Posté par (page perso) . Évalué à 2.

                Le problème, c’est que mon flux RSS n’est pas chiffré? Je pense que ça vient de la réécriture d’URL (rewrite /feed\/(.*)$ /feed.php?$1 last;), en tout cas je ne sais pas du tout comment résoudre mon problème… :(

                Déjà, une réponse façon URSS ("Dites moi ce dont vous avez besoin, je vous dirais comment vous en passer") car je manque de temps pour ("Dites moi ce dont vous avez besoin, je vous dirais comment vous en passer") : je ne conseille pas de chiffrer les flux RSS car tous les lecteurs de flux ne gèrent pas ça.

                Cela dit, en regardant ton site, je vois que ça a l'air de fonctionner, les flux rss sont bien chiffrés.

                Prochainement, je vous proposerai peut-être un commentaire constructif.

                • [^] # Re: c'est pas sorcier...

                  Posté par (page perso) . Évalué à 1.

                  Alors c'est encore Firefox qui déconne… Oui effectivement il apparait chiffré dans Rekonq.

                  Après, je ne vois pas tellement l'intérêt de chiffrer le blog mais pas le flux. Et je ne sais pas trop comment chiffrer tout le blog sauf les flux.

                  Écrit en Bépo selon l’orthographe de 1990

                  • [^] # Re: c'est pas sorcier...

                    Posté par (page perso) . Évalué à 2.

                    Après, je ne vois pas tellement l'intérêt de chiffrer le blog mais pas le flux.

                    Pas faux. C'est par soucis de compatibilité avec certains lecteurs de flux.

                    Et je ne sais pas trop comment chiffrer tout le blog sauf les flux.

                    Faudrait que je regarde, car ton flux rss est lui même une règle rewrite…

                    Prochainement, je vous proposerai peut-être un commentaire constructif.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.