Linux:Installation d'OpenSSL
Sommaire
Principe de la certification SSL
Le principe de la certification SSL est de délivrer des certificats afin de certifier l'authenticité d'un serveur, d'un client ou autre. Cette certification est faite par une autorité de certification (dit CA, Certificate Authority) qui peut être une entité externe comme VeriSign ou interne (fait sois même).
Tous les certificats émis se font sur un serveur prévu à cet effet. Une fois créé chaque certificat est déplacé (et non copié) sur la machine qui va bien.
Installation
Pour faire de l'autorité de certification ou pour faire des demandes de certificats, nous aurons besoin d'OpenSSL qui peut s'installer sous CentOS/RedHat/Fedora par la commande:
yum install openssl
et sous ubuntu:
sudo apt-get install openssl
Configuration
Modifier le fichier openssl.cnf dans /etc/pki/tls sous CentOS/RedHat/Fedora et dans /etc/ssl sous ubuntu:
- en rajoutant localityName dans la rubrique policy_match:
countryName = match stateOrProvinceName = match localityName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional
- en mettant les valeurs par défaut dans la rubrique req_distinguished_name:
[ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = FR countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = Herault localityName = Locality Name (eg, city) localityName_default = Saint-Jean-de-Védas 0.organizationName = Organization Name (eg, company) 0.organizationName_default = Minetti
- et enfin, en rajoutant les rubriques suivantes:
[CA_ROOT] nsComment = "CA Racine" subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer:always basicConstraints = critical,CA:TRUE,pathlen:1 keyUsage = keyCertSign, cRLSign [CA_SSL] nsComment = "CA SSL" basicConstraints = critical,CA:TRUE,pathlen:0 subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer:always issuerAltName = issuer:copy keyUsage = keyCertSign, cRLSign nsCertType = sslCA [SERVER_RSA_SSL] nsComment = "Certificat Serveur SSL" subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer:always issuerAltName = issuer:copy # subjectAltName = DNS:www.minetti.org, DNS:mail.minetti.org basicConstraints = critical,CA:FALSE keyUsage = digitalSignature, keyEncipherment nsCertType = server extendedKeyUsage = serverAuth [CLIENT_RSA_SSL] nsComment = "Certificat Client SSL" subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer:always issuerAltName = issuer:copy # subjectAltName = critical,email:copy,email:user-bis@minetti.org,email:user-ter@minetti.org basicConstraints = critical,CA:FALSE keyUsage = digitalSignature, keyAgreement nsCertType = client extendedKeyUsage = clientAuth
Emplacement des certificats sur les serveurs
CentOS/RedHat/Fedora
- On retrouvera toujours le certificat de l'autorité de certification (CA) créé par sois même dans (ayant comme propriétaires root.root et les permissions 644):
/etc/pki/CA/cacert.pem
- On trouvera les fichiers clés privées et publiques dans:
/etc/pki/tls/private/
- et les certificats associés dans:
/etc/pki/tls/certs/
Debian
- On retrouvera toujours le certificat de l'autorité de certification (CA) créé par sois même dans:
/etc/ssl/certs/minetti-ca.pem
- On trouvera les fichiers clés privées et publiques dans:
/etc/ssl/private.<hostname>/
- et les certificats associés dans:
/etc/ssl/certs/