Pour tout serveur web il peut être important de pouvoir se connecter de façon sécurisée et pour se faire on utilise le ssl.
Les certificats ssl peuvent être autosigné ( nous n’allons pas aborder ce point dans ce tuto mais si vous voulez le faire voila le post d’origine sur le site de CentOs) ou alors certifié par une autorité exterieure qui est reconnue par votre navigateur (verisign, godaddy, stratssl pour ne citer que ceux la).
Dans ce tuto nous allons aborder la création d’un certificat de niveau 1 chez StartSSL.
Pourquoi StartSSL?
Tout simplement parce que chez eux les certificats de niveau 1 sont gratuits. Vous pouvez d’ailleurs en créer autant que vous voulez.
Prérequis:
- Un serveur Web Apache sous CentOs 6.x.
- Un compte chez StartSSL (lors de la création il y’a une sorte de validation à passer).
- Un nom de domaine que vous voulez certifier (pas une adresse IP).
- Maitriser Vi/Vim
- De la patience.
1 |
yum install mod_ssl openssl |
Une fois cela fait on va créer notre clé privé (min 2048 pour StartSSL):
1 |
openssl genrsa -out ca.key 2048 |
Bien sûr a la place de ça vous pouvez mettre ce que vous voulez.
Ensuite le CSR (ca permet de demander le certificat par la suite):
1 |
openssl req -new -key ca.key -out ca.csr |
Une fois tout ça fait passons sur le site de StartSSL:
- Entrez dans le « Control Panel »
- Cliquez sur « Validations Wizard »
- Selectionnez « Domain Name Validation »
- Suivez la validation jusqu’au bout.
Une fois la validation effectuée passons à la création du certificat:
- Toujours dans « Control Panel » cliquez sur « Certificates Wizard »
- Dans « Certificate Target » selectionnez Web Server SSL/TLS Certificate » puis cliquez sur « Continue >> >> »
- Sur cette page vous pouvez faire générer par le site les deux fichiers que nous avons créer tout à l’heure mais vu que nous c’est fait, on va cliquer sur « Skip >> >> »
- Sur cette page vous allez devoir coller le contenu du fichier ca.csr que l’on a généré tout à l’heure.
- Dernière étape, vous obtenez dans un champ de texte votre clé certifié qu’il va vous falloir copier dans un fichier sur votre serveur en tapant par exemple:
1vim ssl.crt
Nous allons copier/télécharger dans le même dossier que celui ou nous avons les certificat ces deux fichier (fourni par StartSSL sur la dernière page).
Ceci effectué, nous allons régler le serveur afin qu’il détecte votre certificat et l’utilise:
ATTENTION: n’utilisez QUE la fonction cp et surtout pas mv.
1 2 3 4 5 |
cp ssl.crt /etc/pki/tls/certs cp ca.pem /etc/pki/tls/certs cp sub.class1.server.ca.pem /etc/pki/tls/certs cp ca.key /etc/pki/tls/private/ca.key cp ca.csr /etc/pki/tls/private/ca.csr |
Nous avons copié les différents fichiers aux bon endroits maintenant nous allons indiquer a Apache ou les trouver afin qu’il les utilise.
Ouvrons le fichier de configuration SSL:
1 |
vim /etc/httpd/conf.d/ssl.conf |
Je vais vous mettre ici a quoi correspondent les lignes 100 a 127 une fois les modifications effectuées n’hésitez pas à le reproduire en fonction de vos propres noms de fichiers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# Server Certificate: # Point SSLCertificateFile at a PEM encoded certificate. If # the certificate is encrypted, then you will be prompted for a # pass phrase. Note that a kill -HUP will prompt again. A new # certificate can be generated using the genkey(1) command. SSLCertificateFile /etc/pki/tls/certs/ssl.crt # Server Private Key: # If the key is not combined with the certificate, use this # directive to point at the key file. Keep in mind that if # you've both a RSA and a DSA private key you can configure # both in parallel (to also allow the use of DSA ciphers, etc.) SSLCertificateKeyFile /etc/pki/tls/private/ca.key # Server Certificate Chain: # Point SSLCertificateChainFile at a file containing the # concatenation of PEM encoded CA certificates which form the # certificate chain for the server certificate. Alternatively # the referenced file can be the same as SSLCertificateFile # when the CA certificates are directly appended to the server # certificate for convinience. SSLCertificateChainFile /etc/pki/tls/certs/sub.class1.server.ca.pem # Certificate Authority (CA): # Set the CA certificate verification path where to find CA # certificates for client authentication or alternatively one # huge file containing all of them (file must be PEM encoded) SSLCACertificateFile /etc/pki/tls/certs/ca.pem |
Et pour finir pensez à définir votre DocumentRoot pour la connection en ssl (https://).
Bonne chance
Pingback: Votre Dropbox perso – ownCloud – CentOs 6.x | Blog Sephirots