Générer un certificat serveur
Ce certificat serveur permettra une connexion https à notre site web
Génération de la clé privée RSA Racine
dans le dossier CA:
openssl genrsa -out Intermediaire-CA/private/flo.test.key.pem 2048
chmod 400 Intermediaire-CA/private/*
Génération du certificat serveur
La clé privée sera utilisée pour créer un fichier CSR.
Nous devons d’abord éditer le fichier Intermediaire-CA/openssl_intermediaire.cnf
notamment ces parties:
[ req_distinguished_name ] # Template for the DN in the CSR
countryName = FR
stateOrProvinceName = France
localityName = France
0.organizationName = Flodocs
organizationalUnitName = Flodocs
commonName = flo.test # le FQDN souhaité
emailAddress = test@test.fr
[ alt_names ]
IP.1 = IP 192.168.12.104 # l'ip de notre machine
DNS.1 = flo.test # le FQDN souhaité
Génération du CSR (certificate signing request)
openssl req -config Intermediaire-CA/openssl_intermediaire.cnf \
-key Intermediaire-CA/private/flo.test.key.pem \
-new -sha256 -out Intermediaire-CA/csr/flo.test.csr.pem
Signature du CSR
Maintenant que nous avons notre CSR, nous allons pouvoir le signer par la CA Intermediaire ce qui va permettre la génération du certificat.
openssl ca -config Intermediaire-CA/openssl_intermediaire.cnf \
-extensions server_cert -days 375 -notext -md sha256 \
-in Intermediaire-CA/csr/flo.test.csr.pem \
-out Intermediaire-CA/certs/flo.test.cert.pem
Using configuration from Intermediaire-CA/openssl_intermediaire.cnf
Enter pass phrase for /home/flo/CA/Intermediaire-CA/private/Intermediaire-CA.key.pem: mdp
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 4096 (0x1000)
Validity
Not Before: Feb 7 19:32:22 2025 GMT
Not After : Feb 17 19:32:22 2026 GMT
Subject:
countryName = FR
stateOrProvinceName = France
localityName = France
organizationName = Flodocs
organizationalUnitName = Flodocs
commonName = flo.test
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Authority Key Identifier:
15:D8:00:1B:A4:3A:8E:41:FE:98:AC:73:74:6C:A4:DA:39:B5:8D:74
X509v3 Subject Alternative Name:
IP Address:192.168.12.104, DNS:flo.test
Certificate is to be certified until Feb 17 19:32:22 2026 GMT (375 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Database updated
Notre CSR est maintenant signé et notre certificat généré
Voici l’arborescence finale de mon dossier CA
.
├── Intermediaire-CA
│ ├── certs
│ │ ├── flo.test.cert.pem
│ │ └── Intermediaire-CA.cert.pem
│ ├── crl
│ ├── crlnumber
│ ├── csr
│ │ ├── flo.test.csr.pem
│ │ └── Intermediaire-CA.csr.pem
│ ├── index.txt
│ ├── index.txt.attr
│ ├── index.txt.old
│ ├── newcerts
│ │ └── 1000.pem
│ ├── openssl_intermediaire.cnf
│ ├── private
│ │ ├── flo.test.key.pem
│ │ └── Intermediaire-CA.key.pem
│ ├── serial
│ └── serial.old
└── Racine-CA
├── certs
│ └── Racine-CA.cert.pem
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│ └── 1000.pem
├── openssl_racine.cnf
├── private
│ └── Racine-CA.key.pem
├── serial
└── serial.old
Nous allons maintenant concaténer les différents certificats soit, le certificat serveur, le certificat Intermediaire et le certificat Racine
cat Intermediaire-CA/certs/flo.test.cert.pem Intermediaire-CA/certs/Intermediaire-CA.cert.pem Racine-CA/certs/Racine-CA.cert.pem > ca-chain.crt.pem
Ce certificat et la clé privée Intermediaire-CA/private/flo.test.key.pem
seront à mettre sur la machine serveur qui hébèrge notre site web.