Estou tentando gerar um par de chaves público-privado e converter a chave pública em um certificado que pode ser adicionado em meu truststore.

Para gerar & chave pública privada: openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem

Agora eu estou tentando converter isso em um certificado:

openssl x509 -outform der -in public_key.pem -out public.cer 

Mas recebo um erro:

7962:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.30.2/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE 

Todos os tutoriais mostram que tenho que converter pem em crt antes de adicionar a um truststore.

Resposta

Você não pode ” converter “uma chave pública em um certificado. Um certificado inclui a chave pública, mas inclui também mais informações como o assunto, o emissor, quando o certificado é válido, etc. E um certificado é assinado pelo emissor. Assim, o que você precisaria em vez disso é criar uma solicitação de assinatura de certificado (CSR) que inclui a chave pública, mas também inclui todas as informações adicionais. Este CSR precisa então ser assinado por uma autoridade de certificação (CA) que então resulta no certificado.

Para criar um certificado autoassinado simples que não seja confiável para nenhum navegador, consulte Como criar um certificado autoassinado com o openssl? .

Comentários

  • Portanto, neste exemplo: openssl req -x509 -newkey rsa: 4096 -keyout key.pem -out cert.pem -days 365 key.pem conterá a chave privada e a pública?
  • @ user1692342: I ' Não tenho certeza de como a pergunta do comentário se relaciona com a pergunta original. Mas: key.pem é a chave privada que inclui a chave pública e a chave pública também está incluída em cert.pem.

Resposta

Você não pode converter uma chave pública em um certificado.

Os comandos originais não funcionarão, pois a codificação PEM / formato de arquivo espera conter o texto do certificado criptografado como abaixo:

—– BEGIN CERTIFICATE —–

Dados do certificado aqui

—– END CERTIFICATE —–

Portanto, se você visualizar o arquivo .PEM original e vir outra coisa (como BEGIN RSA …), isso está incorreto.

Agora, de acordo com o título do tópico, você estão buscando converter um PEM em um formato de arquivo CRT . Observe que os certificados x509 podem ter duas codificações – DER e PEM. Além disso, PEM pode estar em um formato .CRT, .CER e também .PEM.

Portanto, se você vir esse erro, também há uma chance de estar tratando um certificado codificado DER como um certificado codificado PEM. Você pode tentar ver se ele está realmente codificado em DER seguindo as instruções nesta página .

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *