问题标签 [certutil]

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.

0 投票
1 回答
4895 浏览

powershell - 使用提升的 Start-Process 运行时出现 Certutil.exe 错误退出代码

我正在尝试certutil.exe使用脚本导入证书。此脚本由非管理员用户启动,当到达Start-Process命令时,Windows UAC 会询问管理员凭据。

$ret.exitCode运行此代码时等于 1,并且在商店中找不到证书。

但是,如果我在没有运行 Start-Process 的情况下-ArgumentList(然后打开一个 powershell 窗口),并certutil.exe从这里运行命令,我没有收到任何错误,并且证书按预期添加到存储中。

区别在哪里?

0 投票
2 回答
2920 浏览

powershell - 在没有外部工具的情况下自动将 x509 证书从 Server 2008 R2 导出到 p7b 文件?

我集中管理域控制器,但站点管理员在本地管理自己的数字发送器。我可以通过向导轻松地将带有整个链的 X509 证书(不需要私钥)从 Windows Server 2008 R2 域控制器导出到 p7b 文件:

~~~~~~~~~~~~~~~~~

...5。证书导出向导打开。点击下一步。

  1. 在“导出文件格式”对话框中,执行以下操作:

    一个。选择加密消息语法标准 – PKCS #7 证书 (.P7B)。

    湾。如果可能,选中在证书路径中包含所有证书。

    C。点击下一步。

  2. 在“要导出的文件”对话框中,单击“浏览”。

  3. 在“另存为”对话框中,执行以下操作:

    一个。在“文件名”框中,键入 ciroots.p7b。

    湾。在保存类型框中,选择 PKCS #7 证书 (*.p7b)。

    C。单击保存。

  4. 在“要导出的文件”对话框中,单击“下一步”。

  5. 在完成证书导出向导页面上,单击完成。

~~~~~~~~~~~~~~~~~

它工作得很好。生成的文件可以很好地导入数字发送器进行身份验证。如果站点管理员尚未导入它们,则它使站点管理员可以访问链中的其他证书。它不需要包含私钥,因为没有它也可以正常工作。

麻烦的是,我需要手动执行此操作,实际上是数十次,每个业务站点一次,因为每个站点都有自己的域控制器,每个域控制器都有自己的证书。必须有一种方法可以自动执行此证书导出(PowerShell w/.NET、certutil.exe 等)。也许使用 System.Security.Cryptography.X509Certificates X509IncludeOption 和 WholeChain 的东西,但我无法让它工作:

$Cert = (dir Cert:\localmachine\my)[0]

# 带有 .p7b 文件扩展名的 PKCS7 证书导出。

$CertCollection = 新对象

System.Security.Cryptography.X509Certificates.X509Certificate2Collection

$证书 | %{[void]$CertCollection.Add($_)}

$Exported_pkcs7 = $CertCollection.Export('Pkcs7')

$out_FileName = $ENV:COMPUTERNAME + ".p7b"

$My_Export_Path = 'd:\CertFiles\' + $out_FileName

Set-Content -path $My_Export_Path -Value $Exported_pkcs7 -encoding Byte

使用此代码,我只获得证书,而不是其链中的其余证书。我不需要整个脚本,只需要复制导出 w/chain 的部分,我已经可以通过 GUI 手动完成。

0 投票
3 回答
2646 浏览

c# - 如何以编程方式或使用命令行程序更新现有 CA 模板的有效期

我正在寻找一种方法来更新现有 CA 模板的有效期,您知道这是否可以使用 certutil、任何其他命令或使用 Powershell 或 C# 以编程方式进行。

CA 在 Windows Server 2008 R2 上运行。

我的目标是每天运行一个脚本来更新特定模板的有效期,以便使用该模板注册的任何请求都会在特定日期到期,比如 2016 年 12 月 31 日。

谢谢,

0 投票
1 回答
1512 浏览

python - 让我们加密证书、Python 和 Windows

我用"Let"s Encrypt"将我的网络服务器从 HTTP 更改为 HTTPS 。网络服务器包含一个 API,我有一个使用该 API 的 Python 应用程序。

在 Linux 下一切正常,但在 Windows 下,当我登录时,我会在下面收到这个。

我的想法是,没有安装 SSL 证书。

所以我下载了“isrgrootx1.der”和“lets-encrypt-x1-cross-signed.der”,它们都重命名为结尾的“*.cer”。

然后我打开 Windows 控制台,运行:

第二个命令失败,因为它不是根证书。我的问题是:要在哪个组中安装“lets-encrypt-x1-cross-signed.cer”?

0 投票
1 回答
461 浏览

firefox - Firefox RootStore cert8.db/key3.db 不存在

我想使用 Firefox 45.0.1 在 Windows (7) 下访问 Firefox Root Store。我发现有几个来源告诉我导航到 C:\Users\{username}\AppData\Local\Mozilla\Firefox\Profiles\8ab3jkih.default\cert8.db。不幸的是,我找不到 cert8.db,尽管 8ab3jkih.default 存在(并且是唯一的文件夹)。
我尝试使用 certutil 访问数据库,它有效,但只给了我 4 个用于 -viewstore 的证书(应该是大约 150 个)。之后我尝试访问 -getconfig 和 -databaselocations,但这只是告诉我系统找不到给定的文件。我希望找到数据库的位置。
是的,我已经听说过 NSS,但我认为我应该先手动尝试,然后再使用它。

我的安装有什么问题吗?我应该尝试重新安装吗?我还可以做些什么?顺便说一句,我的结局是找出某个给定证书是否是根证书,所以我只想以编程方式访问根证书列表并将它们与给定证书进行比较。

0 投票
2 回答
6674 浏览

c# - 从 X509 Cert pfx 文件中获取字符串

我想将 x509 证书作为字符串 (certString) 获取,以便我可以像使用它一样使用它

在代码中生成 CertObject。

我已经尝试过 certUtil,但我不知道我需要哪个字符串。

我需要从 pfx 数据中提取哪个字符串才能在代码中生成 X509 证书对象?

0 投票
2 回答
6016 浏览

windows - 如何导入 pfx 证书并为所有用户设置私钥权限

我有自签名 pfx 证书,并且机器有 2 个用户(A 和 B)。我需要使用一些命令行工具安装证书,它应该可供所有用户使用。

如果用户 A 在 LocalMachine\My 或 LocalMachine\Root 中手动安装证书,则它仅对用户 A 可用,因为用户 B 没有私钥权限。

我试过了

但这无济于事,证书仅适用于运行 winhttpcertcfg 的用户。

我试过了

但它将证书安装在 Root 而不是 My 不管 -c 参数。

我试过了

但这无济于事,证书仅适用于运行 certutil 的用户。

如果我的商店可以手动修复问题:

  • 右键单击本地计算机证书管理器中的证书 -> 所有任务 -> 管理私钥
  • 添加用户 A 和 B 并设置必要的权限。

但是我需要一些在安装应用程序时使用的自动方式。

0 投票
1 回答
212 浏览

jquery - 如何从 NodeJS 端点获取 jQuery AJAX 结果?

我成功地对我设置的端点进行了 ajax 调用。我将原始证书作为 JSON 发送给它,后端对其进行解码。现在,我可以用 a 调出解码结果,console.log但我不知道如何将其作为结果返回。

阿贾克斯调用:

NodeJS 端点:

正如我所说,如果我这样做,console.log(out)我可以得到转储,但不能。我浏览了许多 SO 帖子,据我所知,我认为我正确地进行了 AJAX 调用,所以问题可能出在我的端点上。

提前致谢!

0 投票
4 回答
14338 浏览

windows - 将 CertUtil -hashfile 的结果保存到变量并删除哈希的空格

我想保存结果

到一个变量并删除命令行命令中的哈希空格(更具体地说,我想在 VS 2015 C++ 的后处理命令行中使用它)。

目前结果如下:

1) C:\Users\admin>CertUtil -hashfile ping.txt MD5
2) 文件 ping.txt 的 MD5 哈希:
3) 4f 75 c2 2c 20 b4 81 54 72 2c a5 7c 95 7a 66 88
4) CertUtil: -hashfile命令成功完成。

我只需要这一行3)- 将六进制字符串保存到变量中,然后删除空格。非常感谢!

0 投票
2 回答
5155 浏览

batch-file - CertUtil -hashfile 输出到文件和错误处理

我需要从同一个批处理文件中生成的文件列表中生成一个带有 hashfile 标签的文件。这是我到目前为止的代码:

对于我为其生成哈希文件的大多数文件,我得到如下内容:

但有时我会收到如下错误:

  1. 为什么有些文件会给出这个错误?
  2. 如何删除以CertUtil:开头的任何行,这样我就没有不必要的行,或者有没有办法只将 CertUtil 命令的前 2 行写入文件。
  3. %hashfile%它的最终形式之后,我想运行certutil -hashfile "%hashfile% MD5并将哈希码分配给一个变量。它的语法是什么?