问题标签 [certificate-store]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 找不到路径“\LocalMachine\Personal”,因为它不存在
我正在尝试访问 IIS 10 商店上已安装证书的指纹。我正在使用以下命令
但上面的命令给了我以下错误
但是,以下命令返回有效的指纹
有趣的是,当我转到 IIS>Server Certificate 时,我可以看到有两个商店 WebHosting 和 Personal。
我查看了microsoft 文档并指出,这意味着有 WebHosting 和 Personal Store
虚拟主机商店的工作方式与个人商店类似,因此所有现有的导入和导出证书的工具都以相同的方式工作。虚拟主机商店和个人商店之间的主要区别在于虚拟主机商店旨在扩展到更多数量的证书。
谁能建议我为什么Get-ChildItem -path Cert:\LocalMachine\Personal
会抛出错误?
excel - Excel 不接受 SelfCert 数字证书
我刚刚将机器从 Windows 8.1/office 2010 移动到 Win 10/Office 2019。我有一个包含大量 VBA 代码的 Excel 电子表格。Excel 2019 不会接受旧证书,因此我必须重新认证工作表。
在信任中心选项设置为“禁用除数字签名宏之外的所有宏”据我所知,两个办公室的信任中心设置设置相同。
我在 Windows 10 机器上创建了一个新证书。(MyCert) 我已经尝试按照微软的指南安装它。(https://support.microsoft.com/en-us/office/digitally-sign-your-macro-project-956e9cc8-bbf6-4365-8bfa-98505ecd1c01)
但是受保护的视图和启用编辑消息仍然存在。
我已尝试删除保存文件的证书;然后添加证书并再次保存 - 无效。
证书显示为已添加并出现在对话框中。在签名为和签名为对话框的一部分下。
证书不在受信任的商店中,但我看不到如何使用 mmc(证书插件)来添加它。
我意识到我犯了一个简单的错误,但我看不到如何让 Excel 识别证书,我想知道是否有人可以提供帮助?
c# - 无法使用指纹从 asp.net core 2.1 访问 X509Store 中的证书
从 IIS 访问 X509Store 时出现奇怪的问题。我查不到他们。
如果我从 powershell 访问 rp cert 和 ca cert 都在那里,
目录证书:-递归 | Where-Object { $_.Thumbprint -like " thumprintstring " }
我已经检查了指纹在指纹的开头没有隐藏字符
我已经设置证书在我安装它们时是可导出的我
暂时将它设置为每个人都可以访问(它是测试服务器的证书)证书商店
这是我使用的代码
无论我尝试什么,rpcert 始终为空。
我是否需要另一种方式从 IIS 打开商店?
有什么想法或建议吗?我错过了什么?
python - 跨平台列出 python 中的所有根 CA 证书
我正在寻找一种跨平台的方式来列出运行计算机上安装的所有 Root CA 证书。
我试过使用ssl.enum_certificates("root")
,但它只在 Windows 上受支持
从 Windows 的系统证书存储中检索证书。store_name 可以是 CA、ROOT 或 MY 之一。Windows 也可能提供额外的证书存储。可用性:Windows | Python 3.4+
certificate - 当私钥明确存在时,keyset 不存在
我们有一项服务将生成 CA 证书并使用该 CA 证书在启动时签署所有其他必需的证书。
CA 证书具有关联的私钥,并存储在带有可导出标志的 windows 证书存储中。这在大多数机器上都可以正常工作,但在我们 QA 的一台机器上,我们遇到了一些令人讨厌的问题。
当我从代码中的证书存储加载 CA 证书并检查HasPrivateKey
标志时,它返回true
. 然后当我尝试使用 CA 证书签署另一个证书时。它抛出键集不存在异常。
在证书存储中,它说证书是有效的。在一般页面上它说
您有一个与此证书对应的私钥
好兆头!但是当我们尝试右键单击 -> 任务 -> 导出它时。包含私钥按钮显示为灰色并显示
找不到关联的私钥。只能导出证书
我们认为这是一个权限问题,所以我们在管理员模式下运行 mmc,结果仍然相同。
在我的开发机器上,我注意到私钥文件存储在其中,%APPDATA%\Microsoft\Crypto\Keys
但我们的 QA 机器并非如此。我们无法在时间戳 = CA 证书生成时间的同一文件夹中找到私钥文件。我们还调查了
但仍然没有运气。
用于运行服务的帐户是本地系统,因此这里的权限不应该是问题。除了 Windows Defender 之外,没有安装任何特殊的防病毒软件,在 Defender 的历史上也没有任何内容。
git - Gitkraken 无法通过 HTTPS 访问私有仓库
我正在为一个新客户工作,并试图介绍 Gitkraken,但遇到了一个错误Pull Failed: failed to get server certificate: The handle is in the wrong state for the requested operation
。
这是一些上下文,我需要访问公司域外的私人仓库,出于安全原因,我不能为此使用 SSH 或 HTTP,只能使用 HTTPS 并安装了证书,我已经这样做了,并且在 git 上运行良好命令行和直接浏览器访问。
我查看了过去有关它的问题(尤其是在 Windows 7和Windows 10 上),但到目前为止,所提供的路径都没有成功。
编辑:我对要使用 Gitkraken 的计算机没有管理员访问权限。我正在使用 Windows 10。
iis - 服务帐户无法从本地计算机存储中读取证书
我们有一个在 IIS(Windows Server 2019)中运行的工作进程,它在后台向 AWS 中的 kafka 资源发出 https 请求。为了使此过程正常工作,我们必须将来自 Amazon 的证书导入本地计算机证书存储,以便可以建立 ssl 连接,并且它将信任从 AWS 中的资源提供的证书。我们已经导入了证书链,并让它与以下警告一起工作:为 AppPool 身份指定的服务帐户必须是本地管理员或者我们必须运行一些进程,任何进程(除了已经运行的 w3wp.exe) ,作为服务帐户。
我已经处理了很多证书、权限等问题,但真正奇怪的是,如果我打开记事本,例如,作为服务帐户,那么只要记事本正在运行该进程就可以工作 - 意思是读取证书并能够建立 ssl 连接。如果我关闭记事本,则该过程将失败,并且出现以下错误:
(将 URL 中的文本替换为 abc123 以进行混淆)
请注意,我们不需要访问证书的私钥,我们只需要从证书存储中读取证书。CA 证书已导入“受信任的根证书颁发机构”。中间证书已导入“中间证书颁发机构”,叶证书已导入个人存储区——所有这些都在本地计算机证书存储区中。同样,如果我们只需登录并以服务帐户身份运行某个进程,即使它不是本地管理员,这一切都可以正常工作。
我在执行失败的进程时运行了 sysinternals procmon,并在 HKEY_USERS.DEFAULT\Software\Microsoft\SystemCertificates 上看到了多次访问被拒绝尝试,如果我在尝试该进程时将记事本作为服务帐户运行,则不会出现这些尝试。我已经为这些注册表项上的服务帐户授予了明确的权限,但它没有帮助。
出于明显的安全原因,我们不希望我们的服务帐户成为机器上的本地管理员,并且出于操作/管理的原因,我们不希望依靠让其他进程作为该帐户运行以使其工作。
c# - 我在调用 GetRSAPrivateKey 时指定了无效的提供程序类型
我有一项使用私钥进行加密的服务。当我授予服务管理权限时,它可以工作。使用普通权限,它不会。调用 GetRSAPrivateKey() 时出现错误“指定的提供程序类型无效”。
如果密钥不存在,则会在安装过程中以编程方式将其添加到存储中。
是否有允许访问证书存储的非管理员帐户设置,或者我在加载代码时做错了什么?
client-certificates - Mule 4 Run Time Fabric 和容器上的 TLS Artefacts 过期提醒
你好吗?我们使用部署在 RTF 结构集群上的 Mulesoft Mule 4(2 个 RTF 实例) 我们想设置提醒,以防止管理员在用于建立出站 TLS 连接和相互身份验证的证书到期之前。
使用 Mule 4 设置 TLS 连接的直接方法是在相应连接器的配置属性中使用带有密钥库/信任库的文件。
如 https://dzone.com/articles/mule-4-using-ssltls-part-2中所述, 您必须生成文件并将它们与交付物打包在一起,交付物将进入 Docker 内部,就像在 Mule RTF 中运行的容器一样进入其文件系统并使用一些例行的计划任务在生产中检查这些文件将很棘手。
同时,Anypoint GUI 上有一个听起来像向导的 Secrets manager 菜单。这个 Secrets Manager 看起来能够持有这些证书,它甚至公开了一个 API,以便能够检查到期日期并进行 CRL(证书撤销列表)管理。尽管如此,日期只是元数据,没有以任何方式强制执行或控制,并且可能会更改与真实证书的到期日期不匹配......我想弄清楚是否可以以某种方式使用这个基础设施为南北流量的出站后端调用保留 TLS 人工制品?
我们是否应该以未加密的方式调用 RTF 控制器 LB,然后调用一些使用此 Secrets 管理器的 Mule“代理”以确保之后的连接安全?也许有一种更简单的方法可以掌握 TLS 人工制品的状态并提前设置一些关于到期的警报?
azure - Azure 应用服务找不到新创建的证书
我有一个不是我创建但现在维护的 Azure 应用程序服务。应用服务通过指纹在 Key Vault 中找到证书,然后使用该证书获取令牌,以便通过夜间作业执行某些 SQL 工作。
证书似乎设置为在其有效日期(12 个月)的 80% 后自动更新。证书更新我夜间工作的那一天开始失败。我有理由确定新证书是问题的根源。
尽我所能告诉它设计为这样工作:
- 通过 Azure Logic App 触发作业
- 异常 POST 到报告处理 API(最终结果应该是为电子邮件附件创建 .PDF 报告)
- API 具有包含当前证书指纹的 Appsetting.json
- 指纹在下面的代码行中用于在证书存储中查找证书
- Cert 用于获取访问令牌并执行工作
当我在本地计算机上安装旧证书和新证书并运行整个过程时,它可以使用旧证书找到并在新的自动生成的证书上失败。我尝试在 Azure 中创建并从 Azure 导出并导入到我的开发机器的任何新证书也会失败。我已经对 appsettings 进行了两次/三次检查,以确保相关指纹正确且已更新。
一年前进行配置时,流程是进入应用服务、TLS/SSL 设置刀片,选择私钥证书 (.pfx),最后选择 + 导入密钥库证书。
从那里选择 Key Vault 和证书,然后更改 Appsettings.Json 以拥有新的指纹。
为什么它可以与旧的(即将到期的)证书和相应的指纹条目一起使用到 appsettings,但无法使用任何新创建的证书和相应的正确指纹条目?
我已经查看了有问题的应用服务的配置,当我理解应该让应用服务看到注册到它的所有证书时,它具有以下设置,对吗?
编辑:经过更多测试后,我发现我从 Azure 导出并在我的计算机上导入的任何证书都将成功迭代证书存储并找到我提供有效指纹的任何证书。它不会做的是使用该证书来获取访问令牌。完整的代码如下。
即将到期的证书将获得适当的访问令牌,并通过从数据库中获取适当的数据来运行其余的过程。
我从所有其他证书中得到的例外都暗示了一些关于 base64 编码的信息,但我不太明白这一点。有任何想法吗?
除原始证书外的所有证书均例外:
客户端断言包含无效签名
仅带有原始证书的带有此代码的成功访问令牌: