我正在尝试在现有证书上设置 KeySpec 标志以用于 SQL 服务器加密角色。当前的 KeySpec 为 0,我需要它为 1。
这样做的方法是首先将证书、其私钥和密钥用法导出到 .pfx 文件中(使用密码,不管它声称什么)。然后,利用 certutil,运行 certutil -importpfx AT_KEYEXCHANGE。
这“有效”,因为它提示输入密码(输入正确),但失败并显示以下错误消息:
CertUtil:-importPFX 命令失败:0x80090029 (-2146893783 NTE_NOT_SUPPORTED) CertUtil:不支持请求的操作。
不幸的是,我在网上找不到太多 - 显然只有这篇文章:
https://anotherexchangeblog.wordpress.com/tag/importpfx-command-failed-0x80090029/
这似乎表明这是位于 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 的目录的权限问题。具体来说,那个“SYSTEM”对它有权限,他将其删除并让 certutil 工作。但是,我的该目录副本没有具有权限的 SYSTEM - 它看起来与他的图片相同。
没有更多的事情要做,而且这种 certutil 导入方法似乎是将 KeySpec 设置为 1 的唯一方法。从这里我可以做些什么来允许我使用正确的 KeySpec 标志导入该密钥?