You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已添加至LocalMachine\Root的自签名证书无法被IIS识别,求排查

解决IIS SSL证书列表不显示自签名证书的问题

问题根源

  1. IIS只会读取本地计算机的「个人(My)」证书存储里的证书,你把证书直接移到「受信任的根证书颁发机构」后,个人存储里已经没有这份证书,IIS自然找不到。
  2. 你之前的创建命令没给证书添加服务器身份验证的增强密钥用法(EKU),这类证书不符合IIS对SSL证书的要求,不会被列入可选列表。

正确操作步骤

1. 清理旧证书(可选)

先在MMC的「受信任的根证书颁发机构」里删掉之前创建的证书,避免后续出现冲突。

2. 重新创建符合要求的自签名证书

以管理员权限打开PowerShell,执行以下命令:

# 创建带服务器身份验证EKU的证书,并存放在本地计算机个人存储
$cert = New-SelfSignedCertificate `
    -Subject "CN=MyAppName" `
    -DnsName "MyHostName" `
    -CertStoreLocation "Cert:\LocalMachine\My" `
    -NotAfter (Get-Date).AddYears(5) `
    -KeyUsage DigitalSignature, KeyEncipherment `
    -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.1")
  • -KeyUsage 指定证书用途为数字签名和密钥加密,满足SSL通信的基础要求
  • -TextExtension 专门添加了服务器身份验证的EKU标识,让IIS能识别这是合法的SSL证书

3. 复制证书到根证书库(可选但推荐)

为了避免客户端访问时弹出证书不信任的提示,把证书复制(不是移动)到根证书库:

# 复制证书到根存储,保留个人存储里的原证书供IIS读取
Copy-Item -Path "Cert:\LocalMachine\My\$($cert.Thumbprint)" -Destination "Cert:\LocalMachine\Root"

执行时会弹出安全确认框,点击「是」完成导入。

4. 验证IIS证书列表

打开IIS管理器,进入站点的「添加绑定」界面选择HTTPS类型,此时就能在SSL证书下拉列表里看到刚创建的证书了。

额外提醒

  • 绝对不能把证书从个人存储移走,必须保留一份在那里供IIS读取
  • 服务器证书必须包含服务器身份验证EKU,否则IIS不会将其纳入可选范围

内容的提问来源于stack exchange,提问作者Steve F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 09:55:00