usar servidor generar crear con como certificado openssl csr

servidor - ¿Cómo firmar la CSR de un cliente con openssl?



generar request con openssl (1)

Me falta algo básico y obvio sobre la firma de la CSR de un cliente con el comando openssl.

Tengo (simulé) dos organizaciones, una es la organización de la autoridad de certificación (existe en California) y la otra es la organización cliente que se encuentra en el estado de WA.

Creé la autoridad de certificación en un sistema Linux con el comando openssl siguiendo estos pasos. http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with-openssl.php

Tengo dos archivos ahora 1. cakey.pem que contiene la clave privada de CA. Este privado también está asociado con una frase de contraseña. 2. cacert.pem que contiene el certificado autofirmado de CA

Luego, quiero firmar todas las CSR de los clientes. Un cliente del estado de Washington me envía un archivo client-csr.pem. Estoy leyendo esta página de manual sobre la firma de CSR y los ejemplos al final. http://www.openssl.org/docs/apps/ca.html

El comando que estoy tratando y el mensaje de error son los siguientes: ejecuto estos comandos en el sistema de la CA, el mismo sistema donde creé cakey.pem (clave privada de CA) y cacert.pem (certificado autofirmado de CA)

$ openssl ca -in demoCA/csrs/client-csr.pem -out client-cert.pem Using configuration from /usr/lib/ssl/openssl.cnf Enter pass phrase for ./demoCA/private/cakey.pem: Check that the request matches the signature Signature ok The stateOrProvinceName field needed to be the same in the CA certificate (California) and the request (WA)

La pregunta es por qué el nombre de estado debe ser el mismo tanto para el certificado de CA como para el cliente-CSR.

El cliente NO está en "California" y, por lo tanto, cuando crean una CSR, ponen su propio nombre de estado (WA). Como autoridad de certificación, he verificado que el cliente está efectivamente en WA y que el archivo CSR realmente proviene de ellos. Quiero firmar este CSR y devolver un certificado al cliente.


Resuelto Gracias dbasic.

En el sistema de CA donde tiene lugar la actividad de firma, haga una copia de /etc/ssl/openssl.conf y modifíquela y cree un nuevo archivo de configuración. Usa esa copia modificada cuando firmes.

cp /etc/ssl/openssl.cnf ./openssl-for-signing-csrs.cnf

Y modifique ''countryName'', stateOrProvinceName o ''organizationName'' a ''suministrado''. Esto indica que el certificado debe usar los valores de los CSR y no debe intentar coincidir con el certificado (uno intentaría "emparejar" solo para la autofirma, el valor predeterminado openssl.cnf parece haberse hecho para auto-firmar y no para una CA)

80,82c80,82 < countryName = match < stateOrProvinceName = match < organizationName = match --- > countryName = supplied > stateOrProvinceName = supplied > organizationName = supplied