google chrome - validar - Certificado SSL autofirmado no válido: "Falta el nombre alternativo del sujeto"
validar certificado google chrome (7)
La siguiente solución funcionó para mí en Chrome 65 ( ref ) -
Cree un archivo de configuración de OpenSSL (ejemplo: req.cnf)
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = www.company.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.company.com
DNS.2 = company.com
DNS.3 = company.net
Cree el certificado haciendo referencia a este archivo de configuración
openssl req -x509 -nodes -days 730 -newkey rsa:2048 /
-keyout cert.key -out cert.pem -config req.cnf -sha256
Recientemente, Chrome dejó de funcionar con mis certificados SSL autofirmados y cree que son inseguros.
Cuando miro el
DevTools | Security
en
DevTools | Security
Pestaña de
DevTools | Security
, puedo ver que dice
Falta el nombre alternativo del sujeto El certificado de este sitio no contiene una extensión de nombre alternativo del sujeto que contenga un nombre de dominio o una dirección IP.
Error de certificado Hay problemas con la cadena de certificados del sitio (net :: ERR_CERT_COMMON_NAME_INVALID).
¿Cómo puedo arreglar esto?
Para solucionar esto, debe proporcionar un parámetro adicional a
openssl
cuando cree el certificado, básicamente
-sha256 -extfile v3.ext
donde
v3.ext
es un archivo así, con
%%DOMAIN%%
reemplazado con el mismo nombre que usa como su
Common Name
.
Más información
here
y
por aquí
.
Tenga en cuenta que normalmente establecería el
Common Name
y
%%DOMAIN%%
en el dominio para el que intenta generar un certificado.
Entonces, si fuera
www.mysupersite.com
, lo
www.mysupersite.com
para ambos.
v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = %%DOMAIN%%
Nota: las secuencias de comandos que abordan este problema y crean certificados SSL totalmente confiables para su uso en Chrome, Safari y desde clientes Java se pueden encontrar aquí
Otra nota : si todo lo que intenta hacer es evitar que Chrome arroje errores al ver un certificado autofirmado, puede decirle a Chrome que ignore todos los errores SSL para TODOS los sitios al iniciarlo con una opción especial de línea de comandos, como se detalla aquí en SuperUser
Pude deshacerme de (net :: ERR_CERT_AUTHORITY_INVALID) cambiando el valor DNS.1 del archivo v3.ext
[alt_names] DNS.1 = domainname.com
Cambie domainname.com con su propio dominio.
Simplemente uso el parámetro
-subj
agregando la dirección IP de la máquina.
Así resuelto con un solo comando.
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -sha256 -subj ''/CN=my-domain.com/subjectAltName=DNS.1=192.168.0.222/'' -keyout my-domain.key -out my-domain.crt
Puede agregar otros atributos como C, ST, L, O, OU, emailAddress para generar certificados sin que se le solicite.
en MAC a partir de la versión 67.0.3396.99 de Chrome, mi certificado autofirmado dejó de funcionar.
La regeneración con todo lo escrito aquí no funcionó.
ACTUALIZAR
Tuve la oportunidad de confirmar que mi enfoque funciona hoy :). Si no funciona para usted, asegúrese de estar utilizando este enfoque
v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = <specify-the-same-common-name-that-you-used-while-generating-csr-in-the-last-step>
$
copiado desde aquí https://ksearch.wordpress.com/2017/08/22/generate-and-import-a-self-signed-ssl-certificate-on-mac-osx-sierra/
ACTUALIZACIÓN FINAL
finalmente pude ver la seguridad verde solo cuando eliminé mi certificado del sistema y lo agregué al llavero local . (si hay uno, déjelo primero). No estoy seguro de si es importante, pero en mi caso descargué el certificado a través de Chrome y verifiqué que la fecha de creación es hoy, por lo que es la que acabo de crear.
Espero que sea útil para que alguien pase como un día en él.
¡Nunca actualices Chrome!
Creé un script bash para que sea más fácil generar certificados TLS autofirmados que sean válidos en Chrome.
Después de instalar los certificados, asegúrese de reiniciar Chrome (
chrome://restart
).
Probado en
Chrome 65.x
todavía funciona.
Otra herramienta (mucho más robusta) que vale la pena consultar es el
cfssl
herramientas
cfssl
de CloudFlare:
-
Haga una copia de su configuración de OpenSSL en su directorio de inicio:
cp /System/Library/OpenSSL/openssl.cnf ~/openssl-temp.cnf
o en Linux:
cp /etc/ssl/openssl.cnf ~/openssl-temp.cnf
-
Agregue el nombre alternativo del sujeto a
openssl-temp.cnf
, en[v3_ca]
:[ v3_ca ] subjectAltName = DNS:localhost
Reemplace
localhost
por el dominio para el que desea generar ese certificado. -
Generar certificado:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 / -config ~/openssl-temp.cnf -keyout /path/to/your.key -out /path/to/your.crt
Luego puede eliminar
openssl-temp.cnf