Seguí este tutorial para crear certificados SSL firmados en Windows con fines de desarrollo, y funcionó muy bien para uno de mis dominios (estoy usando el archivo hosts para simular dns). Luego pensé que tengo muchos subdominios, y sería un fastidio crear un certificado para cada uno de ellos. Así que intenté crear un certificado usando comodines en el Common
campo como se sugiere en algunas de las respuestas en serverfault. Me gusta esto:
Common Name: *.myserver.net/CN=myserver.net
Sin embargo, después de importar este certificado a Trusted Root Certification Authority, NET::ERR_CERT_COMMON_NAME_INVALID
aparece un error en Chrome, para el dominio principal y todos sus submains, por ejemplo: https://sub1.myserver.net
y https://myserver.net
.
Este servidor no pudo probar que es myserver.net; su certificado de seguridad es de * .myserver.net / CN = myserver.net.
Esto puede deberse a una configuración incorrecta o un atacante que intercepta su conexión.
¿Hay algún problema en el campo Nombre común que esté causando este error?
fuente
Respuestas:
Como dijo Rahul, es un error común de Chrome y OSX. Tuve problemas similares en el pasado. De hecho, finalmente me cansé de hacer 2 [sí, sé que no son muchos] clics adicionales al probar un sitio local para el trabajo.
En cuanto a una posible solución a este problema [usando Windows], usaría una de las muchas utilidades de certificado autofirmado disponibles .
Pasos recomendados:
NOTA: El paso 3 resolverá el problema experimentado una vez que Google solucione el error ... considerando que el tiempo ha sido obsoleto, no hay ETA en el futuro previsible. **
Por mucho que prefiera usar Chrome para desarrollo, me he encontrado en Firefox Developer Edition últimamente. que no tiene este problema.
Espero que esto ayude :)
fuente
Chrome 58 ha dejado de admitir certificados sin nombres alternativos del sujeto .
En el futuro, esta podría ser otra razón por la que se encuentre con este error.
fuente
Una solución alternativa es agregar los nombres de dominio que usa como "subjectAltName" (X509v3 Subject Alternative Name). Esto se puede hacer cambiando la configuración de OpenSSL (
/etc/ssl/openssl.cnf
en Linux) y modificando lav3_req
sección para que se vea así:Con esto en su lugar, no olvide usar el
-extensions v3_req
interruptor cuando genere su nuevo certificado. (consulte también ¿Cómo puedo generar un certificado autofirmado con SubjectAltName usando OpenSSL? )fuente
subjectAltName = @alt_names
totalmente resuelto mi problema. Sin embargo, había vinculado previamente la identidad DNS a mi dominio proporcionándolaCN=*.example.com
. ConfiguraciónDNS.1 = example.com
eDNS.2 = *.example.com
hizo el truco. Lo extraño (para mí) fue que todo funcionó hasta ~ 2017-03-17 y se detuvo un día después (había ejecutado un gran lote de udates de Windows). Sin embargo, nada se rompió para mí en Linux, esto fue solo Chrome , Firefox en Windows .subjectAltName
de Chrome 58, que actualmente se encuentra en versión beta. Esto me fastidió porque no solo no había visto nada al respecto, sino que el nombre del error es muy engañoso (¡no es el nombre común el que no es válido!). Yo era lo opuesto a usted; solo sucedió en Linux para mí, así que pasé horas tratando de arreglar mi tienda de certificados local allí.58.0.3029.19 beta (64-bit)
lo es. He regenerado el árbol de certificados con correctassubjectAltName
-s y todo funciona ahora. Y estoy de acuerdo, el mensaje de error es muy engañoso, ya que noCommonName
es válido. Si el mensaje decía "Falta un certificado adecuadosubjectAltName
" , todo el mundo estaría mucho más feliz.Crear
openssl.conf
archivo:Ejecute este comando:
Salida de archivos
app.crt
yapp.key
trabajo para mí.fuente
DNS.1 = *.myserver.net
. Debería serDNS.2 = *.myserver.net
. Funciona bien para mí.Su comodín
*.example.com
no no cubre el dominio raízexample.com
, pero cubrirá cualquier variante en un sub -domain comowww.example.com
otest.example.com
El método preferido es establecer nombres alternativos del sujeto como en la respuesta de Fabián, pero tenga en cuenta que Chrome actualmente requiere que el nombre común se incluya además como uno de los nombres alternativos del sujeto (como se demuestra correctamente en su respuesta). Recientemente descubrí este problema porque tenía el nombre común
example.com
con SANwww.example.com
ytest.example.com
, pero recibí laNET::ERR_CERT_COMMON_NAME_INVALID
advertencia de Chrome. Tuve que generar una nueva solicitud de firma de certificado conexample.com
el nombre común y una de las SAN. Entonces Chrome confió plenamente en el certificado. Y no olvide importar el certificado raíz a Chrome como autoridad confiable para identificar sitios web.fuente
DNS.1 = example.com
yDNS.2 = *.example.com
menos[alt_names]
enopenssl.cnf
.Creo que puede ser un error en Chrome. Hubo un problema similar hace mucho tiempo: vea esto.
Pruebe en un navegador diferente. Creo que debería funcionar bien.
fuente
Para todos los que se encuentren con esto y quieran aceptar el riesgo de probarlo, hay una solución: vaya al modo incógnito en Chrome y podrá abrir "Avanzado" y hacer clic en "Proceder a some.url".
Esto puede ser útil si necesita consultar algún sitio web que está manteniendo usted mismo y simplemente probando como desarrollador (y cuando aún no tiene configurado el certificado de desarrollo adecuado).
Por supuesto, esto NO ES PARA PERSONAS que utilizan un sitio web en producción donde este error indica que hay un problema con la seguridad del sitio web.
fuente
Si estás cansado de este error. Puede hacer que Chrome no actúe así. No digo que sea la mejor manera, solo digo que es una manera.
Encontré esta información en la página de soporte de Symantec: https://support.symantec.com/en_US/article.TECH240507.html
fuente
Las respuestas proporcionadas no funcionaron para mí (Chrome o Firefox) mientras creaba PWA para desarrollo y pruebas locales. ¡NO UTILIZAR PARA LA PRODUCCIÓN! Pude usar lo siguiente:
<your ip here, e.g. 192.168.1.12>
const https = require('https'); const fs = require('fs');
a la parte superior del archivo server.jsreturn app.listen(PORT, () => { ... });
en la parte inferior del archivo server.jshttps.createServer({ key: fs.readFileSync('./cert.key','utf8'), cert: fs.readFileSync('./cert.crt','utf8'), requestCert: false, rejectUnauthorized: false }, app).listen(PORT)
No tengo más errores en Chrome o Firefox
fuente