Soubor PKCS#12 obvykle obsahuje certifikát X.509 a jeho přidružený soukromý klíč. Všechny informace jsou uloženy v certifikátu, takže je nejprve musíte extrahovat:
openssl pkcs12 -in foo.p12 -out foo.pem
 (foo.pem bude obsahovat certifikát a soukromý klíč.)
 UPN je v certifikátu uložen jako speciální typ "subjectAltName". OpenSSL bohužel zatím neumí zobrazovat UPN (stejně jako některé další typy jmen), takže obvyklý příkaz pro zkoumání certifikátů (openssl x509 -noout -text < foo.pem ) to nebude fungovat. Místo toho budete potřebovat nástroje nízké úrovně.
Oddělte certifikát do vlastního souboru (můžete to provést také pomocí textového editoru):
openssl x509 < foo.pem > foo.cert
Vytiskněte certifikát jako strukturu ASN.1:
openssl asn1parse -i -dump < foo.cert
Najděte řádky, které popisují příponu subjectAltName:
742:d=4  hl=3 l= 200 cons:     SEQUENCE          
745:d=5  hl=2 l=   3 prim:      OBJECT          :X509v3 Subject Alternative Name
750:d=5  hl=3 l= 192 prim:      OCTET STRING    [HEX DUMP]:3081BDA036...
 A spusťte asn1parse znovu, tentokrát mu říká, aby se ponořil hlouběji do obsahu rozšíření (což je další struktura ASN.1) – v tomto příkladu začíná hodnota (řádek "OCTET STRING") na offsetu 750:
openssl asn1parse -i -dump -strparse 750 < foo.cert
Nakonec vyhledejte UPN ve výpisu:
59:d=1  hl=2 l=  40 cons:  cont [ 0 ]        
61:d=2  hl=2 l=  10 prim:   OBJECT          :Microsoft Universal Principal Name
73:d=2  hl=2 l=  26 cons:   cont [ 0 ]        
75:d=3  hl=2 l=  24 prim:    UTF8STRING      :[email protected]
 Pokud máte nainstalované nástroje GnuTLS, existuje rychlejší způsob, ale ne tak spolehlivý. Jakmile budete mít certifikát extrahován, můžete jej odeslat do certtool -i < foo.cert a vytiskne nezpracovaný obsah i názvů, které nepozná:
Subject Alternative Name (not critical):
    otherName OID: 1.3.6.1.4.1.311.20.2.3
    otherName DER: 0c1867726177697479404e554c4c524f5554452e45552e4f5247
    otherName ASCII: [email protected]
 Hledejte OID 1.3.6.1.4.1.311.20.2.3; bude následovat nezpracovaný obsah názvu. Naštěstí se skládají z jednoho řetězce UTF8, takže výstup „otherName ASCII“ je snadno srozumitelný – stačí odstranit první dva bajty (zde zobrazeny jako tečky).
 Jednodušším způsobem by bylo zkusit zadat své vlastní přihlašovací jméno Windows; UPN je vždy ve tvaru [email protected] .
(Je trochu smutné, že ze všech nástrojů, které jsem vyzkoušel, téměř žádný z nich neví, jak interpretovat tak jednoduché a běžně používané – i když proprietární – typy jmen.)