Mon entreprise m'a envoyé un certificat pour mon téléphone intelligent. Le nom du fichier est "3274634.p12". La documentation indique "Entrez votre nom d'utilisateur principal (UPN) en tant que connexion" et décrit comment obtenir cette valeur à l'aide d'Internet Explorer.
Comment puis-je faire la même chose sous Linux (Kubuntu 13.04)?
linux
certificate
Aaron Digulla
la source
la source
Réponses:
Le fichier PKCS # 12 contient généralement un certificat X.509 et sa clé privée associée. Toutes les informations sont stockées dans le certificat, vous devez donc les extraire au préalable:
(
foo.pem
contiendra à la fois le certificat et la clé privée.)L'UPN est stocké en tant que type spécial de "subjectAltName" dans le certificat. Malheureusement, OpenSSL ne sait pas encore comment afficher les UPN (ainsi que certains autres types de noms), aussi la commande habituelle pour examiner les certificats (
openssl x509 -noout -text < foo.pem
) ne fonctionnera pas. Au lieu de cela, vous aurez besoin d'outils de bas niveau.Séparez le certificat dans un fichier qui lui est propre (vous pouvez également le faire avec un éditeur de texte):
Imprimez le certificat en tant que structure ASN.1:
Recherchez les lignes décrivant l'extension subjectAltName:
Et courir
asn1parse
de nouveau, cette fois en lui demandant de creuser plus profondément dans le contenu de l'extension (qui est encore une structure ASN.1) - dans cet exemple, la valeur (ligne "OCTET STRING") commence au décalage 750:Enfin, recherchez le nom UPN dans le dump:
Si vous avez installé des outils GnuTLS, il existe un moyen plus rapide mais pas aussi fiable. Une fois le certificat extrait, vous pouvez l’alimenter
certtool -i < foo.cert
, et il imprimera le contenu brut même des noms qu’il ne reconnaît pas:Rechercher l'OID
1.3.6.1.4.1.311.20.2.3
; il sera suivi du contenu brut du nom. Heureusement, ils consistent en une seule chaîne UTF8String, de sorte que la sortie "otherName ASCII" est facile à comprendre - supprimez simplement les deux premiers octets (représentés par des points ici).Une solution plus simple consisterait simplement à saisir votre propre identifiant Windows. l'UPN est toujours sous la forme
username@domain
.(C’est un peu triste de constater que, parmi tous les outils que j’ai essayés, presque aucun d’entre eux ne sait interpréter des types de noms aussi simples et couramment utilisés - même s’ils sont propriétaires -.)
la source
:name@domain
. Je suppose que les deux points peuvent / doivent être ignorés?name@domain
.