Page cover

Certificat SSL

Générer un certificat SSL autosigné ou signé avec un CA avec un Subject Alt Name ( SAN )

Création de la clé privée:

sudo openssl genrsa -out example.key 2048

Déposer la clé dans /etc/ssl/private

Créer un ficher de conf avec l'option subjectAltName qui contiendra le common name du service ainsi que l'ip

vi template.conf 
[ req ]
prompt = no
distinguished_name = dn
req_extensions = req_ext
[ dn ]
CN = testweb.domain.tld
emailAddress = [email protected]
O = Organisation
OU = FIKARA
L = PARIS
ST = PARIS
C = FR
[ req_ext ]
subjectAltName = DNS:testweb.domain.tld, IP: ip_du_serveur_web_correspondant

Création du signature request:

sudo openssl req -new -config template.conf -key example.key -out testwebsign.csr

Signature

Déposer la clé et la demande de signature .csr respectivement dans /etc/ssl/private et /etc/ssl/certs

Pour signer la CSR et générer un certificat auto-signé :

sudo openssl x509 -req -in testwebsign.csr -signkey /etc/ssl/private/example.key -out /etc/ssl/certs/testwebsign.crt -days 365 -extensions req_ext -extfile template.conf

Si vous avez une autorité de certification (CA), utilisez-la pour signer la CSR :

sudo openssl x509 -req -in testwebsign.csr -CA myCA.crt -CAkey myCA.key -CAcreateserial -out testwebcert.crt -days 365 -sha256 -extfile template.conf -extensions req_ext

Installer le certificat

Copier le certificat signé et la clé privée dans les répertoires appropriés :

sudo cp testwebcert.crt /etc/ssl/certs/
sudo cp /etc/ssl/private/example.key /etc/ssl/private/
sudo chmod 600 /etc/ssl/private/example.key

Configurer le serveur pour utiliser le certificat

Configurer votre serveur web pour utiliser le certificat. Par exemple, dans Nginx :


server {
    listen 443 ssl;
    server_name testweb.domain.tld;

    ssl_certificate /etc/ssl/certs/testwebsign.crt;
    ssl_certificate_key /etc/ssl/private/example.key;

    # Autres configurations...
}

Tester le certificat

Enfin, testez le certificat en accédant à https://testweb.domain.tld dans votre navigateur.

Last updated

Was this helpful?