请问如何根据自己的CA根证书生成端实体证书?我以这种方式生成了根 CA:
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout example.key -out example.crt -subj /CN=MyCompany \
-addext subjectAltName=IP:192.168.100.82
openssl pkcs12 -export -out cert.pfx -inkey example.key -in example.crt
我已将 cer 文件导入Windows Trusted Root Certification Authorities并将 pfx 文件导入IIS Server Certificates。
它适用于 Chrome、IE 和 Edge,但 Firefox 报告我的证书存在问题:MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY
我用谷歌搜索了它,我了解到我应该拥有由我的 CA 根证书签名的最终实体证书。我试图生成最终实体证书:
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr -subj /CN=MyCompanyEE -addext subjectAltName=IP:192.168.100.82
openssl x509 -req -in server.csr -CA cert.pem -CAkey example.key -CAcreateserial -out server.crt -days 3650 -sha256
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
OpenSSL 响应:
Signature ok
subject=CN = MyCompanyEE
Getting CA Private Key
我也已将 server.pfx 导入IIS 服务器证书,并将我的 Web 应用程序的绑定更改为使用服务器证书,但现在它在 Firefox 或 Chrome 中都不起作用。
Firefox 说:SSL_ERROR_BAD_CERT_DOMAIN,
Chrome 说:NET::ERR_CERT_COMMON_NAME_INVALID。
我做错了什么?
我无法使用 OpenSSL 为本地网站生成证书(可在 192.168.100.82:997 的 Intranet 中获得)所以 - 根据@Crypt32 的建议 - 我改变了方法并使用了 PowerShell。您可以在下面找到我的工作解决方案:
使用以下代码生成自签名根授权 (MyCompany CA) 和服务器 (MyCompany) 证书:
按 WIN+R 将根证书添加到系统中的受信任的根证书颁发机构,键入:mmc,按 ENTER。在Microsoft 管理控制台中选择
File->Add or Remove Snap-ins
,然后在新窗口中选择Certificates -> Add -> OK
. 展开Certificates->Trusted Root Certification Authorities
。右键单击放置在受信任的根证书颁发机构内的证书目录,然后选择并从中选择文件。应用更改并关闭Microsoft 管理控制台。All Tasks->Import...
Authority.cer
C:\Users\bug_2\Certificates\
您无需任何额外步骤即可在 IIS 中找到您的新证书(根证书和服务器证书)。在 IIS 中选择您的网站,单击
Bindings...->Edit
并选择服务器证书 (MyCompany)。应用更改。我的网站现在可以在
https://192.168.100.82:997
除 Firefox 之外的所有网络浏览器(如 Chrome、IE、Edge)上使用。对于运行 Firefox 的修复,about:config
在地址栏中输入并设置security.enterprise_roots.enabled
为 true。重启火狐。现在我的本地网站在https://192.168.100.82:997的 Intranet 中可用。