He estado intentando armar una cadena de certificados. Tengo la clave privada ( privatekey.pem
) y la CSR ( csr.pem
) que envié a la Autoridad certificadora/CA.
Tomé el certificado de la CA y puse el contenido en un archivo ( ca.crt
). Comienza ca.crt
con una -----BEGIN CERTIFICATE-----
línea y luego el material hash. Sin embargo, todavía necesito la cadena de certificados y miro el ejemplo de la cadena de certificados aquí.http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert
Supongo que lo que tengo en privatekey.pem
es el certificado raíz (¿verdad?) y ca.crt
es el certificado intermedio 1 en la cadena de muestra en ese enlace. Si ese es el caso, ¿cómo/dónde obtengo el otro certificado intermedio? Si no entiendo bien esto, ¿qué o cómo obtengo/genero el pedido?
Respuesta1
Parece que estás mezclando varios aspectos aquí. Lo que necesitas para obtener el resultado final es
- tu clave privada
- el certificado raíz, que es igual para todos los que usan la misma CA (eso es lo que parece ser su ca.crt)
- a/algunos certificados intermedios, que generalmente se encuentran en el sitio de la CA
- el resultado del CSR presentado, que luego es su certificado.
2-4 forman la cadena de certificados.
Respuesta2
Adrón,
privatekey.pem es la clave privada para el certificado que solicitó a la CA.
el certificado raíz ca será el certificado de la parte superior de la PKI particular que emitió su certificado y será un certificado autofirmado.
los certificados de ca intermedios son de sub-ca debajo de la CA raíz.
por ejemplo, example.com tiene una CA raíz llamada exampleRootCA y una subCA llamada exampleSubCA.
ejemploSubCA le emite un certificado SSL AdronSSL
su cadena de certificados será AdronSSL -> exampleSubCA -> exampleRootCA
espero que esto ayude
Respuesta3
Los siguientes comandos del 1 al 5 ayudan a crear la cadena de certificados
Comando para crear la clave privada y el certificado autofirmado de RootCA
openssl req -new -nodes -newkey rsa:2048 -sha256 -days 100 -keyout rootPrivateKey.key -x509 -out rootCACertificate.pem
Nota: Comando para convertir el certificado RootCA del formato .crt al .pem
openssl x509 -outform pem -in rootCACertificate.pem -out rootCACertificate.crt
Comando para crear la clave privada de la CA intermedia y su solicitud de firma de certificado
openssl req -new -nodes -newkey rsa:2048 -keyout intermedioCAPrivateKey.key -out intermedioCACertificateSignRequest.csr
Comando para crear un certificado de CA intermedia firmado por RootCA
openssl x509 -req -sha256 -días 100 -in middleCACertificateSignRequest.csr -CA rootCACertificate.pem -CAkey rootPrivateKey.key -CAcreateserial -extfile domain.ext -out middleCACertificate.crt
El contenido de domain.ext se proporciona a continuación:
subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer basicConstraints = critical, CA:true keyUsage = critical, digitalSignature, cRLSign, keyCertSign
Comando para crear la clave privada del servidor y firmar la solicitud
openssl req -new -nodes -newkey rsa:2048 -keyout serverPrivateKey.key -out serverSignRequest.csr
Comando para crear el certificado del servidor firmado por IntermediateCA
openssl x509 -req -sha256 -días 100 -in serverSignRequest.csr -CA intermedioCACertificate.crt -CAkey intermedioCAPrivateKey.key -CAcreateserial -extfile domain.ext -out serverCertificate.crt
El contenido de domain.ext se proporciona a continuación:
basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment sujetoAltName = @alt_names [ alt_names ] DNS.1 = localhost
Nota: Comando para convertir la clave privada del servidor en formato .key al formato .PEM.
openssl rsa -in serverPrivateKey.key -out serverPrivateKey.pem
Aquí la CA raíz está autofirmada. Por tanto, los navegadores no lo reconocen. Para garantizar el reconocimiento del navegador, abra IE ->Herramientas->Opciones de Internet -> Contenido -> Importar la CA raíz en la sección Autoridad de certificación confiable y la CA intermedia en la sección Autoridad de certificación intermedia.
El certificado del servidor y la clave privada del servidor se guardan en el servidor que ejecuta para servir las páginas web.
Una vez que solicite páginas web, podrá encontrar que el certificado del servidor se valida con la cadena de certificados.