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.crt
com 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 é
- sua chave privada
- o certificado raiz, que é igual para todos que usam a mesma CA (é isso que seu ca.crt parece ser)
- a/alguns certificados intermediários, geralmente encontrados no site da CA
- 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
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
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
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
Comando para criar chave privada do servidor e assinar solicitação
openssl req -new -nodes -newkey rsa:2048 -keyout serverPrivateKey.key -out serverSignRequest.csr
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