Table des matières
StartSSL : Premiers pas ...
Je n'avais jamais essayé de faire signer mes clés de chiffrement par une autorité reconnue…
Une “autorité” est dite “reconnue” , lorsque la plupart des navigateurs (“browsers”) la reconnaissent nativement comme une “autorité de confiance” pouvant signer des clés.
Encore un Oligopole
Après quelques recherches, la meilleure autorité me paraît être: StartSSL
Et oui: c'est aussi la moins chère.
A voir aussi: https://wosign.com (sa petite sœur chinoise) |
Mais d'après les professionnels de la profession, le prix n'a aucune importance en la matière, donc autant choisir l'entreprise la moins chère, qui a plutôt bonne réputation, et un peu d'expérience.
Je découvre et note mes découvertes au fur et a mesure…
~~READMORE~~
Ouverture d'un compte
Lors de la procédure d'ouverture du compte, “StartSSL.com
” injecte un certificat dans votre navigateur: ce certificat est votre clé d'accès a votre interface (“Control Panel”).
Comme une andouille, j'ai commencé la procédure sur mon smartphone, et puis plus tard, j'étais bien en peine pour me connecter à mon compte à partir de mon Minitel
Passons.
Il faut saisir un compte e-mail valide, et puis attendre que tout les filtres anti-spam soient franchis avec succès…
Après quelques longues minutes , on reçoit un mail contenant le code secret à faire valider dans le navigateur.
Ceci fait, le fameux certificat est injecté dans votre navigateur et vous pouvez voir une magnifique interface….
Exporter immédiatement ce certificat, et protéger le. C'est important. |
Mes clés
“StartSSL.com
” vous propose de créer des clés pour vous.
Si vous avez déjà des clés, c'est inutile.
Si vous n'en avez pas et que vous êtes habile de vos doigts, autant les créer soi-même…
Créer ses clés
# export MONDOMAINE="thierry-jaouen.fr"
La clé privée, le fameux “.key” :
# openssl genrsa -des3 -out $MONDOMAINE.key 2048
Il faut choisir une “pass-phrase”, qu'on va se faire un plaisir de virer.
# chmod 0600 $MONDOMAINE.key
Virer la “pass-phrase” :
# mv $MONDOMAINE.key $MONDOMAINE.key-passphrase
# openssl rsa -in $MONDOMAINE.key-passphrase -out $MONDOMAINE.key
# chmod 0600 $MONDOMAINE.key
Créer son propre CSR
On a une clé privée, et à partir de ce matériel, on va créer un “certificat de demande de signature”.
( CSR = Certificate Signing Request )
# export MONDOMAINE="thierry-jaouen.fr"
# export MONSUJET="/C=FR/ST=France/L=Paris/O=Eez.fr/OU=www/CN=$MONDOMAINE/emailAddress=ca@eez.fr"
En fait “StartSSL.com ” va ignorer ce sujet, mais c'est toujours intéressant de voir comment on ajoute un sujet |
Le “.csr” :
# openssl req -new -sha256 -key $MONDOMAINE.key -out $MONDOMAINE.csr -batch -subj $MONSUJET
Voir le rendu:
# openssl req -in $MONDOMAINE.csr -noout -text
C'est le contenu de ce “.csr” qu'on faire signer par “StartSSL.com
”.
Signer les clés
C'est gratuit pour faire signer un domaine avec 1 seul sous domaine.
Par exemple, moi c'est :
thierry-jaouen.fr www.thierry-jaouen.fr
Sachant cela, on peut poursuivre en faisant signer le contenu du “.csr
” par “StartSSL.com
”.
En retour, dans la même interface, on peut voir le contenu d'un fichier “.crt
” .
On fait un copier/coller en direction d'un fichier, pour moi c'est:
thierry.jaouen.fr-startssl.crt
On peut examiner son contenu et s'apercevoir qu'effectivement, le “Subject” a été ignoré
# openssl x509 -in thierry-jaouen.fr-startssl.crt -noout -text
Intermédiaire
C'est fini ?
Pas tout à fait.
Après un passage par “ssllabs.com
”, je vois un avertissement qui fait baisser ma note a “B” …
J'ai toujours:
Chain issues Incomplete, Extra certs
Il manque un certificat “intermédiaire” a coller dans son certificat signé…
Selon la classe de certificat, on récupère l'un des 3 fichiers suivant:
- sub.class1.server.ca.pem
- sub.class2.server.ca.pem
- sub.class3.server.ca.pem
Dans mon cas, le certificat “gratos”, c'est la “classe 1”.
Donc:
$ wget https://www.startssl.com/certs/sub.class1.server.ca.pem
Ensuite, on créé un “bundle unified” ainsi.
# cat thierry-jaouen.fr-startssl.crt sub.class1.server.ca.pem > thierry-jaouen.fr-startssl-unified.crt
Sources:
En pratique
Nginx
server { listen 10.4.4.4:80; listen 10.4.4.4:443 ssl; server_name .thierry-jaouen.fr; ssl_certificate /etc/nginx/ssl/thierry-jaouen.fr-startssl-unified.crt; ssl_certificate_key /etc/nginx/ssl/thierry-jaouen.fr.key; # etc... j'ai largement simplifié. location / { proxy_pass http://192.168.1.123:80/; access_log off; } }
Apache
Conclusion
Même si le cadenas reste “grisé” sous Firefox,
j'ai gagné un “A
” chez Qualys SSL Labs
: https://www.ssllabs.com/ssltest/
Voila.