10. Installer un certificat SSL gratuit et valide
Je m’inspire de cette source. Ça fonctionne très bien sans, mais je ne conseille bien évidemment pas ! Surtout qu’on peut en avoir un gratuit chez StartSSL.com ! De plus, sans certificat valide, les périphériques mobiles refusent de se synchroniser (même avec un autosigné).
Se connecter en « root » via SSH sur le serveur.
Taper :
openssl genrsa -out /etc/ssl/lenomdedomaine.xxx.key 2048
Puis :
chmod 400 /etc/ssl/ lenomdedomaine.xxx.key
Et enfin :
openssl req -new -key /etc/ssl/ lenomdedomaine.xxx.key -out /etc/ssl/lenomdedomaine.xxx.csr
Des demandes seront faites :
- Country Name : le pays en deux lettres (FR=France, CH=Suisse, etc…)
- State Or Province Name : La région (Département, canton, province selon le pays…)
- Locality : La localité
- Organisation Name: Votre organisation (nom de la compagnie par exemple)
- Organisation Unit Name: personnellement je laisse vide
- Common Name : lenomdedomaine.xxx
- Email address : email valide sur le domaine (d’un admin, postmaster@lenomdedomaine.xxx de préférence)
- A challenge password : vide
- An Optional company name : vide
Ensuite
vi /etc/ssl/lenomdedomaine.xxx.csr
Copier le contenu complet du fichier (dans fichier texte en local par exemple, car on aura besoin du contenu ensuite)! Se rendre à présent sur https://startssl.com Cliquer sur « Express Lane ».
Remplir les infos demandées (avec email valide d’avant !)
Ensuite vient :
Se rendre sur le webmail de l’utilisateur qui reçoit les mails de l’adresse indiqué précédemment et copier le code d’authentification reçu dans le champ ci-dessus. Ensuite sélectionner « haut niveau » dans le menu déroulant. Ensuite install (cela prend un petit moment). Ensuite ok. Après vient cette fenêtre :
Indiquer le nom de domaine. Ensuite le mail de vérification
Retourner sur le webmail pour copier le code et l’entrer dans la fenêtre pour valider. Sur cette fenêtre, PRESSER SUR SKIP.
Maintenant copier-coller dans ce formulaire le contenu de la clé CRS que j’ai fait mettre de côté avant !
Continuer
Sur la page d’après, je conseille d’ajouter « www » comme « sous-domaine ».
Pour terminer, il faut récupérer le certificat dans le formulaire:
Il est fortement recommandé de la sauvegarder dans un fichier texte en local au cas où! Car il sera impossible de révoquer le domaine dans le futur! (en vrai oui, mais contre 25$). À présent, il faut copier le contenue de ce formulaire en créant le fichier suivant:
vi /etc/ssl/lenomdedomaine.xxx.crt
Ensuite, récupération de deux autres certificats nécessaires chez StartSSL:
cd /etc/ssl
Pour les 2 commandes suivantes, il faut enlever les 3 espaces entre les lettres du premier mot (je ne peux pas l’écrire correctement ci-dessous, car le serveur du blog se protège et n’accepte pas cette instruction dans mon éditeur d’article étant donné que c’est une commande de téléchargement Linux):
w g e t https://www.startssl.com/certs/sub.class1.server.ca.pem
w g e t Thttps://www.startssl.com/certs/ca.pem
Configuration Apache:
cat lenomdedomaine.xxx.key > lenomdedomaine.xxx.pem
cat lenomdedomaine.xxx.crt >> lenomdedomaine.xxx.pem
Activer SSL pour Apache:
a2enmod ssl
a2ensite default-ssl
Il faut ensuite aller dire au virtualhost d’utiliser SSL. Mais premièrement effacer ce qu’il y a dedans:
rm /etc/apache2/sites-available/default-ssl
Le recréer proprement:
vi /etc/apache2/sites-available/default-ssl
Et ajouter cela dedans (attention aux deux choses en gras à modifier avant!):
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin postmaster@lenomdedomaine.xxx
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory « /usr/lib/cgi-bin »>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
LogLevel warn
CustomLog /var/log/apache2/ssl_access.log combined
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/ssl/lenomdedomaine.xxx.pem
SSLCertificateChainFile /etc/ssl/sub.class1.server.ca.pem
SSLCACertificateFile /etc/ssl/ca.pem
</VirtualHost>
</IfModule>
Pour terminer, redémarrer le service apache:
/etc/init.d/apache2 restart
Voilà, normalement https://lenomdedomaine.xxx/ est accessible!
Partie précédente – Partie suivante
Sinon tu peux lire ça: