Vous avez surement déjà utilisé des certificats SSL pour sécuriser vos applications. Et très certainement des certificats auto-signés.

Mais chaque nouvel utilisateur reçoit un message d’avertissement de sécurité et ce n’est pas professionnel.

Cela peut être dangereux. En effet, n’importe qui se plaçant entre le nouvel utilisateur et le serveur peut faire une attaque MITM et générer un certificat auto-signé pour se faire passer pour le serveur distant. Le nouvel utilisateur n’y verra que du feu s’il ne vérifie pas l’emprunte du certificat.

Il faut donc penser à utiliser un certificat signé par une autorité valide (CA). La plupart sont payantes mais il en existe des gratuits.

startssl_1_creation_certificat_personnel_a

Je travaille avec StartSSL, qui permet d’avoir un certificat de niveau 1 gratuitement. Il faut penser à le renouveler tous les ans.

 

 

 

 

Attention qu’après avoir créé le certificat, il faut attendre 48h avant startssl_1_creation_certificat_personnel_bde le mettre en place sur votre serveur Apache.

En effet, le certificat n’est pas directement reconnu par les navigateurs comme firefox, chrome etc. Ces navigateurs utilisent une base de données. Si vous n’attendez pas ce délai, vous risquez d’avoir un message d’erreur jusqu’au moment où votre certificat aura été transmis à tous les serveurs de base de données des navigateurs.

 

 

startssl_1_creation_certificat_personnel_c

 

 

 

 

 

 

 

Après avoir mis VOS informations personnels et pas celle de votre société, vous recevez un mail avec un code de validation du type :

startssl_1_creation_certificat_personnel_d

 

 

 

Il est à recopier pour poursuivre VOTRE identification pour VOTRE certificat personnel. Ce n’est pas encore ici qu’on parle de votre certificat de site.

startssl_1_creation_certificat_personnel_e

 

 

 

 

startssl_1_creation_certificat_personnel_f

 

 

 

 

 

A cette étape, votre certificat personnel qui vous identifie VOUS, sera installé sur votre navigateur. On vous averti bien de le sauvegarder ailleurs!

startssl_1_creation_certificat_personnel_g

 

 

 

 

startssl_1_creation_certificat_personnel_h

 

 

 

 

 

Il faut aller dans les paramètres > options avancées > Certificats > afficher les certificats. Vous sélectionnez votre certificat et vous exporter/sauvegarder.

startssl_1_creation_certificat_personnel_i

 

 

 

 

 

 

 

Sauvegardez le avec une extension .p12

 

Étape 2 – authentifier le domaine

Il faut vérifier que l’on est bien le détenteur du domaine avec une confirmation par mail sur l’adresse par exemple.

startssl_2_valider_autenticite_site_a

 

 

 

 

 

 

startssl_2_valider_autenticite_site_b

 

 

 

 

 

 

startssl_2_valider_autenticite_site_c

 

 

 

 

 

 

Ensuite on pourra créer des certificats pour les sous-domaines, comme par exemple www.test.tld.

startssl_3_creer_cle_privee_site_a

 

 

 

 

 

 

On utilise un mot de passe pour l’exportation de la clé. Le certificat généré demandera un mot de passe pour son utilisation.

startssl_3_creer_cle_privee_site_b

 

 

 

 

 

startssl_3_creer_cle_privee_site_c

 

 

 

 

 

 

Il faudra utiliser openssl pour retirer ce mot de passe pour mettre le certificat dans Apache, sinon vous devrez rentrer le mot de pase à chaque redémarrage d’Apache 😉

openssl rsa -in ssl_passwd.key -out ssl.key

 

Étape 3 – création du certificat du site

Il ne reste qu’à créer le certificat proprement dit, on choisi le sous domaine concerné. Cela peut être www.test.tld et implicitement test.tld.

startssl_4_creation_certificat_site_a

 

 

 

 

 

Le certificat est créé, il n’y a plus qu’à mettre le certificat et la clé privée sur le serveur Apache.

startssl_4_creation_certificat_site_b

 

 

 

 

 

Rappel pour les options à utiliser pour un certificat dans la configuration virtualhost :

SSLEngine on
SSLCertificateFile /chemin/vers/www.example.com.cert
SSLCertificateKeyFile /chemin/vers/www.example.com.key