Un certificat est nécessaire pour configurer Apache en SSL, càd pour pouvoir faire du https.
N’ayant pas les moyens (ni le désir) de payer dans les 400 € par an à une société tels que Thawte ou VeriSign pour sécuriser l’accès à mes sites web (webmail par exemple), j’ai choisi de demander mon certificat à CAcert.

Avant de demander un certificat chez CAcert, il faut savoir que CAcert est encore assez récent, et de ce fait, n’est pas encore reconnu officiellement comme “autorité de certification”. C’est à dire que vos navigateur Ms IE et Firefox n’ont pas en standard la clé racine de CAcert.
Quand vous accédez à un site certifié par CAcert, vous avez donc un message signalant le problème…
Voir à ce sujet mon billet précédent.
Donc, le certificat racine définissant CAcert comme autorité reconnue de certification n’étant pas inclus en standard dans les navigateurs actuels, il faut l’ajouter manuellement.
Allez sur la page contenant les certificats racines de CAcert.
J’ai cliqué sur le certificat de classe 3 au format PEM.
CORRECTION 27 déc. 2007 : Il ne faut pas choisir le certificat de classe 3, mais le “Class 1 PKI key Root Certificat (format PEM)“
Automatiquement, Firefox reconnaît que c’est un certificat racine et me donne le message :

Si je visualise le certificat :

Effectivement, CAcert n’est pas une autorité reconnue par mon navigateur Firefox.
Je sélectionne les 3 choix, donc je reconnais que CAcert est une autorité de certification compétante pour ces 3 choix.
S’enregistrer chez CAcert.org :
On ne peut pas dire que ce soit compliqué.
Il suffit de remplir le formulaire se trouvant sur la page “S’inscrire”.
Une adresse email valide (et un mot de passe “sérieux”) est nécessaire pour que vous receviez le mail de confirmation.
Dans l’interface de gestion, vous pouvez si nécessaire ajouter d’autres adresses mail.
Vous pouvez également définir votre langue par défaut, et votre localisation géographique.
La suite est moins évidente…
Pour demander un certificat à CAcert.org pour votre site, il faut générer sur votre serveur une demande de certificat, un CSR.
Cette demande de certificat contiendra des informations au sujet de votre site web, et surtout la clé publique de votre site.
Donc, commençons par générer vos clés publique (qui sera envoyée à CAcert) et privée (qui ne doit JAMAIS être divulgée).
En Linux, OpenSSL est habituellement le moyen utilisé pour générer ces clés.
Ah… et bien, je n’ai pas encore installé OpenSSL sur ce serveur
$ sudo aptitude install openssl
Générons les 2 clés :
Remarque : Pour la définition des domaines sur le site de CAcert, il est conseillé de définir d’abord le domaine sans sous domaine, càd d’abord “mondomaine.be” et pas “www.mondomaine.be” !
Prenez note : Vous avez seulement besoin de saisir la partie principale de votre domaine, par exemple mondomaine.com plutôt que www.mondomaine.com ou www.ceci.est.mon.domaine.com comme le système vérifie le nom de domaine de droite à gauche, c’est préférable à la création de noms de sous-domaines quand vous chargez un CSR dans le système.
Pour garder un champ vide, tapez un “.” .
# openssl req -nodes -new -days 1100 -keyout mondomaine.be.key -out mondomaine.be.csr
Generating a 1024 bit RSA private key .............++++++ ......................++++++
writing new private key to 'mondomaine.be.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. -----
Country Name (2 letter code) [AU]:BE State or Province Name (full name) [Some-State]:Brabant Wallon Locality Name (eg, city) []:Braine-l'Alleud Organization Name (eg, company) [Internet Widgits Pty Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, YOUR name) []:mondomaine.be Email Address []:didier.misson@mail.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:monmotdepasse An optional company name []:.
N’oublie pas le “challenge password” !
Attention au paramètre “Common Name“, Your Name, c’est le nom réel de votre SITE web (pas votre nom de famille…)
Le paramètre “-day 1100” permet de définir la durée de validité des clés (ici un peu plus de 3 ans). Par défaut il est de 365 jours.
Je ne suis pas sûr qu’il soit utile ici.
De toute façon, la durée de validité des certificats générés par CAcert est de 6 mois, sauf si on est “parrainé”, alors elle est de 2 ans (je verrai ce point plus tard).
2 fichiers ont été générés :
- mondomaine.be.csr : votre demande de certificat pour CAcert
- mondomaine.be.key : votre clé privé que vous gardez bien précieusement dans un dossier où seulement ROOT à accès
Le CSR, demande de certificat, ressemble à ceci :
# less mondomaine.be.csr
-----BEGIN CERTIFICATE REQUEST----- MIIBgzCB7QIBADBEMQswCQYDVQQGEwJCRTEQMA4GA1UECBMHQnJhYmFudDEPMA0G A1UEAxMGRGlkaWVyMRIwEAYJKoZIhvcNAQkBFgNpY2kwgZ8wDQYJKoZIhvcNAQEB BQADgY0AMIGJAoGBAMg9tFq8/pLt0JJxqP+8ICv7ZhGm4Dn27/T8ft4a/UCMSLjn pTFgR0sZwEYlqjS9mThc5ske3yZVWt+7ZDSQsrOKJlZqj3zNTQsezx7SLg+9J3cu xP/iGyietgqrS1BBubz7QkDchFEBDQ56o9BBdc2Bl97rGDbJVy0ZZ7eic0ejAgMB AAGgADANBgkqhkiG9w0BAQUFAAOBgQCxDmgWLkv+2FHA83oO/vtKBm8qvzg3rvlw GivxM5WP7xMuxkR/cw4KAAgH0cvuybR+7u64rL2FMCF6pAyi4PBbivJzRZAcwa/x ax8y5f+rxjZ4upoKa2W5SHRMzEVPevTKw4qJvVAkFFcMF+u+9oUkXHF9wCLAUMuY n5+o5bGp1A== -----END CERTIFICATE REQUEST-----
Revenons au site CAcert.org :
Choisissez dans le menu “Domaine / Add“.
Introduisez votre nom de domaine “mondomaine.be” et cliquer sur “add”.
CAcert vous propose une liste d’adresses mail de confirmation.
Je sélectionne “webmaster@mondomaine.be”.
Évidemment ce mail doit être configuré pour que vous puissiez recevoir le mail envoyé par CAcert.
CAcert m’affiche le message suivant :
The domain ‘mondomaine.be’ has been added to the system, however before any certificates for this can be issued you need to open the link in a browser that has been sent to your email address.
J’ai bien reçu un mail sur l’adresse correspondante. Je suis le lien :

Je click sur “Yes verify this domain”.
Updated Your domain has been verified. You can now start issuing certificates for this domain.
Le domaine est donc vérifié, c’est à dire que CAcert est certain que celui qui va faire la demande de certificat (moi) est bien quelqu’un ayant un pouvoir réel sur ce domaine : soit je suis le propriétaire de ce nom de domaine, soit celui-ci m’a donné autorité (contact technique) ou accès à une des adresses mails. En effet, j’ai accès au mail d’une des adresses reconnues de ce domaine (webmaster@mondomaine.be).
Générer un certificat
Aller dans le menu de CAcert dans “Certificats de domaines / Nouveau”
Il vous faut copier/coller votre CSR :
less mondomaine.be.csr
Et coller le texte dans la zone “CSR” du site CAcert :
Veuillez svp vous assurer que les détails suivants sont corrects avant de continuer. Nom commun (CommonName): mondomaine.be Aucune information supplémentaire ne sera insérée dans nos certificats puisqu’elles ne peuvent pas être verifiée automatiquement par le système.
Je valide et j’obtiens une page me donnant mon certificat serveur.
Je copie ce texte, c’est mon certificat, et je le sauve dans un fichier mondomaine.be.pem
Et voilà !
Reste à configurer Apache2.
Ce sera pour un billet suivant.




