信任来自 IIS 的自签名证书

Trust a self signed cert from IIS

我有一个外部托管的 iis 网络服务器 运行 我的网站。我想向该网站添加一个自签名证书并在我的本地客户端上信任它,以从浏览器中删除 "Insecure Connection"。

到目前为止我所做的是以下内容

  1. 在 IIS 中创建了自签名证书:服务器证书 -> 创建自签名证书。证书颁发给服务器名,例如 "ABCD01"
  2. 使用自签名证书创建了一个具有 https 绑定的网站。
  3. 使用以下方法从 IIS 导出自签名证书:服务器证书 -> 导出。这导致了一个 .pfx 文件
  4. 已在本地客户端上导入 .pfx 证书文件:管理计算机证书 -> 受信任的根证书颁发机构 -> 导入
  5. 在主机文件中添加主机名(ABCD01)和主机IP:C:\Windows\System32\drivers\etc\hosts

当我尝试在 firefox 中打开网站时(使用 https://ABCD01),我仍然看到 "Your connection is not secure"。我错过了什么?

存在多个问题:

  1. IIS 证书生成器使用现代浏览器中已过时的 SHA1 签名算法创建自签名证书。您必须使用不同的工具来创建测试证书。例如,使用 PowerShell New-SelfSignedCertificate cmdlet,您可以在其中指定签名算法。查看此 post 以获取示例:
New-SelfSignedCertificate `
    -DnsName "ABCD01" `
    -CertStoreLocation "cert:\LocalMachine\My" `
    -FriendlyName "test dev cert" `
    -TextExtension "2.5.29.37={text}1.3.6.1.5.5.7.3.1" `
    -KeyUsage DigitalSignature,KeyEncipherment,DataEncipherment `
    -Provider "Microsoft RSA SChannel Cryptographic Provider" `
    -HashAlgorithm "SHA256"
  1. IIS 证书生成器无法使用 Google Chrome 中要求的 SAN(主题备用名称)证书扩展来构建证书。您必须使用不同的工具来创建测试证书。参考上面的例子

  2. Google Chrome 使用内置的 Windows 证书库来建立信任,而 FireFox 使用自己的证书库。因此,将证书添加到 Windows 证书存储后,您必须手动将测试证书导入 FireFox。