Ya no tienes que indagar más por internet ya que estás al sitio exacto, tenemos la solución que buscas sin problemas.
Solución:
El certificado autofirmado tendrá campos de emisor y asunto idénticos, pero a) esto no está garantizado, y b) lo contrario no lo está. true. El hecho de que los campos tengan el mismo valor no significa que el certificado esté autofirmado.
Estos son los resultados de uno de nuestros certificados raíz internos (root-ca.crt) e intermedios (ca.crt):
$ openssl x509 -subject -issuer -noout -in root-ca.crt
subject= /C=DE/ST=Berlin/L=Berlin/O=classmarkets GmbH/CN=classmarkets CA
issuer= /C=DE/ST=Berlin/L=Berlin/O=classmarkets GmbH/CN=classmarkets CA
$ openssl x509 -subject -issuer -noout -in ca.crt
subject= /CN=classmarkets CA/C=DE/L=Berlin/O=classmarkets GmbH/ST=Berlin
issuer= /C=DE/ST=Berlin/L=Berlin/O=classmarkets GmbH/CN=classmarkets CA
Puede ver que los campos son los mismos para ambos certificados, aunque ca.crt haya sido firmado por root-ca.crt:
$ openssl x509 -noout -text -in ca.crt | grep -A1 'Key Identifier'
X509v3 Authority Key Identifier:
keyid:A2:2D:AF:A0:D2:64:DF:30:F1:72:39:AC:21:AF:45:D6:D4:12:19:94
--
X509v3 Subject Key Identifier:
30:B0:6B:B5:56:9A:95:7C:31:4B:B2:65:95:0D:F9:EE:E8:3D:3A:C9
$ openssl x509 -noout -text -in root-ca.crt | grep -A1 'Key Identifier'
X509v3 Subject Key Identifier:
A2:2D:AF:A0:D2:64:DF:30:F1:72:39:AC:21:AF:45:D6:D4:12:19:94
Nótese la ausencia del Authority Key Identifier
en raíz-ca.crt.
RFC3280 establece en la sección 4.2.1.1 (énfasis mío):
El campo keyIdentifier de la extensión AuthorityKeyIdentifier DEBE incluirse en todos los certificados generados por las CA conformes para facilitar la construcción de la ruta de certificación. Hay una excepción;
donde una CA distribuye su público key en forma de un certificado “autofirmado”, la autoridad key el identificador PUEDE omitirse. La firma en un certificado autofirmado se genera con el privado
key asociado con el sujeto del certificado público key. (Esto prueba que el emisor posee tanto el derecho público como el privado) keys.)
En este caso, el sujeto y la autoridad key los identificadores serían idénticospero solo el tema key se necesita un identificador para la construcción de la ruta de certificación.
Entonces me parece que el Authority
y Subject Key
Los identificadores son un indicador mucho mejor para los certificados autofirmados que el Issuer
y Subject
los campos. Para un certificado autofirmado, el Authority Key Identifier
estará ausente o tendrá el mismo valor que el Subject Key Identifier
.
Sí, lo es true. Cuando el certificado es autofirmado, entonces editor y Asunto campo contiene el mismo valor. Además, solo habrá este certificado en la ruta del certificado.
La respuesta de @Vilican es técnicamente correcta y debería hacer el trabajo la mayor parte del tiempo. Pero quería saber si un certificado que estaba examinando (no un sitio web en particular) se usaba como un certificado autofirmado o era un certificado de CA.
Lo que descubrí es que los certificados Root CA válidos tienen el mismo emisor y sujeto. También Extensions
-> Certificate Basic Constraints
indica que se trata de una CA y el número de CA intermedias permitidas para ser firmadas por esta.
Mientras que los certificados autofirmados se utilizan para proteger un sitio web usualmente son no marcados como CA también tienen un nombre DNS como CN
en Subject
. Y/o tener una lista de nombres DNS/direcciones IP permitidas bajo Extensions
-> Certificate subject alt name
.
Acuérdate de que tienes la capacidad de parafrasear tu experiencia .