User Tools

Site Tools


dev:configuration_des_certificats_ssl

This is an old revision of the document!


Connectez-vous sous root et allez dans le répertoire de configuration de votre serveur Apache2 /etc/apache2 (on peut évidemment choisir un autre répertoire) et créez un répertoire appelé ssl. Vous vous placerez dans ce répertoire afin que les clés et les certificats soient créés à l'intérieur avant d'effectuer les manipulations. Création du certificat serveur

Génération de la clé privée

On génère la clef privée avec la commande suivante en définissant un nom de fichier :

openssl genrsa 2048 > ltc.key

La sortie attendue est la suivante :

Generating RSA private key, 2048 bit long modulus
 ..................++++++
 .................................................................++++++
 e is 65537 (0x10001)

Si vous souhaitez que cette clé ait un mot de passe (qui vous sera demandé à chaque démarrage d'apache, donc à éviter !), ajoutez “-des3” après “genrsa”.

Ceci a pour effet de créer une clé SSL (fichier servwiki.key), ne la perdez pas… c'est votre clé privée… (ni éventuellement le mot de passe) !

Vous pouvez observer son contenu : less ltc.key

-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDQG9wvnuLC4aqzaJCAWGA1AxFzg00hjPObhq1mukzsGyuuWBFG
vj/k9vFNYX55DHctb/4cXtsZRWWvgcjtYnCVwRu+DAjFsk//kOMfhplmiv9xQ+ZL
8w/Xrnm8JWdSS+S4LCMnsuIiQtLbhMrQnUV02hAtbIZiSM3k6OjShEZhDQIDAQAB
AoGAHi0cBW+1k+qjFPbBlUq7UJSMUEKmyYmlvVSPCklTZB0gfVxZzPdDTpEcNks/
yo+rLFSD9Vsvy/9LGmLoXruadWlK67PCUnpM5/oRRGgy8t73YKrxflAU5Gtymjvc
ZCf0CAs6wBft3yLU31Qc4WqVM2vTyUH76jebVhxEw8k63OUCQQD/1OmAXV+TxBPG
ZTPFbzUeAE5rQqqOW4aoMNvM61Yn/19h6SzY2MfSQvF1BNns/efCRrqOMeyvPWUG
g1okfogTAkEA0D7pDf/D2Yu5msbOAGF4QBU1erLzpi/s6Rv6VEPYCGnHQlo3jbg9
FZbjHJ4UcYyYaA8jIrkY+FIJM88YlGbWXwJBAILEdvJ5R/CFCkKf2j2yIWmLaIol
En8fw43XI5L0PB7Hxx6KDLVu4XzVYQyahTZBdqR0eMlUNZJBhJE2tO3wi2cCQQCp
JkCFd3es0BrNxqfzlThozRFofcz88za7TldydL0YcFtC4Sb4vWsYizwktZ6jcPEm
rQz8Gl9W7MO+ynwLptB/AkEA1tsnFXoYzI71enmTdugGxbv0RqAd5iQpDYQkDSdn
2LImp/3YnXNJ9qpY91j87tKthh/Oetu6SHlmLg1LOYNIdw==
-----END RSA PRIVATE KEY-----

Protégez votre fichier en faisant : chmod 400 ltc.key

De multiples autres options sont possibles mais il est inutile d'alourdir le sujet (à creuser pour une éventuelle PTI…)

A partir de votre clé, vous allez maintenant créer un fichier de demande de signature de certificat (CSR Certificate Signing Request).

On génère la demande de certificat avec la commande suivante :

openssl req -new -key ltc.key > ltc.csr

Le système va vous demander de saisir des champs ; remplissez-les en adaptant sauf le champ “Common Name” qui doit être identique au nom d'hôte de votre serveur virtuel :

Country Name (2 letter code) [AU]:be
State or Province Name (full name) [Some-State]:brussels
Locality Name (eg, city) []:brussels
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ulb
Organizational Unit Name (eg, section) []:ltc
Common Name (eg, YOUR name) []:ltc.ulb.ac.be
Email Address []:

Ce n'est pas la peine de saisir d'autres “extra attributes”…

Ceci a pour effet de créer le formulaire de demande de certificat (fichier servwiki.csr) à partir de notre clé privée préalablement créée.

Ce fichier contient la clé publique à certifier. Un less servwiki.csr nous donne :

-----BEGIN CERTIFICATE REQUEST-----
MIIBsTCCARoCAQAwcTELMAkGA1UEBhMCRlIxFTATBgNVBAgTDENvcnNlIGR1IFN1
ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExCMREwDwYDVQQLEwhCVFMg
SU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZvLmZyMIGfMA0GCSqGSIb3DQEBAQUA
A4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12kSbN/NWP0QUiPlksOkF2NkPfwW/m
f55dD1hSndlOM/5kLbSBo5ieE3TgikF0IktjBWm5xSqewM5QDYzXFt031DrPX63F
vo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLWwc0BzEgFZGGw7wiMF6wt5QIDAQAB
oAAwDQYJKoZIhvcNAQEEBQADgYEAwwI4UvkfhBvyRrUXtjrLfZXLxZlF9o+URmHJ
ysvrLKfesVBEzdA9mqk1OwIwLfe8Fw2fhip2LGqvcCPxDMoIE/0cDkqGRg9iKp7D
DMuy69lPTEB6UtpVKO/1eage0oug6VqdfGAYMMSGyWFuO9FE4UE6HspVodb20wGV
4H8qZuk=
-----END CERTIFICATE REQUEST-----

Maintenant il faut envoyer le fichier .csr à la Cellule Web/Centre de Calcul (Michel Jansens) et ainsi obtenir le certificat dûment signé par la société DigiCert. Ce certificat est placé dans le même répertoire que la clef /etc/apache2/ssl/

En pratique on reçoit deux fichiers crt ; un qui correspond au serveur à sécuriser et un autre de l'Autorité de Certification. Ces deux fichiers doivent être mentionnés dans la configuration d'Apache.

GnuTLS ne gère pas tout à fait les mêmes directives que mod_ssl pour l’indication des certificats, clés et chaînes nécessaires.

Les directives suivantes remplacent celles de mod_ssl :

  GnuTLSCertificateFile remplace SSLCertificateFile ;
  GnuTLSKeyFile remplace SSLCertificateKeyFile ;
  GnuTLSClientCAFile remplace SSLCACertificateFile (?);

On ajoute dans notre virtualhost :

GnuTLSEnable  on
GnuTLSKeyFile /etc/apache2/ssl/ltc.key
GnuTLSClientCAFile /etc/apache2/ssl/DigiCertCA.crt
GnuTLSCertificateFile /etc/apache2/ssl/ltc_ulb_ac_be.crt
GnuTLSPriorities NONE:+VERS-TLS1.1:+VERS-TLS1.0:+AES-256-CBC:+DHE-RSA:+RSA:+SHA1:+COMP-NULL:+COMP-DEFLATE

Références en ligne :

http://blog.lumo.fr/securiser-les-virtualhosts-dapache-grace-a-gnutls.html

https://wiki.archlinux.org/index.php/Apache_HTTP_Server/mod_gnutls

dev/configuration_des_certificats_ssl.1581089050.txt.gz · Last modified: 2024/04/04 10:18 (external edit)