Aller au contenu
Wikipédia l'encyclopédie libre

Demande de signature de certificat

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis PKCS10)

Pour les articles homonymes, voir CSR.

Dans une infrastructure PKI (en anglais Public Key Infrastructure soit infrastructure à clés publiques), une demande de signature de certificat (en anglais CSR pour Certificate Signing Request) est un message envoyé à partir d'un demandeur à une autorité de certification afin de demander un certificat d'identité numérique. Le format le plus commun pour les CSR est la spécification PKCS#10.

Procédure

[modifier | modifier le code ]

Avant de créer un CSR, le requérant crée une paire de clés (une publique et une privée) en gardant la clé privée secrète[note 1] . Le CSR contient des informations d'identification du demandeur (examiné comme un nom unique dans le cas d'un certificat X.509), et la clé publique choisie par le demandeur. La clé privée correspondante n'est pas incluse dans le CSR, mais est utilisée pour signer numériquement la demande. Le CSR peut être accompagné d'autres informations d'identification ou des preuves d'identité requises par l'autorité de certification, et l'autorité de certification peut contacter le demandeur pour plus d'informations.

Si la demande est acceptée, l'autorité de certification retourne un certificat d'identité signé numériquement avec la clé privée de l'autorité de certification.

Voici les informations typiquement présentes dans un CSR :
Note : les informations entre parenthèses dans la colonne informations constituent une fois assemblées le nom complet qui sera employé dans le certificat.

Information Description
Common Name (CN=) Le nom complet (FQDN) du domaine Internet à sécuriser par exemple « www.wikipedia.org »[note 2] .
Nom de l'entreprise / Organisation (O=) Nom d'une société ou d'une association légalement constituée.
Nom du département / Unité Organisationnelle (OU=) Par exemple RH, finance, informatique
Localité (L=) Par exemple Paris, Londres
Province, Région ou État (ST=) Par exemple Normandie, Ile-de-France
Pays (C=) Le code à deux lettres ISO pour le pays où est situé l'organisme. Par exemple FR, CA
Une adresse e-mail Une adresse e-mail pour contacter l'organisation. Habituellement l'adresse email de l'administrateur de certificats

Voici une demande de certificat en format PEM (le format PEM est le résultat du codage base64 du format PKCS#10 qui est en ASN.1).

-----BEGIN CERTIFICATE REQUEST-----
MIIBMzCB3gIBADB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEW
MBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEjMCEGA1UEChMaV2lraW1lZGlhIEZvdW5k
YXRpb24sIEluYy4xGDAWBgNVBAMUDyoud2lraXBlZGlhLm9yZzBcMA0GCSqGSIb3
DQEBAQUAA0sAMEgCQQC+ogxM6T9HwhzBufBTxEFKYLhaiNRUw+8+KP8V4FTO9my7
5JklrwSpa4ympAMMpTyK9cY4HIaJOXZ21om85c0vAgMBAAGgADANBgkqhkiG9w0B
AQUFAANBAAf4t0A3SQjEE4LLH1fpANv8tKV+Uz/i856ZH1KRMZZZ4Y/hmTu0iHgU
9XMnXQI0uwUgK/66Mv4gOM2NLtwx6kM=
-----END CERTIFICATE REQUEST-----

La sous-commande req de OpenSSL permet de créer rapidement de tels fichiers mais également d'en afficher le contenu :

$ openssl req -text -noout -in request.pem
Certificate Request:
 Data:
 Version: 0 (0x0)
 Subject: C=US, ST=California, L=San Francisco, O=Wikimedia Foundation, Inc., CN=*.wikipedia.org
 Subject Public Key Info:
 Public Key Algorithm: rsaEncryption
 RSA Public Key: (512 bit)
 Modulus (512 bit):
 00:be:a2:0c:4c:e9:3f:47:c2:1c:c1:b9:f0:53:c4:
 41:4a:60:b8:5a:88:d4:54:c3:ef:3e:28:ff:15:e0:
 54:ce:f6:6c:bb:e4:99:25:af:04:a9:6b:8c:a6:a4:
 03:0c:a5:3c:8a:f5:c6:38:1c:86:89:39:76:76:d6:
 89:bc:e5:cd:2f
 Exponent: 65537 (0x10001)
 Attributes:
 a0:00
 Signature Algorithm: sha1WithRSAEncryption
 07:f8:b7:40:37:49:08:c4:13:82:cb:1f:57:e9:00:db:fc:b4:
 a5:7e:53:3f:e2:f3:9e:99:1f:52:91:31:96:59:e1:8f:e1:99:
 3b:b4:88:78:14:f5:73:27:5d:02:34:bb:05:20:2b:fe:ba:32:
 fe:20:38:cd:8d:2e:dc:31:ea:43

La sous-commande asn1parse décode le format ASN.1 dont est composée cette demande de certificat (l'option -i ajoute l'indentation de la structure) :

$ openssl asn1parse -i -in request.pem
 0:d=0 hl=4 l= 307 cons: SEQUENCE 
 4:d=1 hl=3 l= 222 cons: SEQUENCE 
 7:d=2 hl=2 l= 1 prim: INTEGER :00
 10:d=2 hl=2 l= 121 cons: SEQUENCE 
 12:d=3 hl=2 l= 11 cons: SET 
 14:d=4 hl=2 l= 9 cons: SEQUENCE 
 16:d=5 hl=2 l= 3 prim: OBJECT :countryName
 21:d=5 hl=2 l= 2 prim: PRINTABLESTRING :US
 25:d=3 hl=2 l= 19 cons: SET 
 27:d=4 hl=2 l= 17 cons: SEQUENCE 
 29:d=5 hl=2 l= 3 prim: OBJECT :stateOrProvinceName
 34:d=5 hl=2 l= 10 prim: PRINTABLESTRING :California
 46:d=3 hl=2 l= 22 cons: SET 
 48:d=4 hl=2 l= 20 cons: SEQUENCE 
 50:d=5 hl=2 l= 3 prim: OBJECT :localityName
 55:d=5 hl=2 l= 13 prim: PRINTABLESTRING :San Francisco
 70:d=3 hl=2 l= 35 cons: SET 
 72:d=4 hl=2 l= 33 cons: SEQUENCE 
 74:d=5 hl=2 l= 3 prim: OBJECT :organizationName
 79:d=5 hl=2 l= 26 prim: PRINTABLESTRING :Wikimedia Foundation, Inc.
 107:d=3 hl=2 l= 24 cons: SET 
 109:d=4 hl=2 l= 22 cons: SEQUENCE 
 111:d=5 hl=2 l= 3 prim: OBJECT :commonName
 116:d=5 hl=2 l= 15 prim: T61STRING  :*.wikipedia.org
 133:d=2 hl=2 l= 92 cons: SEQUENCE 
 135:d=3 hl=2 l= 13 cons: SEQUENCE 
 137:d=4 hl=2 l= 9 prim: OBJECT :rsaEncryption
 148:d=4 hl=2 l= 0 prim: NULL 
 150:d=3 hl=2 l= 75 prim: BIT STRING 
 227:d=2 hl=2 l= 0 cons: cont [ 0 ] 
 229:d=1 hl=2 l= 13 cons: SEQUENCE 
 231:d=2 hl=2 l= 9 prim: OBJECT :sha1WithRSAEncryption
 242:d=2 hl=2 l= 0 prim: NULL 
 244:d=1 hl=2 l= 65 prim: BIT STRING

Notes et références

[modifier | modifier le code ]
  1. Il s'agit là du mode décentralisé, en mode centralisé, une autorité génère la clef privée d'un utilisateur puis lui transmettra de façon sécurisée (par exemple dans un fichier au format PKCS#12).
  2. Il est possible de sécuriser plusieurs domaines grâce à l'emploi du caractère joker * comme dans « *.wikipedia.org » qui englobe toutes les langues de Wikipédia.

Références

[modifier | modifier le code ]
Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Articles connexes

[modifier | modifier le code ]

AltStyle によって変換されたページ (->オリジナル) /