Como construir uma cadeia de certificados para ServerHello

Como construir uma cadeia de certificados para ServerHello

Tenho tentado montar uma cadeia de certificados. Tenho a chave privada ( privatekey.pem) e o CSR ( csr.pem) que enviei à Autoridade de Certificação/CA.

Peguei o certificado da CA e coloquei o conteúdo em um arquivo ( ca.crt). Começa ca.crtcom uma -----BEGIN CERTIFICATE-----linha e depois o hash. Ainda preciso da cadeia de certificados e olhando o exemplo da cadeia de certificados aquihttp://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert

Presumo que o que tenho privatekey.pemé o certificado raiz (certo?) E ca.crté o certificado intermediário 1 na cadeia de amostra nesse link. Se for esse o caso, como/onde obtenho o outro certificado intermediário? Se não entendi isso, o que ou como obtenho/gero o pedido?

Responder1

Você parece estar misturando vários aspectos aqui. O que você precisa para obter o resultado final é

  1. sua chave privada
  2. o certificado raiz, que é igual para todos que usam a mesma CA (é isso que seu ca.crt parece ser)
  3. a/alguns certificados intermediários, geralmente encontrados no site da CA
  4. o resultado do CSR enviado, que então será o seu certificado.

2-4 constituem a cadeia de certificados.

Responder2

Adron,

o privatekey.pem é a chave privada do certificado que você solicitou da CA.

o certificado ca raiz será o certificado superior da PKI específica que emitiu seu certificado e será um certificado autoassinado.

os certificados de ca intermediários são de sub-ca abaixo da CA raiz.

por exemplo, example.com tem uma CA raiz chamada exampleRootCA e uma sub CA chamada exampleSubCA.

exampleSubCA emite um certificado SSL AdronSSL

sua cadeia de certificados será AdronSSL -> exampleSubCA -> exampleRootCA

espero que isto ajude

Responder3

Os comandos 1 a 5 abaixo ajudam na criação da cadeia de certificados

  1. Comando para criar chave privada e certificado autoassinado do RootCA

    openssl req -new -nodes -newkey rsa:2048 -sha256 -days 100 -keyout rootPrivateKey.key -x509 -out rootCACertificate.pem

Nota: Comando para converter o Certificado RootCA do formato .crt para .pem

openssl x509 -outform pem -in rootCACertificate.pem -out rootCACertificate.crt
  1. Comando para criar a chave privada da CA intermediária e sua solicitação de assinatura de certificado

    openssl req -new -nodes -newkey rsa:2048 -keyout intermediárioCAPrivateKey.key -out intermediárioCACertificateSignRequest.csr

  2. Comando para criar certificado de CA intermediário assinado por RootCA

    openssl x509 -req -sha256 -dias 100 -in intermediárioCACertificateSignRequest.csr -CA rootCACertificate.pem -CAkey rootPrivateKey.key -CAcreateserial -extfile domínio.ext -out intermediárioCACertificate.crt

O conteúdo de domain.ext é fornecido abaixo:

subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
  1. Comando para criar chave privada do servidor e assinar solicitação

    openssl req -new -nodes -newkey rsa:2048 -keyout serverPrivateKey.key -out serverSignRequest.csr

  2. Comando para criar certificado de servidor assinado por IntermediateCA

    openssl x509 -req -sha256 -dias 100 -in serverSignRequest.csr -CA intermediárioCACertificate.crt -CAkey intermediárioCAPrivateKey.key -CAcreateserial -extfile domínio.ext -out serverCertificate.crt

O conteúdo de domain.ext é fornecido abaixo:

basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost

Nota: Comando para converter a Chave Privada do Servidor no formato .key para o formato .PEM.

openssl rsa -in serverPrivateKey.key -out serverPrivateKey.pem

Aqui, a CA raiz é autoassinada. Assim, os navegadores não o reconhecem. Para garantir o reconhecimento do navegador, abra IE -> Ferramentas-> Opções da Internet -> Conteúdo -> Importe a CA raiz na seção de autoridade de certificação confiável e a CA intermediária na seção de autoridade de certificação intermediária.

O certificado do servidor e a chave privada do servidor são mantidos no servidor que você executa para servir as páginas da web.

Depois de solicitar páginas da web, você poderá descobrir que o certificado do servidor é validado na cadeia de certificados

informação relacionada