WINDOWS JUN / 2017 Windows Server 2012
Śledziłem odpowiedź na @Brad Parks. W systemie Windows należy zaimportować plik rootCA.pem w sklepie Zaufane główne certyfikaty.
Zrobiłem następujące kroki:
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
Gdzie v3.ext to:
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
Następnie, w moim przypadku, mam własną aplikację internetową, więc muszę powiązać certyfikat z adresem IP i portem, certyfikat powinien znajdować się w MOIM sklepie z informacjami o kluczu prywatnym, więc wyeksportowałem do formatu pfx.
openssl pkcs12 -export -out device.pfx -inkey device.key -in device.crt
Za pomocą konsoli mmc (Plik / Dodaj lub usuń przystawki / Certyfikaty / Dodaj / Computert Konto / Komputer lokalny / OK) Zaimportowałem plik pfx w sklepie osobistym.
Później użyłem tego polecenia do powiązania certyfikatu (możesz także użyć narzędzia HttpConfig):
netsh http add sslcert ipport=0.0.0.0:12345 certhash=b02de34cfe609bf14efd5c2b9be72a6cb6d6fe54 appid={BAD76723-BF4D-497F-A8FE-F0E28D3052F4}
certhash = Odcisk certyfikatu
appid = GUID (twój wybór)
Najpierw próbowałem zaimportować certyfikat „device.crt” na Zaufane główne urzędy certyfikacji na różne sposoby, ale wciąż pojawia się ten sam błąd:
Ale zdałem sobie sprawę, że powinienem zaimportować certyfikat organu głównego, a nie certyfikat dla domeny. Więc użyłem konsoli mmc (Plik / Dodaj lub usuń przystawki / Certyfikaty / Dodaj / Computert Konto / Komputer lokalny / OK) Zaimportowałem rootCA.pem w sklepie Zaufane główne certyfikaty.
Uruchom ponownie Chrome i et voilà to działa.
Z localhost:
Lub z adresem IP:
Jedyne, czego nie mogłem osiągnąć, to to, że ma przestarzały szyfr (czerwony kwadrat na zdjęciu). W tej kwestii docenia się pomoc.
W makecert nie jest możliwe dodanie informacji SAN. Dzięki New-SelfSignedCertificate (Powershell) możesz dodawać informacje o sieci SAN, to także działa.