StartSSL

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Ce tuto a pour but la création de zéro (enfin au minimum un serveur qui tourne et avec les outils OpenSSL) et l'obtention de certificats reconnus par tous les navigateurs pour un serveur web et ce GRATUITEMENT. Cela est possible grâce à l'entreprise StartSSL. Normalement cela ne coute que ~15€/an au mini, et cela s'envole pour atteindre ~1500€/an max pour le "full-option". Tout cela pour un petit fichier <5ko qui affiche un petit cadenas vert dans les navigateurs ...

Coté Serveur

Création de la clée privée

Nous allons tout d'abord créé une clé privé avec sa demande de certificat On utilise le merveilleux outil qu'est openssl, avec un chiffrement par AES (plus costaud que le triple DES) et avec une clée de chiffrage de 192 conseillé, 256 ici.

openssl genrsa -aes256 -out SERVER.key 4096

Il est possible de supprimer la demande de mot de passe par la commande :

openssl rsa -in SERVER.key -out SERVER.key-sans-pass

Création de la demande de certificat

Puis la nous créons la demande de certificat (Certificat Server Request) avec cette nouvelle clée

openssl req -sha256 -new -key SERVEUR.key -out SERVER.csr

Coté StartSSL

Création d'un compte

Aller sur StartSSL et s'enregistrer. Attention, la vérification des données d'inscription est faite par un humain, donc même si vous ne mettez pas vos données personnelles il faut qu'elles paraissent crédibles. ATTENTION donner de fausses information va à l'encontre de la réglementation du site.

Faire un backup du certificat client. De préférence faire un export en "p12", ce qui protégera le certificat par un mot de passe.

Lors de votre prochaine visite il n'y a aucun login/mot de passe à rentrer, votre certificat est suffisant et indispensable.

Validation email et domaine

Ensuite aller dans Control Panel => Validation wizard

  1. email address validation
  2. domaine name validation

Pour ce dernier il fait une requête "whois" et récupère les adresses mail visible en plus des post/host/web master@votre-domaine.tld, ensuite il vous demande de choisir une de ces adresses mail, envoye un mail avec un code pour valider le domaine

Demande de certificat

Ensuite nous passons à la demande de certificat proprement dite : Control Panel => Certificates Wizard => Certificat target = Web Server

On saute la première étape car on a déjà la demande de certificat ("Skip").

On colle dans le cadre prévu a cet effet le contenue de notre fichier *.csr Si on ne l'a pas généré, il faut mettre un mot de passe dans le champ et il vous génèrera la clé privé automatiquement (a conserver précieusement !!! irrécupérable sinon !!!)) Cliquer sur "continue", un écran nous confirme la soumission du CSR. On sélectionne le domaine pour lequel le certificat pourra être utilisé, ensuite on saisi un sous domaine (www, mail, wiki, ...).

Un mail de confirmation vous sera envoyé dès que voter certificat sera disponible, avant il s'affichait tout de suite mais a procédure à été changer dernièrement. La récupération se fait dans la console de gestion "Tool Box => Retrive Certificate".

Avantages

  1. Gratuité
  2. Reconnaissances par tous les navigateurs moderne (FF, Opera, IE, Safari, Android), donc pas de message d'alerte
  3. Validité d'un an (la validité d'un CACert est de 6 mois pour le même niveau de confiance)
  4. Possibilité d'avoir plusieurs certificats pour un même domaine

Limitations

  1. Duré de validité limité à 1 an (renouvelable heureusement)
  2. 1 sous domaine par certificat, pas de "*"(wildcar)
  3. Il faut "attendre" son certificat alors que cela pourrais êter immédiat

Il vous suffit ensuite de d'installer le certificat et votre clée dans votre serveur web.

BONUS

Installation NGinx

Pour les utilisateurs de Nginx il y a une petite manipulation en plus a faire avant que tout fonctionne sans problème. Déjà je vous conseille d'utiliser votre fichier de clée sans mot de passe, sinon ce dernier vous seras demandé a chaque redémarrage du serveur. Donc si ce dernier est installé en tant que service (ce qui est généralement le cas sur Debian) vous devrez redémarer votre serveur manuellement pour rentrer votre mot de passe. Il est nécessaire d'ajouter le certificat intermédiare et celui de l'authorité de certification dans votre certificat lui même. Pour cela téléchargez les fichier sub.class1.server.ca.pem et ca.pem ici http://www.startssl.com/certs/

 cat SERVER.crt sub.class1.server.ca.pem ca.pem > SERVER-Nginx.crt

Attention l'odre à de l'importance !!!

Ensuite dans les fichiers de conf on ajoute les lignes suivantes, attention au port d'écoute !

server {
  listen XXX.XXX.XXX.XXX:443;
  [...]
  ssl on;
  ssl_certificate     /chemin/vers/le/certificats/CERTIFICAT.crt;
  ssl_certificate_key /chemin/vers/le/certificats/SERVEUR.key-sans-pass;
  ssl_session_timeout 240m;
  ssl_protocols SSLv2 SSLv3 TLSv1;
  ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
  ssl_prefer_server_ciphers on;
  [...]
}

Enfin recharger le configuration par

 # service nginx reload

Vérification

Pour valider votre installation vous pouvez le tester avec "http://www.digicert.com/help/", mais de nombreux auters sites vous permettent cette vérivcation.