Usei uma VPN baseada em certificado (OpenVPN) em casa e no trabalho. Eu também escrevi um pequeno script de empacotador easy-rsa
para que eu possa fazer algo parecido ./new-client jdoe 'Jon Doe'
e ele irá gerar e assinar os certificados para mim, em seguida, empacotá-los em um único arquivo para que eu possa implementar as chaves facilmente.
Para fazer isso facilmente, o new-client
script de pacote renomeia o cliente .crt
e os .key
arquivos para nomes genéricos, de forma que você não possa dizer a partir do nome do arquivo qual é o CN de um certificado.
Saída de um easy-rsa
certificado emitido:
$ openssl x509 -subject -dates -fingerprint -noout -in mickey.crt
subject= /C=US/ST=FL/L=Orlando/O=Disney/CN=mmouse/name=Mickey Mouse
notBefore=Aug 9 16:20:06 2012 GMT
notAfter=Aug 7 16:20:06 2022 GMT
SHA1 Fingerprint=11:25:1C:9E:19:FE:2A:47:3F:E7:0D:42:B0:5E:CD:E7:B4:A9:C8:98
Ou talvez você tenha um certificado da web que não consegue lembrar para onde ele vai. Contanto que seja um certificado x509, ele funcionará:
$ openssl x509 -subject -dates -fingerprint -noout -in star_acme_com.crt
subject= /C=US/ST=Florida/L=Orlando/O=ACME INC/CN=*.acme.com
notBefore=Nov 29 00:00:00 2011 GMT
notAfter=Dec 3 12:00:00 2012 GMT
SHA1 Fingerprint=C1:42:DD:81:7C:74:83:91:33:AC:C6:54:1E:5C:BC:06:F3:B1:08:77
O exemplo do Mickey é especialmente interessante porque a maioria das ferramentas (OpenVPN) incluídas usa o nome comum dos certificados para fazer certas coisas. O arquivo foi renomeado para não corresponder ao nome comum. Isso permite que você veja facilmente o que o CN realmente é para um determinado certificado e não precise assumir que o nome do arquivo corresponde ao CN.