Ambos contêm os mesmos dados (principalmente), em diferentes formatos. O Nginx irá querer o formato "puro" .crt, mas nem todas as ACs incluem os dados necessários, por isso é possível que você precise converter de .p7b de qualquer maneira. (Veja também link .)
O arquivo ssl_certificate
tem dois requisitos:
-
Para o nginx (e muitos outros serviços), ele deve estar no formato textual "codificado pelo PEM", com os cabeçalhos
BEGIN CERTIFICATE
.Às vezes,
.cer
arquivos estão em formato binário. Verifique com um editor de texto; você pode usaropenssl x509 -inform DER < thing.cer > thing.crt
para converter para o formato textual. -
O arquivo de certificado também deve conter a cadeia de certificados intermediários - novamente, abra com um editor de texto (ou use
certtool -i
).Algumas CAs os incluem como arquivos separados, caso em que precisam ser concatenados juntos (primeiro seu certificado, seguido por intermediários).
Como você também obteve os mesmos certificados em um arquivo .p7b, pode ser mais seguro converter esse em um arquivo de certificado PEM:
openssl pkcs7 [-inform DER] -print_certs < thing.p7b > fullchain.crt
O arquivo .crt resultante deve ter tudo necessário.