diff --git a/HowtoSSL.md b/HowtoSSL.md
new file mode 100644
index 00000000..dbfd259a
--- /dev/null
+++ b/HowtoSSL.md
@@ -0,0 +1,299 @@
+---
+title: Howto SSL
+categories: security web
+...
+
+SSL (Secure Sockets Layer) est un protocole de sécurisation des échanges réseau.
+Cela se base sur un principe de clé privée et clé publique (certificat) signée par une autorité.
+On parle désormais de SSL/TLS car les normes récentes ont renommé SSL en TLS (Transport Layer Security).
+
+
+
+## Gestion clé privée / certificat
+
+### Générer un .csr
+
+Pour générer une clée privée non chiffrée (private.key) et sa demande de certificat associé (demande.csr) à transmettre à une autorité de certification :
+~~~
+$ openssl req -newkey rsa:2048 -sha256 -nodes -keyout private.key -out demande.csr
+~~~
+
+À des fins "pédagogiques", on peut découper en 2 étapes, à savoir la génération de la clé privée (non chiffrée) et la demande de certificat :
+
+~~~
+$ openssl genrsa -out private.key 2048
+$ openssl req -new -sha256 -key private.key -out demande.csr
+~~~
+
+Pour générer une demande de certificat à partir d'un certificat existant (certificate.crt) :
+
+~~~
+$ openssl x509 -x509toreq -sha256 -in certificate.crt -out demande.csr -signkey private.key
+~~~
+
+### Générer un certificat auto-signé
+
+1. Prérequis : avoir généré une clé et une demande de certificat (voir ci dessus)
+2. Génération du certificat avec expiration dans 1000 jours :
+
+~~~
+$ openssl x509 -req -sha256 -days 1000 -in demande.csr -signkey private.key -out certificat.crt
+~~~
+
+Note : sous Debian, pour regénérer le certificat *snakeoil* (certificat autogénéré à l'installation) :
+
+~~~
+# make-ssl-cert generate-default-snakeoil --force-overwrite
+~~~
+
+### Générer un certificat multi-domaines avec subjectAltName
+
+Un certificat avec **subjectAltName** permet d'ajouter des noms de domaine secondaires (*subjectAltName*) en plus du nom de domaine principal (*Common Name*), ce qui est supporté par 99.9% des navigateurs récents.
+
+Modifier une copie du fichier `/etc/ssl/openssl.cnf` avant de générer le certificat pour :
+
+* Décommenter *req_extensions = v3_req*
+* Dans la *section v3_req* mettre *subjectAltName = DNS:test1.example.com,DNS:test2.example.com,DNS:example.com*
+
+Puis générer la clé privée et le certificat associé (avec expiration dans 1000 jours) :
+
+~~~
+$ openssl req -newkey rsa:2048 -nodes -x509 -sha256 -days 1000 -config openssl.cnf -extensions v3_req -keyout private.key -out certificat.crt
+~~~
+
+Si l'on veut plutôt une demande de certificat (pour transmettre à une autorité de certification) :
+
+~~~
+$ openssl req -newkey rsa:2048 -nodes -sha256 -days 1000 -config openssl.cnf -extensions v3_req -keyout private.key -out demande.csr
+~~~
+
+### "Déprotéger" une clé privée
+
+Si une clé privée a été chiffrée (private.pem), on peut générer une version non chiffrée (private.key) ainsi :
+
+~~~
+$ openssl rsa -in private.pem -out private.key
+$ rm private.pem
+~~~
+
+### Ajouter un mot de passe à une clé privée
+
+~~~
+ $ openssl rsa -in private.pem -des3 -out private.key
+writing RSA key
+Enter PEM pass phrase:
+Verifying - Enter PEM pass phrase:
+~~~
+
+### Changer le mot de passe d'une clé privée
+
+Il suffit de répéter les 2 étapes ci-dessus :
+~~~
+$ openssl rsa -in private.pem -out private.key
+$ openssl rsa -in private.key -des3 -out private-new.pem
+$ rm private.pem private.key
+$ mv private-new.pem private.pem
+~~~
+
+### Convertir un certificat PEM vers d'autres formats
+
+ Voir
+
+Notamment pour PKCS 12 (ou PFX) vers PEM :
+
+~~~
+$ openssl pkcs12 -in private.pfx -out private.pem
+~~~
+
+S'il s'agit de la clé :
+
+~~~
+$ openssl pkcs12 -in private.pfx -nocerts -out private.pem
+~~~
+
+### Utilisation de Let's Encrypt
+
+Voir
+
+## Vérifications
+
+### Voir le contenu d'un certificat
+
+Pour voir le contenu d'un certificat (certificat.crt) :
+
+~~~
+$ openssl x509 -text -in certificat.crt
+~~~
+
+Pour voir le contenu d'un certificat d'un service réseau :
+
+~~~
+$ openssl s_client -connect ssl.example.com:443
+~~~
+
+Pour voir le contenu d'une demande de certificat (demande.csr) :
+
+~~~
+$ openssl req -text -in demande.csr
+~~~
+
+Pour lire le format PFX :
+
+~~~
+$ openssl pkcs12 -info -in
+~~~
+
+### Vérifier la correspondance entre clé privée / certificat / .csr
+
+Pour s'assurer qu'un certificat est bien issu d'un clé privée, ou d'une demande de certificat (.csr), on peut vérifier la correspondance grâce au *modulus* que l'on peut extraire et comparer :
+
+~~~
+$ openssl x509 -noout -modulus -in certificat.crt | openssl md5
+$ openssl rsa -noout -modulus -in private.key | openssl md5
+$ openssl req -noout -modulus -in demande.csr | openssl md5
+~~~
+
+Si toutes les empreintes MD5 sont identiques, on est sûr que c'est issu de la clée privée.
+
+Pour vérifier en une seule commande :
+
+~~~
+$ diff <(openssl rsa -in private.key -modulus | grep Modulus) <(openssl x509 -in certificate.crt -modulus | grep Modulus)
+~~~
+
+### Vérifier qu'un certificat n'est pas révoqué
+
+Il faut d'abord trouver quel serveur OCSP est déclaré :
+
+~~~
+$ openssl x509 -noout -ocsp_uri -in certificate.crt
+http://ocsp.example.com
+~~~
+
+Puis, interroger le serveur OCSP obtenu (ici http://ocsp.example.com) avec la chaine de certification (chainfile.pem) et le certificat (certificat.crt) à vérifier :
+
+~~~
+$ openssl ocsp -issuer chainfile.pem -cert certificat.crt -text -url http://ocsp.example.com -header "HOST" "www.example.com"
+~~~
+
+Dans le cas d'un certificat révoqué on verra les lignes suivantes :
+
+~~~
+Cert Status: revoked
+Revocation Time: Nov 2 09:30:00 2014 GMT
+~~~
+
+### Vérifier la conformité d'un certificat en ligne de commande
+
+*La vérification en ligne de commande nécessite une machine GNU/Linux.*
+
+Pour vérifier un fichier de certificat en ligne de commande :
+
+~~~
+$ openssl verify -CApath /etc/ssl/certs certificat.crt
+~~~
+
+Pour vérifier la conformité d'un certificat d'un service réseau en ligne de commande :
+
+~~~
+$ openssl s_client -CApath /etc/ssl/certs -connect ssl.example.com:443
+~~~
+
+Pour un service réseau en STARTTLS (exemple avec SMTP, valable aussi pour POP3/IMAP/FTP) :
+
+~~~
+$ openssl s_client -CApath /etc/ssl/certs -connect mail.site.com:25 -crlf -starttls smtp
+~~~
+
+Pour un service en HTTPS avec l'option SNI qui permet d'envoyer un nom de domaine au sein du protocole SSL/TLS (supporté par 99.9% des navigateurs récents) :
+
+~~~
+$ openssl s_client -CApath /etc/ssl/certs -servername ssl.example.com -connect 192.0.2.42:443
+~~~
+
+**Le certificat est conforme avec votre base locale de certificats CA si l'on obtient Verify return code: 0 (ok)**
+
+Si le code de retour est différent de 0, le certificat n'est pas conforme pour différentes raisons :
+
+* *Verify return code: 21 (unable to verify the first certificate)* : le certificat distant est signé par un certificat CA qui n'est pas dans votre base locale *ou* utilise un certificat intermédiaire inconnu (Note: il peut y avoir toute une chaîne de certification avec plusieurs certificats intermédiaires)
+
+Un script Bash permet également d'effectuer des vérifications :
+
+### Vérifier la conformité d'un certificat via des services externes
+
+Nous conseillons d'utiliser l'outil complet SSL LABS :
+
+D'autres outils également utiles :
+
+* Pour une vérification simple (conforme ou non):
+
+* Pour une vérification de la châine de certification :
+
+* Pour une vérification avancée :
+
+* Pour une vérification SSL/TLS orientée SMTP :
+
+## Louer un certificat auprès d'une autorité de certificat
+
+État du marche en 2015 :
+
+Pour louer un certificat lié à **UN** nom de domaine :
+
+* 0 EUR/ an : Let's Encrypt
+* 0 EUR/ an : StartSSL Free :
+* 6 EUR/ an : Comodo PositiveSSL :
+* 12 EUR/ an : Gandi SSL standard :
+* 99 EUR/ an : Thawte SSL123 :
+
+* 65 EUR/ an : Comodo PositiveSSL : http://www.namecheap.com/ssl-certificates/comodo/positivessl-wildcard-certificate.aspx
+* 120 EUR/ an : Gandi SSL standard : http://www.gandi.net/ssl/standard
+* 449 eur/ an : Thawte SSL Wildcard : http://www.thawte.fr/ssl/wildcard-ssl-certificates/
+
+Pour louer un certificat multi-domaines :
+
+* Thawte
+
+Pour louer un certificat EV :
+
+* Gandi
+* Thawte
+
+### À propos de StartSSL
+
+Il faut noter que *StartSSL Free* est bien gratuit mais a plusieurs inconvénients :
+
+* suite à des problèmes (TODO: mettre liens) Firefox envisage de supprimer les certificats CA de StartSSL en XXXX (TODO: mettre date et liens de référence)
+* les certificats gratuits mentionnent les informations personnelles de la personne physique qui a créé le compte
+* la gestion du renouvellement est lourde (votre compte expire tous les ans, et vous ne pouvez le renouveler que quelques jours avant...)
+* vous pouvez créer uniquement des certificats liés à la personne physique qui a créé le compte (nom de domaine qui vous appartient personnellement ou appartient à votre société) : si vous créez plusieurs certificats pour le compte d'autres sociétés (vos clients par exemple) StartSSL finira pas rejeter vos demandes et vous devrez créer un compte pour chaque société
+* la révocation d'un certificat est payante (environ 20 EUR)
+* différents problèmes et bugs, voir FAQ
+
+### À propos de Let's Encrypt
+
+ Let's Encrypt est un jeune projet qui a pour but de démocratiser l'usage de SSL/TLS pour le web en fournissant facilement des certificats gratuits.
+ Pour plus de détails voir
+
+## Sécurité et qualité des certificats
+
+Faille
+Apache
+Nginx
+A+ sur SSL LABS
+
+## FAQ
+
+### Erreur "The OCSP server has no status for the certificate" avec nouveau certificat StartSSL
+
+Suite à la mise en place d'un certificat délivré par StartSSL, vous obtenez une erreur du type "An error occurred during a connection to ssl.example.com. The OCSP server has no status for the certificate. (Error code: sec_error_ocsp_unknown_cert) ?
+
+StartSSL semble mettre entre 6 et 12h à propager ses nouveaux certificats sur son serveur OCSP. Il faut donc patienter…
+
+### Bug avec Firefox et l'interface d'administration de StartSSL
+
+Il y a un bug avec l'interface d'administration StartSSL avec Firefox (Firefox embarque un mauvais certificat). Voir le bug report et une solution temporaire :
+
+Il faut supprimer le certificat "StartCom? Certification Authority" de l'autorité StartCom de type "Securité personne" (Software Security Device) dans les préférences de Firefox (Avancée --> Certificat).
+