¿Cómo crear mi propia cadena de certificados?
Me gustaría configurar mi propio OCSP Responder (sólo para fines de prueba). Esto requiere que tenga un certificado raíz y unos cuantos certificados generados a partir de él.
He conseguido crear un certificado autofirmado usando openssl. Quiero utilizarlo como certificado raíz. El siguiente paso sería crear los certificados derivados. Sin embargo, no puedo encontrar la documentación sobre cómo hacer esto. ¿Alguien sabe dónde puedo encontrar esta información?
Editar En retrospectiva, mi pregunta aún no está completamente contestada. Para aclarar el problema representaré mi cadena de certificados así
ROOT -> A -> B -> C -> …
Actualmente puedo crear los certificados ROOT y A, pero no he encontrado cómo hacer una cadena más larga.
Mi comando para crear el certificado raíz es:
openssl req -new -newkey rsa:1024 -nodes -out ca.csr -keyout ca.key
openssl x509 -trustout -signkey ca.key -days 365 -req -in ca.csr -out ca.pem
El certificado A se crea así:
openssl genrsa -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl ca -in client.csr -out client.cer
Este comando depende implícitamente del certificado raíz, para el que encuentra la información necesaria en el fichero de configuración openssl.
El certificado B, sin embargo, sólo debe depender del A, que no está registrado en el archivo de configuración, por lo que el comando anterior no funcionará aquí.
¿Qué línea de comandos debo utilizar para crear los certificados B y posteriores?
Edición He encontrado la respuesta en este artículo . El certificado B (cadena A -> B) se puede crear con estos dos comandos:
# Create a certificate request
openssl req -new -keyout B.key -out B.request -days 365
# Create and sign the certificate
openssl ca -policy policy_anything -keyfile A.key -cert A.pem -out B.pem -infiles B.request
También he cambiado el archivo openssl.cnf:
[usr_cert]
basicConstraints=CA:TRUE # prev value was FALSE
Este enfoque parece funcionar bien.