Générer un certificat serveur

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:

openssl_intermediaire.cnf
[ 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.

Dernière modification