para obtener instalar importar google descargar como chrome certificados certificado autofirmado agregar google-chrome ssl certificate self-signed

google-chrome - obtener - instalar certificado.cer en chrome



Obtención de que Chrome acepte el certificado localhost autofirmado (30)

He creado un certificado SSL autofirmado para el CN ​​localhost. Firefox acepta este certificado luego de quejarse inicialmente, como se esperaba. Chrome e IE, sin embargo, se niegan a aceptarlo, incluso después de agregar el certificado al almacén de certificados del sistema en Trusted Roots. Aunque el certificado aparece correctamente instalado cuando hago clic en "Ver información del certificado" en la ventana emergente HTTPS de Chrome, aún insiste en que no se puede confiar en el certificado.

¿Qué se supone que debo hacer para que Chrome acepte el certificado y deje de quejarme?


¿Qué se supone que debo hacer para que Chrome acepte el certificado y deje de quejarme?

Debes crear una PKI con;

1) Root CA autofirmado.
2) certificado sub / intermedio [firmado por Root CA].
3) certificado de entidad normal / final [firmado por Root CA o sub-CA] (commonName o subjectAltName (SAN) como localhost) (también incluye localhost as el URI en SAN).
4) Importe / instale esa CA raíz en su sistema operativo Windows (porque mencionó IE. Google Chrome está utilizando los mismos recursos mientras busca la cadena de certificados - https://www.chromium.org/Home/chromium-security/root-ca-policy ) como ''Autoridades de certificación de raíz de confianza''.
5) Instale ese certificado de entidad final como su certificado de servidor web, y deja de quejarse de ese mensaje de error.

Espero que esto ayude.


ACTUALIZACIÓN 11/2017: esta respuesta probablemente no funcione para la mayoría de las versiones más nuevas de Chrome.

ACTUALIZACIÓN 02/2016: Mejores instrucciones para usuarios de Mac se pueden encontrar Here .

  1. En el sitio que desea agregar, haga clic con el botón derecho en el icono de candado rojo en la barra de direcciones:

    1. Haga clic en la pestaña etiquetada Conexión , luego haga clic en Información del certificado

    2. Haga clic en la pestaña Detalles , haga clic en el botón Copiar en archivo .... Esto abrirá el Asistente de exportación de certificados, haga clic en Siguiente para acceder a la pantalla Formato de archivo de exportación .

    3. Elija DER codificado binario X.509 (.CER) , haga clic en Siguiente

    4. Haga clic en Examinar ... y guarde el archivo en su computadora. Nombre algo descriptivo. Haga clic en Siguiente , luego haga clic en Finalizar .

    5. Abra la configuración de Chrome, desplácese hasta la parte inferior y haga clic en Mostrar configuración avanzada ...

    6. En HTTPS / SSL , haga clic en Administrar certificados ...

    7. Haga clic en la pestaña Autoridades de certificación de raíz de confianza , luego haga clic en el botón Importar ... Esto abre el Asistente de importación de certificados. Haga clic en Siguiente para acceder a la pantalla Archivo a importar .

    8. Haga clic en Examinar ... y seleccione el archivo de certificado que guardó anteriormente, luego haga clic en Siguiente .

    9. Seleccione Colocar todos los certificados en la siguiente tienda . La tienda seleccionada debe ser Autoridades de certificación raíz de confianza . Si no lo está, haga clic en Examinar ... y selecciónelo. Haga clic en Siguiente y Finalizar

    10. Haga clic en en la advertencia de seguridad.

    11. Reinicie Chrome.


Linux

Si está utilizando Linux, también puede seguir estas páginas wiki oficiales:

Básicamente:

  • haga clic en el icono de bloqueo con una X,
  • elegir información del certificado
  • ir a la pestaña de detalles
  • Haga clic en Exportar ... (guardar como archivo)

Ahora, el siguiente comando agregará el certificado (donde YOUR_FILE es su archivo exportado):

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YOUR_FILE -i YOUR_FILE

Para listar todos sus certificados, ejecute el siguiente comando:

certutil -d sql:$HOME/.pki/nssdb -L

Si aún así no funciona, este error podría afectarle: Problema 55050: Error de Ubuntu SSL 8179

PS Por favor, también asegúrese de tener libnss3-tools , antes de poder usar los comandos anteriores.

Si no lo tienes, instálalo por:

sudo apt-get install libnss3-tools # on Ubuntu sudo yum install nss-tools # on Fedora, Red Hat, etc.

Como beneficio adicional, puede utilizar los siguientes scripts prácticos:

$ cat add_cert.sh certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n $1 -i $1 $ cat list_cert.sh certutil -d sql:$HOME/.pki/nssdb -L # add ''-h all'' to see all built-in certs $ cat download_cert.sh echo QUIT | openssl s_client -connect $1:443 | sed -ne ''/BEGIN CERT/,/END CERT/p''

Uso:

add_cert.sh [FILE] list_cert.sh download_cert.sh [DOMAIN]

Solución de problemas

  • Ejecuta Chrome con el parámetro --auto-ssl-client-auth

    google-chrome --auto-ssl-client-auth


¿Está seguro de que la dirección en la que se sirve el sitio es la misma que la del certificado? Tuve los mismos problemas con Chrome y un certificado autofirmado, pero al final descubrí que fue increíblemente delicado acerca de la validación del nombre de dominio en el certificado (como debería ser).

Chrome no tiene su propio almacén de certificados y utiliza Windows. Sin embargo, Chrome no proporciona ninguna forma de importar certificados en la tienda, por lo que debería agregarlos a través de IE.

Instalar certificados en Google Chrome

Instalación de certificados en Internet Explorer

También eche un vistazo a esto para un par de enfoques diferentes para crear certificados autofirmados (supongo que está utilizando IIS como no lo ha mencionado).

Cómo crear un certificado autofirmado en IIS 7


Al hacer clic en el pequeño icono de candado tachado junto a la URL, aparecerá un cuadro con este aspecto:

Después de hacer clic en el enlace Información del certificado , verá el siguiente cuadro de diálogo:

Le indica qué almacén de certificados es el correcto, es el almacén de Entidades de certificación de raíz de confianza .

Puede usar uno de los métodos descritos en las otras respuestas para agregar el certificado a esa tienda o usar:

certutil -addstore -user "ROOT" cert.pem

  • ROOT es el nombre interno del almacén de certificados mencionado anteriormente.
  • cert.pem Es el nombre de su certificado autofirmado.

Bajé el proceso de usar lo que bjnord sugirió, que era: Google Chrome, Mac OS X y certificados SSL autofirmados.

Lo que se muestra en el blog no funcionó.

Sin embargo, uno de los comentarios al blog fue de oro:

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain site.crt

Deberá seguir el blog sobre cómo obtener el archivo cert, después de eso, puede usar el comando anterior y debería estar listo.


Como alguien ha señalado, debe reiniciar TODO Chrome, no solo las ventanas del navegador. La forma más rápida de hacerlo es abrir una pestaña para ...

chrome://restart


En la Mac, puede crear un certificado que sea de total confianza para Chrome y Safari a nivel del sistema haciendo lo siguiente:

# create a root authority cert ./create_root_cert_and_key.sh # create a wildcard cert for mysite.com ./create_certificate_for_domain.sh mysite.com # or create a cert for www.mysite.com, no wildcards ./create_certificate_for_domain.sh www.mysite.com www.mysite.com

Lo anterior usa los siguientes scripts, y un archivo de soporte v3.ext , para evitar errores en el nombre alternativo del sujeto

Si desea crear un nuevo certificado autofirmado que sea completamente confiable usando su propia autoridad raíz, puede hacerlo usando estos scripts.

create_root_cert_and_key.sh

#!/usr/bin/env bash openssl genrsa -out rootCA.key 2048 openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

create_certificate_for_domain.sh

#!/usr/bin/env bash if [ -z "$1" ] then echo "Please supply a subdomain to create a certificate for"; echo "e.g. www.mysite.com" exit; fi if [ ! -f rootCA.pem ]; then echo ''Please run "create_root_cert_and_key.sh" first, and try again!'' exit; fi if [ ! -f v3.ext ]; then echo ''Please download the "v3.ext" file and try again!'' exit; fi # Create a new private key if one doesnt exist, or use the xeisting one if it does if [ -f device.key ]; then KEY_OPT="-key" else KEY_OPT="-keyout" fi DOMAIN=$1 COMMON_NAME=${2:-*.$1} SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME" NUM_OF_DAYS=999 openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr cat v3.ext | sed s/%%DOMAIN%%/"$COMMON_NAME"/g > /tmp/__v3.ext openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext # move output files to final filenames mv device.csr "$DOMAIN.csr" cp device.crt "$DOMAIN.crt" # remove temp file rm -f device.crt; echo echo "###########################################################################" echo Done! echo "###########################################################################" echo "To use these files on your server, simply copy both $DOMAIN.csr and" echo "device.key to your webserver, and use like so (if Apache, for example)" echo echo " SSLCertificateFile /path_to_your_files/$DOMAIN.crt" echo " SSLCertificateKeyFile /path_to_your_files/device.key"

v3.ext

authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = %%DOMAIN%%

Un paso más: cómo hacer que los certificados autofirmados sean totalmente confiables en Chrome / Safari

Para permitir que los certificados autofirmados sean COMPLETAMENTE de confianza en Chrome y Safari, debe importar una nueva autoridad de certificación en su Mac. Para hacerlo, siga estas instrucciones o las instrucciones más detalladas sobre este proceso general en el sitio web mitmproxy :

  1. Acceso a llavero abierto
  2. Elija "Sistema" en la lista de "Llaveros"
  3. Elija "Certificados" en la lista "Categoría"
  4. Seleccione "Archivo | Importar elementos ..."
  5. Busque el archivo creado anteriormente, "rootCA.pem", selecciónelo y haga clic en "Abrir"
  6. Seleccione su certificado recién importado en la lista "Certificados".
  7. Haga clic en el botón "i" o haga clic con el botón derecho en su certificado y seleccione "Obtener información"
  8. Expandir la opción "Confianza"
  9. Cambie "Al usar este certificado" a "Confiar siempre"
  10. Cierre el cuadro de diálogo y se le pedirá su contraseña.
  11. Cierre y vuelva a abrir las pestañas que usan su dominio de destino, ¡y se cargará de manera segura!

y como beneficio adicional, si necesita que los clientes de Java confíen en los certificados, puede hacerlo importando sus certificados en el almacén de claves de Java. Tenga en cuenta que esto eliminará el certificado del almacén de claves si ya existe, ya que debe actualizarlo en caso de que las cosas cambien. Por supuesto, solo hace esto para los certificados que se importan.

import_certs_in_current_folder_into_java_keystore.sh

KEYSTORE="$(/usr/libexec/java_home)/jre/lib/security/cacerts"; function running_as_root() { if [ "$EUID" -ne 0 ] then echo "NO" exit fi echo "YES" } function import_certs_to_java_keystore { for crt in *.crt; do echo prepping $crt keytool -delete -storepass changeit -alias alias__${crt} -keystore $KEYSTORE; keytool -import -file $crt -storepass changeit -noprompt --alias alias__${crt} -keystore $KEYSTORE echo done } if [ "$(running_as_root)" == "YES" ] then import_certs_to_java_keystore else echo "This script needs to be run as root!" fi


En la Mac, puedes usar la utilidad Keychain Access para agregar el certificado autofirmado al llavero del sistema, y ​​Chrome lo aceptará. He encontrado las instrucciones paso a paso aquí:

Google Chrome, Mac OS X y certificados SSL autofirmados

Básicamente:

  1. haga doble clic en el icono de candado con una X y arrastre y suelte el icono del certificado en el escritorio,
  2. abrir este archivo (que termina con una extensión .cer); esto abre la aplicación de llavero que le permite aprobar el certificado.

Esto funcionó para mí.Consulte: http://www.robpeck.com/2010/10/google-chrome-mac-os-x-and-self-signed-ssl-certificates/#.Vcy8_ZNVhBc

En la barra de direcciones, haga clic en el pequeño candado con la X. Aparecerá una pequeña pantalla de información. Haga clic en el botón que dice "Información del certificado".

Haga clic y arrastre la imagen a su escritorio. Parece un pequeño certificado.

Haga doble clic en él. Esto abrirá la utilidad de acceso de llavero. Ingrese su contraseña para desbloquearla.

Asegúrese de agregar el certificado al llavero del sistema, no al llavero de inicio de sesión. Haga clic en "Confiar siempre", aunque esto no parece hacer nada.

Después de que se ha agregado, haga doble clic en él. Puede que tenga que autenticarse de nuevo.

Expanda la sección "Confianza".

"Cuando se usa este certificado, se establece en" Confiar siempre "


Esto funcionó para mí:

  1. Usando Chrome, acceda a una página en su servidor a través de HTTPS y continúe más allá de la página de advertencia roja (asumiendo que todavía no lo ha hecho).
  2. Abra Chrome Settings > Show advanced settings > HTTPS/SSL > Manage Certificates .
  3. Haga clic en la pestaña Authorities y desplácese hacia abajo para encontrar su certificado debajo del Nombre de la organización que le dio al certificado.
  4. Selecciónelo, haga clic en Editar ( NOTA : en versiones recientes de Chrome, el botón ahora es "Avanzado" en lugar de "Editar"), marque todas las casillas y haga clic en Aceptar. Puede que tenga que reiniciar Chrome.

Deberías obtener el bonito candado verde en tus páginas ahora.

EDITAR: Intenté esto nuevamente en una máquina nueva y el certificado no apareció en la ventana Administrar certificados simplemente continuando desde la página de certificado rojo no confiable. Tuve que hacer lo siguiente:

  1. En la página con el certificado no confiable ( https:// está tachado en rojo), haga clic en el candado> Información del certificado. NOTA: en las versiones más recientes de Chrome, debe abrir Developer Tools > Security y seleccionar View certificate .
  2. Haga clic en la Details tab > Export . Elija PKCS #7, single certificate como el formato de archivo.
  3. Luego siga mis instrucciones originales para acceder a la página Administrar certificados. Haga clic en la Authorities tab > Import y elija el archivo al que exportó el certificado, y asegúrese de elegir PKCS #7, single certificate como tipo de archivo .
  4. Si se le solicita un almacén de certificación, elija Autoridades de certificación raíz de confianza
  5. Marque todas las casillas y haga clic en Aceptar. Reinicie Chrome.

Haga clic en cualquier lugar de la página y escriba una BYPASS_SEQUENCE

" thisisunsafe " es una BYPASS_SEQUENCE para Chrome versión 65

" badidea " Chrome version 62 - 64.

El " danger " solía funcionar en versiones anteriores de Chrome.

No necesita buscar el campo de entrada, simplemente escríbalo. Se siente extraño pero está funcionando.

Lo probé en Mac High Sierra.

Para volver a verificar si lo cambiaron nuevamente, vaya al Código fuente de cromo más reciente

Para buscar BYPASS_SEQUENCE, en este momento se ve así:

var BYPASS_SEQUENCE = window.atob(''dGhpc2lzdW5zYWZl'');

Ahora lo tienen camuflado, pero para ver el BYPASS_SEQUENCE real puede ejecutar la siguiente línea en una consola del navegador.

console.log(window.atob(''dGhpc2lzdW5zYWZl''));


Si está en un Mac y no ve la pestaña de exportación o cómo obtener el certificado, esto funcionó para mí:

  1. Haga clic en el bloqueo antes de https: //
  2. Ir a la pestaña "Conexión"
  3. Haga clic en "Información del certificado"

    Ahora deberías ver esto:

  4. Arrastre ese pequeño ícono de certificado en su escritorio (o en cualquier lugar).

  5. Haga doble clic en el archivo .cer que se descargó, esto debería importarlo a su llavero y abrir el Acceso a Llaves a su lista de certificados.

    En algunos casos, esto es suficiente y ahora puede actualizar la página.

    De otra manera:

  6. Haga doble clic en el certificado recién agregado.
  7. Debajo de la lista desplegable de confianza, cambie la opción "Al usar este certificado" a "Confiar siempre"

Ahora vuelve a cargar la página en cuestión y debería ser resuelto el problema! Espero que esto ayude.

Editar desde Wolph

Para hacer esto un poco más fácil, puede usar el siguiente script ( source ):

  1. Guarde el siguiente script como whitelist_ssl_certificate.ssh :

    #!/usr/bin/env bash -e SERVERNAME=$(echo "$1" | sed -E -e ''s/https?://////'' -e ''s///.*//'') echo "$SERVERNAME" if [[ "$SERVERNAME" =~ .*/..* ]]; then echo "Adding certificate for $SERVERNAME" echo -n | openssl s_client -connect $SERVERNAME:443 | sed -ne ''/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'' | tee /tmp/$SERVERNAME.cert sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" /tmp/$SERVERNAME.cert else echo "Usage: $0 www.site.name" echo "http:// and such will be stripped automatically" fi

  2. Hacer el script ejecutable (desde el shell):

    chmod +x whitelist_ssl_certificate.ssh

  3. Ejecute el script para el dominio que desea (simplemente copie / pegue todo el trabajo de url):

    ./whitelist_ssl_certificate.ssh https://your_website/whatever


2017-06-27 nuevo método:

openssl req / -newkey rsa:2048 / -x509 / -nodes / -keyout yoursite.key / -new / -out yoursite.crt / -subj /CN=yoursite.dev / -reqexts SAN / -extensions SAN / -config <(cat /System/Library/OpenSSL/openssl.cnf / <(printf ''[SAN]/nsubjectAltName=DNS:yoursite.dev'')) / -sha256 / -days 3650

luego, agregue yoursite.crt y yoursite.key a su nginx conf.

desde: https://github.com/webpack/webpack-dev-server/issues/854


ACTUALIZACIÓN PARA CHROME 58+ (PUBLICADO 2017-04-19)

A partir de Chrome 58, la identificación del host con solo commonName se está eliminando . Ver más discusión aquí y bug tracker aquí . En el pasado, subjectAltName se usaba solo para certificados de host múltiple, por lo que es posible que algunas herramientas de CA internas no los incluyan.

Si sus certificados autofirmados funcionaron bien en el pasado pero repentinamente comenzaron a generar errores en Chrome 58, esta es la razón.

Entonces, sea cual sea el método que esté utilizando para generar su certificado autofirmado (o un certificado firmado por una CA autofirmada), asegúrese de que el certificado del servidor contenga un subjectAltName con las entradas / entradas de DNS y / o IP adecuadas, incluso si es solo para un solo host .

Para openssl, esto significa que su configuración de OpenSSL ( /etc/ssl/openssl.cnf en Ubuntu) debe tener algo similar a lo siguiente para un solo host:

[v3_ca] # and/or [v3_req], if you are generating a CSR subjectAltName = DNS:example.com

o para múltiples hosts:

[v3_ca] # and/or [v3_req], if you are generating a CSR subjectAltName = DNS:example.com, DNS:host1.example.com, DNS:*.host2.example.com, IP:10.1.2.3

En el visor de Certificate Subject Alternative Name Chrome (que se ha movido a la pestaña "Seguridad" en F12), debería verlo en la lista de Extensions como Certificate Subject Alternative Name :

EDITAR: la solución temporal a continuación se eliminó según lo previsto en Chrome 66 (lanzado en abril de 2018)

SOLUCIÓN TEMPORAL

Es posible recurrir al antiguo comportamiento de commonName hasta Chrome 65 , usando la siguiente configuración: EnableCommonNameFallbackForLocalAnchors

En Windows , esto se puede configurar en una sola PC usando el siguiente comando de registro (gracias @Meengla):

reg add HKLM/Software/Policies/Google/Chrome /v EnableCommonNameFallbackForLocalAnchors /t REG_DWORD /d 1

En Mac , se puede usar el siguiente comando (gracias @BugsBunny):

defaults write com.google.Chrome EnableCommonNameFallbackForLocalAnchors -bool true

En Linux , cree un archivo de políticas como /etc/opt/chrome/policies/managed/EnableCommonNameFallbackFor‌​LocalAnchors.json con el contenido: { "EnableCommonNameFallbackForLocalAnchors": true } (thanks @seanf)

Puede encontrar más detalles sobre cómo configurar estas políticas para varias plataformas, incluida la configuración a través de GPO de Windows, en la parte superior de la página vinculada, así como en la guía de plantillas de políticas de Chromium y en la Guía de administradores .

Una vez más, estas soluciones son temporales hasta la versión 65!


ACTUALIZADO abril 3/2018

Recomendado por el equipo de cromo.

https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins#TOC-Testing-Powerful-Features

Solución rápida súper fácil

Existe una frase de omisión secreta que puede escribirse en la página de errores para que Chrome proceda a pesar del error de seguridad: thisisunsafe (en versiones anteriores de Chrome, escriba badidea e incluso antes, peligro ). NO USE ESTO A MENOS QUE ENTIENDA EXACTAMENTE POR QUÉ LO NECESITA!

Fuente:

https://chromium.googlesource.com/chromium/src/+/d8fc089b62cd4f8d907acff6fb3f5ff58f168697%5E%21/

(TENGA window.atob(''dGhpc2lzdW5zYWZl'') CUENTA que window.atob(''dGhpc2lzdW5zYWZl'') resuelve en thisisunsafe )

La última versión de la fuente es @ https://chromium.googlesource.com/chromium/src/+/refs/heads/master/components/security_interstitials/core/browser/resources/interstitial_large.js y la función window.atob puede Se ejecutará en una consola JS.

Para obtener información sobre por qué el equipo de Chrome cambió la frase de omisión (la primera vez):

https://bugs.chromium.org/p/chromium/issues/detail?id=581189

Si todo lo demás falla

Para una sola vez rápida si la opción "Continuar de todos modos" no está disponible, o la frase de desvío está funcionando, este truco funciona bien:

  1. Permita los errores de certificado de localhost habilitando este indicador (tenga en cuenta que Chrome necesita reiniciarse después de cambiar el valor del indicador):

    chrome://flags/#allow-insecure-localhost

    (y respuesta a votación https://.com/a/31900210/430128 por @Chris)

  2. Si el sitio al que desea conectarse es localhost , localhost terminado. De lo contrario, configure un túnel TCP para escuchar en el puerto 8090 localmente y conéctese a broken-remote-site.com en el puerto 443, asegúrese de tener instalado socat y ejecute algo como esto en una ventana de terminal:

    socat tcp-listen:8090,reuseaddr,fork tcp:broken-remote-site.com:443

  3. Vaya a https: // localhost: 8090 en su navegador.


NO PARA PROD

Simplemente pega esto en tu cromo:

chrome://flags/#allow-insecure-localhost

Debería ver el texto resaltado que dice: Permitir certificados no válidos para recursos cargados desde localhost

Haga clic en Enable .


Para un entorno de prueba.

Puede usar --ignore-certificate-errors como un parámetro de línea de comando cuando inicie chrome (Trabajando en la versión 28.0.1500.52 en Ubuntu).

Esto hará que ignore los errores y se conecte sin avisar. Si ya tiene una versión de Chrome en ejecución, deberá cerrarla antes de reiniciar desde la línea de comandos o se abrirá una nueva ventana pero ignorará los parámetros.

Configuro Intellij para iniciar Chrome de esta manera al realizar la depuración, ya que los servidores de prueba nunca tienen certificados válidos.

No recomendaría una navegación normal como esta, ya que las verificaciones de certificados son una característica de seguridad importante, pero esto puede ser útil para algunos.


Solución de localhost SSL / HTTPS en mac / osx:

  1. Haga clic en el candado rojo con la cruz en la barra de direcciones cuando intente abrir su entorno https localhost. Se abrirá una ventana con información sobre el certificado.

  2. Haga clic en la ventana de información "Detalles"

  3. Las herramientas de desarrollo de Chrome se abren en la pestaña ''Seguridad''. Haga clic en Ver certificado . La imagen del certificado
  4. Agréguelo a su llavero ''Sistema'' (no a su llavero ''iniciar sesión'', que está seleccionado de forma predeterminada).

  5. Abre tu llavero (otra vez) y encuentra el certificado. Haz clic en él y asegúrate de "confiar" en todos.

  6. Reinicie chrome y debería funcionar.


WINDOWS JUN / 2017 Windows Server 2012

Seguí la respuesta de @Brad Parks. En Windows, debe importar rootCA.pem en el almacén Trusted Root Certificates Authorities.

Hice los siguientes pasos:

openssl genrsa -out rootCA.key 4096 openssl req -x509 -new -nodes -key rootCA.key -newkey rsa:4096 -sha256 -days 1024 -out rootCA.pem openssl req -new -newkey rsa:4096 -sha256 -nodes -keyout device.key -out device.csr openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 2000 -sha256 -extfile v3.ext

Donde v3.ext es:

authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = localhost IP.1 = 192.168.0.2 IP.2 = 127.0.0.1

Entonces, en mi caso, tengo una aplicación web auto hospedada, por lo que debo vincular el certificado con la dirección IP y el puerto, el certificado debe estar en MI tienda con información de clave privada, así que exporté al formato pfx.

openssl pkcs12 -export -out device.pfx -inkey device.key -in device.crt

Con la consola mmc (Archivo / Agregar o quitar complementos / Certificados / Agregar / Computert Account / LocalComputer / OK) importé un archivo pfx en el almacén personal.

Más tarde usé este comando para enlazar el certificado (también podría usar la herramienta HttpConfig):

netsh http add sslcert ipport=0.0.0.0:12345 certhash=b02de34cfe609bf14efd5c2b9be72a6cb6d6fe54 appid={BAD76723-BF4D-497F-A8FE-F0E28D3052F4}

certhash = Certificado Thumprint

appid = GUID (tu elección)

Primero traté de importar el certificado "device.crt" en las Autoridades de Certificados de Raíz de Confianza de diferentes maneras, pero sigo recibiendo el mismo error:

Pero me di cuenta de que debería importar el certificado de la autoridad raíz, no el certificado para el dominio. Así que usé la consola mmc (Archivo / Agregar o quitar complementos / Certificados / Agregar / Computert Account / LocalComputer / OK) Importé rootCA.pem en el almacén de autoridades de certificados raíz de confianza.

Reinicie Chrome y et voilà funciona.

Con localhost:

O con dirección IP:

Lo único que no pude lograr es que tiene cifrado obsoleto (cuadrado rojo en la imagen). La ayuda es apreciada en este punto.

Con makecert no es posible agregar información SAN. Con New-SelfSignedCertificate (Powershell) puede agregar información de SAN, también funciona.


Esto es algo que sigue apareciendo, ¡especialmente para Google Chrome en Mac OS X Yosemite!

Afortunadamente, uno de nuestro equipo de desarrollo me envió este enlace hoy, y el método funciona de manera confiable, al mismo tiempo que le permite controlar qué sitios acepta certificados.

https://www.reddit.com/r/sysadmin/comments/3ercx4/chrome_shortcut_past_the_your_connection_is_not/cthporl

jersully publica:

Si no quieres molestarte con los certificados internos ...

  1. Escriba chrome://flags/en la barra de direcciones.
  2. Desplácese o busque las decisiones de Recordar para proceder a través de los errores de SSL durante un período de tiempo específico.
  3. Seleccione Recordar por tres meses.

A partir de Chrome 58+ comencé a recibir un error de certificado en macOS debido a que faltaba SAN. Aquí es cómo volver a obtener el bloqueo verde en la barra de direcciones.

  1. Genera un nuevo certificado con el siguiente comando:

    openssl req / -newkey rsa:2048 / -x509 / -nodes / -keyout server.key / -new / -out server.crt / -subj /CN=*.domain.dev / -reqexts SAN / -extensions SAN / -config <(cat /System/Library/OpenSSL/openssl.cnf / <(printf ''[SAN]/nsubjectAltName=DNS:*.domain.dev'')) / -sha256 / -days 720

  2. Importe el server.crtarchivo a su KeyChain, luego haga doble clic en el certificado, expanda Trust y seleccione Always Trust

Actualice la página https://domain.dev en Google Chrome, para que el bloqueo verde esté de vuelta.


Esta publicación ya está inundada de respuestas, pero creé un script bash basado en algunas de las otras respuestas para facilitar la generación de un certificado TLS autofirmado válido en Chrome (probado en Chrome 65.x) Espero que sea útil para los demás.

auto-firmado-tls bash script

Después de instalar ( y confiar ) en el certificado, no olvide reiniciar Chrome ( chrome://restart)

Otra herramienta que vale la pena revisar es el cfsslkit de herramientas de CloudFlare :

cfssl


Estaba experimentando el mismo problema: había instalado el certificado en el almacén Trusted Root Authorities de Windows y Chrome seguía rechazando el certificado, con el error ERR_CERT_COMMON_NAME_INVALID. Tenga en cuenta que cuando el certificado no se instala correctamente en la tienda, el error es ERR_CERT_AUTHORITY_INVALID.

Como lo insinuó el nombre del error, este comentario y esta pregunta , el problema estaba en el nombre de dominio declarado en el certificado. Cuando se me solicitó el "Nombre común" al generar el certificado, tuve que ingresar el nombre de dominio que estaba usando para acceder al sitio ( localhosten mi caso). Reinicié Chrome utilizando chrome://restarty finalmente estaba contento con este nuevo certificado.


Intenté todo y lo que lo hizo funcionar: al importar, seleccione la categoría correcta, es decir, las Autoridades de Certificación de Raíz Confiables :

(lo siento es alemán, pero solo sigue la imagen)


No me funcionó cuando intenté importar el certificado en el navegador ... En chrome abra Herramientas de desarrollo> Seguridad y seleccione Ver certificado. Haga clic en la pestaña Detalles y expórtelo.

// LINUX

sudo apt-get install libnss3-tools certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n [EXPORTED_FILE_PATH] -i [EXPORTED_FILE_PATH]

Ejecute este comando y, si ve el archivo que acaba de importar, ¡ya está listo!

certutil -d sql:$HOME/.pki/nssdb -L

// Windows

Start => run => certmgr.msc

En el lado izquierdo, seleccione Trusted Root Certification Authorities => Personal. Haga clic en la pestaña de acciones => Todas las acciones / importar y luego elija el archivo que exportó anteriormente desde el navegador

No te olvides de reiniciar el cromo !!!

¡BUENA SUERTE! ;)


Para fines de desarrollo en Windows, puede
agregar a la bandera de acceso directo de Chrome--ignore-certificate-errors

Se espera que ignore los errores de los certificados y le permita acceder a sitios web de certificados no válidos.
Mejores instrucciones detalladas en https://support.opendns.com/entries/66657664 .


Solucioné este problema por mí mismo sin cambiar la configuración de los navegadores con las certificaciones SSL adecuadas. Utilizo un mac, por lo que se requiere una actualización de llavero para mis certificaciones ssl. Tuve que agregar nombres de sujeto alt a la certificación ssl para que Chrome lo aceptara. A partir de hoy, esto es para el número de versión de Chrome: 62.0.3202.94

Mi ejemplo es fácil de usar comandos y archivos de configuración:

agregue estos archivos y este ejemplo es todo en un directorio raíz

ssl.conf

[ req ] default_bits = 4096 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_distinguished_name ] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) organizationName = Organization Name (eg, company) commonName = Common Name (e.g. server FQDN or YOUR name) commonName_max = 64 [ req_ext ] subjectAltName = @alt_names [alt_names] DNS.1 = localhost

Ejecutar comando para crear la certificación:

openssl req -newkey rsa:4096 -nodes -keyout key.pem -x509 -days 3650 -out certificate.pem -extensions req_ext -config ssl.conf -subj ''/CN=localhost/O=Stackflow/C=US/L=Los Angeles/OU=StackflowTech''

Para macs solo para agregar certificación de confianza (requerido):

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./certificate.pem

Para las ventanas, tendrá que encontrar la forma de verificar nuestros certificados ssl de forma independiente. Yo no uso Windows. Lo siento ventanas chicos y chicas.

Estoy usando un servidor node.js con express.js con solo requiere mi clave y certificación con algo como esto:

app.js

const https = require(''https''); const Express = require(''express''); const fs = require(''fs''); const app = new Express(); const server = https.createServer({ key: fs.readFileSync(''./key.pem''), cert: fs.readFileSync(''./certificate.pem''), }, app); server.listen(3000);

Es posible que esté haciendo esto para otros marcos de backend en el futuro, por lo que puedo actualizar este ejemplo para otros en el futuro. Pero esta fue mi solución en Node.js para ese problema. Borre el caché del navegador y ejecute su aplicación en https: //

Este es un ejemplo de la ejecución de localhost en un servidor Node.js para usuarios de Mac:

https://github.com/laynefaler/Stack-Overflow-running-HTTPS-localhost

¡Feliz codificación!


Tuve que ajustar el lanzador de Chrome en macosx y lo agregué debajo del script. Lo guardé como abajo;

/ Aplicaciones / Google / Chrome.app/Contents/MacOS/Chrome.command

#!/bin/sh RealBin="Google Chrome" AppDir="$(dirname "$0")" exec "$AppDir/$RealBin" --ignore-certificate-errors "$@"

Cuando inicio Chrome con este script, los certificados autofirmados funcionan sin problemas. ¡Pero no navegue por la web con el navegador lanzado con este script , no se le advertirá sobre certificados no válidos!


mkdir CA openssl genrsa -aes256 -out CA/rootCA.key 4096 openssl req -x509 -new -nodes -key CA/rootCA.key -sha256 -days 1024 -out CA/rootCA.crt openssl req -new -nodes -keyout example.com.key -out domain.csr -days 3650 -subj "/C=US/L=Some/O=Acme, Inc./CN=example.com" openssl x509 -req -days 3650 -sha256 -in domain.csr -CA CA/rootCA.crt -CAkey CA/rootCA.key -CAcreateserial -out example.com.crt -extensions v3_ca -extfile <( cat <<-EOF [ v3_ca ] subjectAltName = DNS:example.com EOF )