Como posso descobrir o tipo de um certificado SSL?

1

Recebi por e-mail da minha autoridade de certificação um certificado que começa assim:

-----BEGIN CERTIFICATE-----
MIAGCSqGSIb3DQEHAqCAMIACAQExADALBgkqhkiG9w0BBwGggDCCBWMwggRLoAMC

e termina assim:

14lWAyMfs77oOghZtOxFNfeKW/9mz1Cvxm1XjRl4t7mi0VfqH5pLr7rJjhJ+xr3/
AAAxAAAAAAAAAA==
-----END CERTIFICATE-----

Recebi por e-mail e copiei / colei a parte do certificado em um arquivo test.cer (quadrupliquei - verifiquei se copiei / colei exatamente a parte correta)

Quando tento usá-lo no Apache 2, tenho o seguinte erro:

[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] AH02241: Init: Unable to read server certificate from file C:/projects/test-ssl/test.cer
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=X509)
[Mon Sep 30 23:15:36.754820 2013] [ssl:emerg] [pid 7544:tid 444] AH02312: Fatal error initialising mod_ssl, exiting.

Depois de uma pequena pesquisa, descobri que a causa pode ser que o certificado está corrompido, então, para verificá-lo, eu testei com

C:\Apache24\bin\openssl.exe x509 -in test.cer -text

e recebo um erro semelhante:

unable to load certificate
8100:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1319:
8100:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:381:Type=X509_CINF
8100:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:751:Field=cert_info, Type=X509
8100:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:.\crypto\pem\pem_oth.c:83:

Não sou especialista em SSL, mas duvido que a autoridade de certificação (Symantec) me envie um certificado corrompido.

Alguma ideia do que poderia estar errado com este certificado? Poderia estar em um formato diferente do qual não conheço?

    
por Samuel Rossille 30.09.2013 / 23:59

3 respostas

1

Tente importar esse certificado para algum repositório do NSS. Por exemplo, para o Firefox, que está usando o NSS. É outra implementação do SSL (na verdade, a primeira) e você pode ver os atributos do certificado ... claro, se você tiver sucesso com a importação. Caso contrário, você tem algum certificado errado.

    
por 01.10.2013 / 00:32
2

certifique-se de não ter NENHUM CARRIAGERETURN FINAL após o último traço na última linha:

AAAxAAAAAAAAAA==
-----END CERTIFICATE-----

e não

AAAxAAAAAAAAAA==
-----END CERTIFICATE-----
.

(por favor, ignore o ponto:)

    
por 01.10.2013 / 00:39
1

Não se esqueça de incluir o

------- BEGIN ------

e

---- END ----

partes exatamente como foram enviadas para você.

observe também que o início deve ser a primeira linha e terminar o último. Não deve haver espaço em branco ao redor. E finalmente ... Se você está lidando com uma máquina Windows na mistura em algum lugar, há uma chance de que a nova linha (\ n) tenha um (\ r) adicionado pelo sistema Windows. Um editor hexadecimal é provavelmente a maneira mais rápida de verificar isso.

    
por 01.10.2013 / 05:47