De même, afin de garantir l'authenticité du certificat, ce dernier est signé numériquement par le biais d'une clé privée provenant soit d'un organisme officiel (Société spécialisée dans la certification) soit par le détenteur du Certificat lui même. Dans ce dernier cas, on parlera de certificat auto-signé.
Dans la plupart des cas, l'obtention d'un Certificat certifié par une autorité officielle ayant un prix assez élevé, les webmasters auront tendance a vouloir signer eux-même leur certificat. Ce faisant, il est à noter que dans ce cas, le certificat ne sera pas reconnu par les navigateurs internet comme étant certifié.
Génération de la clé SSL :
openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
......................++++++
.................................++++++
unable to write 'random state'
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
Suppression de la "pass phrase" de la clé :
mv server.key server.key.secure
openssl rsa -in server.key.secure -out server.key
Enter pass phrase for server.key:
Génération d'un certificat de requete (certificate signing request : server.csr)
openssl req -new -key server.key -out server.csr
Enter pass phrase for server.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]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Génération d'un certificat valide 365 jours (server.crt)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd
Getting Private key
Enter pass phrase for server.key:
- x509 : type de certificat désiré
- -days 365 : indique la durée de validité (en jours) de ton certificat
Il ne reste plus qu'a configurer ton serveur apache :
sudo a2enmod ssl
et a crée le virtualhost :
NameVirtualHost *:443
<VirtualHost *:443>
ServerName hostname.com
DocumentRoot /var/www/hostname.com
[...]
SSLEngine on
SSLCertificateFile /chemin/vers/le/certificat/server.crt
SSLCertificateKeyFile /chemin/vers/la/cle/server.key
</VirtualHost>