WINDOWS THÁNG 6/2017 Windows Server 2012
Tôi đã trả lời @Brad park. Trên Windows, bạn nên nhập rootCA.pem trong cửa hàng ủy quyền chứng chỉ gốc đáng tin cậy.
Tôi đã làm các bước sau:
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
Trong đó v3.ext là:
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
Sau đó, trong trường hợp của tôi, tôi có một ứng dụng web tự lưu trữ, vì vậy tôi cần liên kết chứng chỉ với địa chỉ IP và cổng, chứng chỉ nên có trên cửa hàng MY với thông tin khóa riêng, vì vậy tôi đã xuất sang định dạng pfx.
openssl pkcs12 -export -out device.pfx -inkey device.key -in device.crt
Với bảng điều khiển mmc (Tệp / Thêm hoặc Xóa Snap-in / Chứng chỉ / Thêm / Tài khoản Computert / LocalComputer / OK) Tôi đã nhập tệp pfx trong Cửa hàng cá nhân.
Sau này tôi đã sử dụng lệnh này để liên kết chứng chỉ (bạn cũng có thể sử dụng công cụ HttpConfig):
netsh http add sslcert ipport=0.0.0.0:12345 certhash=b02de34cfe609bf14efd5c2b9be72a6cb6d6fe54 appid={BAD76723-BF4D-497F-A8FE-F0E28D3052F4}
certhash = Giấy chứng nhận Thumprint
appid = GUID (sự lựa chọn của bạn)
Đầu tiên tôi đã cố gắng nhập chứng chỉ "device.crt" trên Chứng chỉ gốc đáng tin cậy theo các cách khác nhau nhưng tôi vẫn nhận được cùng một lỗi:
Nhưng tôi nhận ra rằng tôi nên nhập chứng chỉ của quyền root chứ không phải chứng chỉ cho tên miền. Vì vậy, tôi đã sử dụng bảng điều khiển mmc (Tệp / Thêm hoặc Xóa Snap-in / Chứng chỉ / Thêm / Tài khoản Computert / LocalComputer / OK) Tôi đã nhập rootCA.pem trong cửa hàng ủy quyền chứng chỉ gốc đáng tin cậy.
Khởi động lại Chrome và et voilà nó hoạt động.
Với localhost:
Hoặc với địa chỉ IP:
Điều duy nhất tôi không thể đạt được là nó có mật mã lỗi thời (hình vuông màu đỏ trên hình). Trợ giúp được đánh giá cao về điểm này.
Với makecert, không thể thêm thông tin SAN. Với New-SelfSignCertert (Powershell), bạn có thể thêm thông tin SAN, nó cũng hoạt động.