Não é possível carregar o certificado no OpenSSL

3

Estou tentando ler um certificado usando o OpenSSL gerado pelo Google Play. O certificado é descrito da seguinte forma:

The Base64-encoded RSA public key that is generated by Google Play is in binary encoded, X.509 subjectPublicKeyInfo DER SEQUENCE format.

Eu decodifiquei a string codificada Base64 em binário usando o OpenSSL na linha de comando usando:

openssl enc -base64 -d -A <<< THE_KEY_CONTENT > key.der

O arquivo binário parece ser razoável. São 294 bytes e o primeiro byte é 0x30 , o que, acredito, corresponde a SEQUENCE .

Com o arquivo binário resultante, tento executar o seguinte comando:

openssl x509 -inform der -in key.der -out key.pem

Mas recebo os seguintes erros do OpenSSL:

unable to load certificate 140736245019656:error:0D0680A8:asn1
encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1199:140736245019656:error:0D06C03A:asn1
encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:767:140736245019656:error:0D08303A:asn1
encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested
asn1 error:tasn_dec.c:699:Field=serialNumber, Type=X509_CINF 140736245019656:error:0D08303A:asn1
encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:699:Field=cert_info, Type=X509

Há algo que estou perdendo para obter esse certificado carregado? Eu estou supondo que o Google não estaria me dando um certificado ruim!

    
por aardvarkk 23.11.2016 / 04:04

1 resposta

3

O problema foi que eu interpretei a descrição para significar que havia um certificado X509 inteiro contido no arquivo .der , quando na verdade era somente a chave pública RSA codificada por DER.

Como resultado, o comando correto para a edição acabou sendo o seguinte:

openssl rsa -inform der -in key.der -pubin
    
por 23.11.2016 / 04:50