google chrome - solucion - Error de Chrome NET:: ERR_CERT_AUTHORITY_INVALID en el certificado de autofirmación en LocalHost
net::err_cert_symantec_legacy solucion (3)
Estoy intentando configurar un entorno de desarrollo en mi PC local. Como el sitio web de producción admite HTTPS (¿quién no lo hace en estos días?), Quiero tener esto también en el localhost. Pensé que sería fácil, pero no.
Tengo una instalación de XAMP y configuro todo para poder acceder al sitio web. Sin embargo, cada vez que voy a cualquier página del sitio localmente, recibo la advertencia de Chrome:
NET :: ERR_CERT_AUTHORITY_INVALID
Seguí el siguiente hilo para intentar resolverlo:
Logrando que Chrome acepte un certificado de autofirma local
También creé el certificado con la sección correcta de Nombre alternativo del sujeto (SAN), en base a esto:
https://deliciousbrains.com/https-locally-without-browser-privacy-errors/
Después de eso, generé el archivo CER o P7B y lo importé a Chrome. Reinicié tanto Apache como Chrome.
Puse el certificado en las autoridades de certificación raíz de confianza. De alguna manera, Chrome decidió, sin embargo, colocarlo en las Autoridades de Certificación de Raíz Intermedia ...
Estoy usando Chrome 61, tuve el mismo en 60.
Así que de alguna manera no puedo instalar un certificado autofirmado y sigo recibiendo esta advertencia que básicamente hace que el desarrollo en localhost sea imposible ...
Entiendo que esta auto-firma no es exactamente confiable, pero ¿debe haber una manera de desarrollarse sin conexión? ¿No tiene sentido que tengamos que crear sitios web en línea de ahora en adelante? ...
¿Algunas ideas?
Aquí están mis instrucciones usando la herramienta KeyStore Explorer.
Las 2 cosas que anteriormente faltaba cuando creé el certificado eran:
- AKID (identificador de clave de autoridad): seleccione el mismo "CN =" que utilizó al crearlo.
- Agregar en la opción "Restricciones básicas" (no seleccionar "es una CA")
Sin esas 2 cosas, Chrome emitirá advertencias / errores incluso cuando haya instalado el certificado autofirmado en su almacén MS-CAPI PKI Trust (como una "Autoridad de Raíz de Confianza").
Aquí están los pasos que he usado.
- Instrucciones utilizando KSE (KeyStore Explorer)
- Crear un JKS
- Creación de un certificado autofirmado
- Abrir KeyStore Explorer
- Archivo | Nuevo | JKS | DE ACUERDO
- Cree una contraseña para su archivo JKS
- Archivo | Guardar como ... | Ingresa tu contraseña
- Introduzca el nombre del archivo | DE ACUERDO
- Herramientas | Generar par de claves
- Seleccionar algoritmo y tamaño de clave (es decir, 2048) | DE ACUERDO
- Seleccione el período de validez (es decir, 5 años)
- Seleccionar nombre (icono de libro) | Introduzca en los campos de Nombre | DE ACUERDO
- Es decir, "CN = localhost ..."
- Agregar extensiones (muy importante), esto determina qué tipo de certificado será y cómo se puede usar. Este ejemplo será para un certificado de servidor estándar con SSL.
- Añadir en el elemento Uso de clave
- Agregar en la casilla de verificación Opciones de firma digital y cifrado clave
- Añadir en las opciones de EKU (Uso de clave extendida)
- Seleccione ambas opciones:
- Autenticación de cliente web TLS
- Autenticación del servidor web TLS
- Añadir en las SAN (nombre alternativo del sujeto)
- Agregue todos los nombres DNS y direcciones IP necesarios (si corresponde) para los cuales se usará este servidor. (repita para todos los valores deseados) (ej. 127.0.0.1 y localhost (o)
- Se verá algo así cuando esté hecho
- Cuando haya terminado, verá todos los campos con los OID (identificadores de objetos) listados | Ok | DE ACUERDO
- Añadir en el AKID (identificador de clave de autoridad)
- Añadir Extensiones "+"
- Añadir tipo de extensión | Identificador de clave de autoridad
- Seleccione el Emisor de certificados de autoridad de la CN que creó anteriormente (.eg "CN = localhost ...") | DE ACUERDO
- Agregue un "Restricciones básicas" (NO marque "El sujeto es una CA")
- Cuando hayas terminado, verás estos listados: pulsa "OK"
- Nota: las restricciones básicas y AKID (identificador de clave de autoridad) son necesarios para que el navegador Chrome valide el certificado autofirmado como un certificado de confianza.
- De lo contrario, verá mensajes de advertencia o de error incluso después de haber agregado este certificado, explícitamente, a sus certificados de Raíz de confianza MS-CAPI.
- Ingrese el alias del nombre del par de llaves que desea usar
- Ingrese la contraseña del par de llaves privado
- * Nota: esta contraseña DEBE ser la misma que la contraseña del almacén de claves del archivo JKS o Java puede fallar de manera silenciosa al intentar usar este certificado.
- Debería ver un mensaje que indica el éxito. | DE ACUERDO
- A continuación, guarde el archivo | Salvar
Arreglé mi mismo problema exactamente después de this .
El problema parecía estar en la forma en que se creó el certificado.
El código de abajo es del sitio anterior.
#!/usr/bin/env bash
mkdir ~/ssl/
openssl genrsa -des3 -out ~/ssl/rootCA.key 2048
openssl req -x509 -new -nodes -key ~/ssl/rootCA.key -sha256 -days 1024 -out ~/ssl/rootCA.pem
#!/usr/bin/env bash
sudo openssl req -new -sha256 -nodes -out server.csr -newkey rsa:2048 -keyout server.key -config <( cat server.csr.cnf )
sudo openssl x509 -req -in server.csr -CA ~/ssl/rootCA.pem -CAkey ~/ssl/rootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extfile v3.ext
archivo server.csr.cnf
[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn
[dn]
C=US
ST=New York
L=Rochester
O=End Point
OU=Testing Domain
emailAddress=your-administrative-address@your-awesome-existing-domain.com
CN = localhost
v3.ext archivo
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
Hay una gran utilidad GUI basada en java que uso para crear y manipular todo lo que se llama PKI llamado KeyStore Explorer. Mucho más fácil que todas las opciones de línea de comandos: