Windows 11 第三方通行密钥管理器的隐藏陷阱:数字签名证书才是关键!
Windows 11 最近开放了第三方通行密钥管理器(如 1Password、Bitwarden 等)。通行密钥(Passkeys)作为密码的替代品,提供了更安全、更便捷的无密码认证方式。然而,在实际使用中,我遇到了一个奇怪的现象:某些应用可以顺利注册和使用通行密钥,而另一些应用却只能依赖外部安全密钥或移动设备。这让我百思不得其解。经过一番代码对比和深入研究,我终于揭开了谜底:应用的数字签名证书才是决定 Windows 能否调用第三方通行密钥管理器的关键。
问题现象
最初,我在使用一些常见的网站和应用时,发现通行密钥的注册和登录流程非常顺畅。Windows 11 会自动弹出我的第三方密码管理器(如 1Password),允许我创建或选择通行密钥。但当我尝试一些小众或开发中的应用时,系统却拒绝调用第三方管理器,只允许使用外部安全密钥(如 Yubikey)或移动设备进行认证。这种不一致性让我感到困惑。
深入探究
通过查看 Windows 11 的官方文档、开发者论坛以及一些开源项目的代码,我注意到所有通行密钥的调用都依赖于 Windows 的 WebAuthn API。进一步分析发现,Windows 11 对调用通行密钥管理器的应用有一个隐藏要求:应用必须具有有效的数字签名,且签名证书必须受系统信任。
未签名或使用自签名证书(但未安装到系统信任存储)的应用,将被系统视为“不受信任”,从而禁止调用第三方通行密钥管理器。
验证假设
为了验证这一发现,我进行了一个简单的实验:
- 我访问了 webauthn.io(一个常用的 WebAuthn 测试网站),在 Chrome 中测试。由于浏览器具有数字签名证书且受信任,通行密钥管理器被正常调用。

- 接下来,在 Chromium 中测试。Chromium 未包含数字签名证书,当尝试注册通行密钥时,Windows 11 拒绝调用第三方管理器,只显示外部安全密钥选项。

- 然后,我为该应用生成自签名证书,并将证书安装到系统的“受信任的根证书颁发机构”存储中。再次测试时,第三方通行密钥管理器被成功调用。

实验证实:数字签名及其信任状态是决定因素。
生成和安装自签名证书
对于开发者或希望测试通行密钥功能的用户,可以通过以下步骤生成和安装自签名证书:
安装证书签名工具
使用 Visual Studio 安装 Windows 11 SDK,其中 bin 目录包含了证书签名工具。
生成自签名证书
1 | |
生成完成后,将 test.cer 安装到系统的“受信任的根证书颁发机构”存储中。
生成软件发布者证书
1 | |
合并 PFX 证书文件
1 | |
签署应用程序
1 | |