WINDOWS JUN / 2017 Windows Server 2012
Seguí la respuesta de @Brad Parks. En Windows, debe importar rootCA.pem en la tienda 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
Luego, en mi caso, tengo una aplicación web autohospedada, así que necesito 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é a 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é el archivo pfx en la tienda Personal.
Más tarde usé este comando para vincular 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 (su elección)
Primero intenté importar el certificado "device.crt" en las Autoridades de certificados raíz de confianza de diferentes maneras, pero sigo recibiendo el mismo error:
Pero me di cuenta de que debía importar un certificado de autoridad raíz, no un certificado de dominio. Así que utilicé la consola mmc (Archivo / Agregar o quitar complementos / Certificados / Agregar / Computert Account / LocalComputer / OK) importé rootCA.pem en la tienda Trusted Root Certificates Authorities.
Reinicie Chrome y et voilà funciona.
Con localhost:
O con dirección IP:
Lo único que no pude lograr es que tenga un cifrado obsoleto (cuadro 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 SAN, también funciona.