Commandes:Génération d'un certificat SSL de l'autorité de certification

De WIKI.minetti.org
Révision de 7 avril 2016 à 19:09 par Jp (discussion | contributions) (Page créée avec « == But == L'autorité de certification permet de certifier des certificats x509. Il est très utile pour des besoins internes ou pour des accès venant de l'extérieur. Ma... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

But

L'autorité de certification permet de certifier des certificats x509. Il est très utile pour des besoins internes ou pour des accès venant de l'extérieur. Mais il ne convient pas du tout pour certifier des sites web. Dans ce cas mieux vaut passer par des autorités de certifications comme VeriSign qui sont déjà installées par défaut dans les navigateurs web.

Étape préliminaire

Avant de générer le certificat de l'autorité de certification, il est impératif d'avoir procédé à l'installation d'OpenSSL.

Création du certificat de l'autorité racine

  • Se placer dans le répertoire /etc/pki/CA sous CentOS/RedHat/Fedora et /etc/ssl sous ubuntu:
  • Exécuter la commande suivante pour générer une biclé RSA, protégé par une passphrase:
openssl genrsa -out private/cakey.pem -des3 2048
Generating RSA private key, 2048 bit long modulus
.................+++
.................................................................+++
e is 65537 (0x10001)
Enter pass phrase for private/cakey.pem:
Verifying - Enter pass phrase for private/cakey.pem:
  • Restreindre l'accès à la biclé de l'autorité racine:
chmod 600 private/cakey.pem
  • Exécuter la commande suivante pour générer le certificat auto-signé valable 40 ans:
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -config ../tls/openssl.cnf -extensions CA_ROOT -days 14600
Enter pass phrase for private/cakey.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [FR]:
State or Province Name (full name) [Herault]:
Locality Name (eg, city) [Saint-Jean-de-Védas]:
Organization Name (eg, company) [Minetti]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:Minetti root CA
Email Address []:root@minetti.org
  • Et enfin, exécuter les commandes suivantes pour créer la base de données de la CA:
touch index.txt
echo '01' > serial

Remarque: Lorsque qu'un certificat d'une autorité a expiré, il suffit de régénérer un nouveau certificat auto-signé avec la même biclé pour le renouveler. Les certificats signés par l'ancien CA seront donc valide avec le nouveau CA.

Test du certificat de l'autorité racine

Exécuter la commande suivante pour vérifier le certificat généré:

openssl x509 -purpose -in cacert.pem -text -noout
Certificate purposes:
SSL client : No
SSL client CA : Yes
SSL server : No
SSL server CA : Yes
Netscape SSL server : No
Netscape SSL server CA : Yes
S/MIME signing : No
S/MIME signing CA : Yes
S/MIME encryption : No
S/MIME encryption CA : Yes
CRL signing : Yes
CRL signing CA : Yes
Any Purpose : Yes
Any Purpose CA : Yes
OCSP helper : Yes
OCSP helper CA : Yes
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            d9:55:07:3b:74:74:35:6c
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=FR, ST=Herault, L=Saint-Jean-de-V\xC3\xA9das, O=Minetti, CN=Minetti root CA/emailAddress=root@minetti.org
        Validity
            Not Before: Aug 17 14:45:26 2010 GMT
            Not After : Aug 14 14:45:26 2020 GMT
        Subject: C=FR, ST=H\xC3\xA9rault, L=Saint-Jean-de-V\xC3\xA9das, O=Minetti, CN=Minetti root CA/emailAddress=root@minetti.org
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:cd:bf:e9:38:dd:60:77:f7:f4:c8:35:4c:e5:51:
                    c7:23:9d:e0:ee:f0:6f:c5:6a:8f:97:c4:ac:4e:76:
                    1c:de:43:7d:dc:b6:e1:92:6b:c3:9c:89:92:0c:e7:
                    6a:84:a9:06:8e:b0:25:cc:a9:23:ca:99:2b:e0:14:
                    db:81:26:18:44:ea:35:04:18:05:54:35:37:09:ec:
                    69:4b:d0:fa:4f:10:6d:29:79:3b:49:e0:20:fc:42:
                    08:fe:12:d8:20:6f:9f:89:5a:06:dc:6c:0c:81:3d:
                    a7:02:ce:ee:fd:62:b4:9b:52:6d:ed:c7:c4:83:e3:
                    70:0b:8c:b0:e6:a0:ef:93:ee:f4:82:56:c3:29:b6:
                    ad:a9:ce:77:af:f0:ec:22:df:a2:95:5b:02:10:30:
                    4c:d4:7f:ed:4f:99:52:99:67:39:8d:d2:f1:b0:8d:
                    d9:44:52:11:05:eb:dd:db:b2:f8:17:36:82:8e:d2:
                    a1:7d:4e:06:31:b0:6e:4c:27:19:fb:53:39:54:ae:
                    36:20:6e:87:f2:05:5a:b5:a9:1e:2c:54:31:2d:03:
                    de:59:72:90:1b:05:0c:81:87:42:81:de:91:60:5b:
                    57:d0:bc:62:bd:db:f1:f0:e1:5d:f2:e2:b9:bf:a9:
                    72:2d:d3:11:0e:25:f7:a4:0b:1e:ce:fa:42:92:82:
                    7e:c3
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            Netscape Comment: 
                CA Racine
            X509v3 Subject Key Identifier: 
                6E:9F:EC:0E:51:90:72:AC:48:2E:D5:10:D2:17:0C:A9:85:6C:A4:F6
            X509v3 Authority Key Identifier: 
                keyid:6E:9F:EC:0E:51:90:72:AC:48:2E:D5:10:D2:17:0C:A9:85:6C:A4:F6
                DirName:/C=FR/ST=Herault/L=Saint-Jean-de-V\xC3\xA9das/O=Minetti/CN=Minetti root CA/emailAddress=root@minetti.org
                serial:D9:55:07:3B:74:74:35:6C

            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:1
            X509v3 Key Usage: 
                Certificate Sign, CRL Sign
    Signature Algorithm: sha1WithRSAEncryption
        5f:5b:1e:26:2d:64:be:88:fc:b7:a7:ee:fd:f6:35:87:ed:71:
        3f:c6:75:98:50:5f:d2:99:02:7f:ea:91:61:7f:af:e7:4e:69:
        4f:e5:d0:63:35:1d:84:7f:11:99:c8:f9:56:d1:37:68:7e:4f:
        10:ea:c8:eb:0c:94:ac:03:64:a1:df:0c:67:f6:c8:59:e1:d3:
        0e:0f:2e:8e:fb:fd:bb:d6:13:56:85:1a:fa:d7:dc:52:c3:f3:
        f2:d1:e7:c5:89:88:5e:49:a6:0c:5d:01:9a:e2:d8:28:43:ed:
        5a:90:c9:21:e3:28:a2:cf:3b:74:e5:05:e9:f3:1a:61:91:6d:
        14:d2:d0:ec:50:9a:27:b2:a7:44:8d:e8:05:bc:d9:87:7f:19:
        7d:7a:2b:aa:d1:19:12:ff:19:a7:9c:3d:cd:64:26:27:e3:43:
        07:71:d8:48:aa:7b:21:a1:d9:77:dd:b2:5c:2b:e3:91:2b:ba:
        46:61:6d:c3:27:15:2d:4a:fd:23:f8:68:71:12:b6:fc:7c:7a:
        38:ab:6c:1b:34:a3:4e:6e:16:b5:d6:cd:2b:29:ec:b0:c0:08:
        ec:d1:f3:f0:ae:c6:d3:3f:de:93:f0:a0:01:33:7f:5c:6f:ff:
        37:18:eb:2d:c1:6e:93:3d:c0:3a:a8:b1:00:18:a2:7e:77:b1:
        3f:76:99:b5

Création d'un certificat d'une autorité intermédiaire

Exécuter les commande suivantes pour générer le certificat:

openssl genrsa -out cassl/cassl.key -des3 2048
openssl req -new -key cassl/cassl.key -out cassl/cassl.crs -config ./openssl.cnf
openssl ca -out cassl/cassl.pem -config ./openssl.cnf -extensions CA_SSL -infiles cassl/cassl.crs

Intégration d'un certificat CA dans un keystore Java

Pour intégrer un certificat d'une autorité de certification dans un keystore Java, il faut commencer par convertir notre certificat au format DER:

openssl x509 -in ca/ca.pem -inform PEM -out ca/ca.cer -outform DER

Ensuite, il n'y a plus qu'a l'importer dans le keystore Java:

keytool -importcert -alias minettica -trustcacerts -file ca/ca.cer -keystore $JAVA_HOME/jre/lib/security/jssecacerts -storepass changeit