如何将 OpenSSL 密钥文件导入 Windows 证书存储区

2024-02-26

我有 OpenSSL 生成的 PEM 格式的 X.509 证书及其关联的密钥文件。连接到原型服务器时需要此证书进行身份验证。这在 Linux 上运行良好。我一直在使用 Microsoft SChannel API 在 Windows 平台上驱动 SSL/TLS 连接,但我想使用相同的测试证书。我可以右键单击证书文件并将其导入到我的证书存储中,但我相信私钥不会随之导入(即使我已将它们连接到同一个文件中)。

当我去运行 SChannel 代码时,在初始化安全上下文(通过 InitializeSecurityContext)时收到“SEC_E_NO_CREDENTIALS”错误。我怀疑这意味着私钥丢失了。

有谁知道如何测试位于个人(或“我的”)证书存储中的证书中是否存在私钥(通过“certmgr.msc”访问)?是否可以为商店中的证书导入新的密钥文件?

任何见解或建议将不胜感激。


要测试是否为证书安装了私钥,请双击 certmgr.msc 中的证书图标。如果有私钥,则会在属性页中显示一条消息,表明您有私钥,否则不会给出任何私钥参考。


要导入证书及其私钥,您可以执行以下操作:

  1. 使用 openssl pkcs12 将证书及其私钥打包到 PKCS #12 文件或 PFX 文件中。这是一个example https://stackoverflow.com/questions/808669/convert-a-cert-pem-certificate-to-a-pfx-certificate.
  2. 将此 PKCS #12 或 PFX 文件导入到证书存储中。

请注意,导入 pfx 文件时您可能会看到错误,例如“此文件无法用作以下用途:个人信息交换”。此错误是由于证书缺少适当的 X.509 v3 扩展(例如使用字段(数字签名等))引起的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 OpenSSL 密钥文件导入 Windows 证书存储区 的相关文章

  • 使用 Windows 批处理文件在文本文件中添加新行

    我有一个文本文件 其中有 200 多行 我只想在第 4 行之前添加一个新行 我使用的是 Windows XP 输入前的示例文本文件 header 1 header 2 header 3 details 1 details 2 输出后 hea
  • 将 gnuplot 嵌入现有 QtWidget 中

    我正在用 C 创建一个 伪 实时绘图应用程序 使用 gnuplot 作为绘图后端 我的要求之一是绘图必须位于现有窗口内 而不是有一个单独的绘图窗口 gnuplot 默认为 Gnuplot 有一个选项可以指定 Qt 小部件 ID 这似乎适合我
  • Delphi中使用FindVCLWindow调用WinHelp32(WinXP Pro SP3 32bit)

    有什么问题吗 procedure TForm1 VCLHelpClick Sender TObject var Ctrl TWinControl begin Ctrl FindVCLWindow Mouse CursorPos if Ctr
  • Jenkins 可以检测到任何 svn 用户每次提交代码吗?

    Jenkins 可以检测到任何 svn 用户每次提交代码吗 我想知道每次 Jenkins 提交 svn user 时 有什么方法或 jenkins 插件吗 现在我用svn updateJenkins 中的 cmd 来更新 svn 您可以按照
  • 串行 I/O 与 Windows/Windows CE 重叠/不重叠

    抱歉 这不是一个大问题 但更多的是帮助那些在这些特定问题上遇到问题的人 我正在解决的问题需要使用串行 I O 但主要在 Windows CE 6 0 下运行 然而 最近有人问我该应用程序是否也可以在 Windows 下运行 所以我开始着手解
  • Windows批处理文件:将结构转换为单行字符串

    我需要将这个艰巨的任务作为批处理文件来完成 这对于 C 来说不是最困难的 但在 DOS 中是一个地狱 至少对我来说 我需要将结构转换为单个 var 字符串 才能在我的程序中再次将它们转换为该结构 别担心回归 一切都已经完成了 该结构的大小会
  • 如何使用 Win32 API 与 com 端口 (RS232) 通信

    我正在尝试使用 win32 API 与 com 端口对话 我找到了这个http www robbayer com files serial win pdf http www robbayer com files serial win pdf
  • Node.js 升级在 Windows 中仍然显示旧版本

    我已使用 msi 安装程序下载并安装了新版本的 nodejs 4 1 2 之后我跑了node v 但它仍然显示旧版本 0 12 2 我尝试重新启动Windows 甚至卸载nodejs并重新安装它 但仍然显示相同的内容 为什么会发生这种情况
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 无法使用 OpenSSL 验证服务器证书

    我已经使用 OpenSSL 编写了一个 SOAP 客户端 在 Ubuntu 12 04 上用 C 编写 但它目前无需检查服务器安全证书即可运行 这是我用来设置连接和检查证书的函数 bool bInitialiseSSL SSL CTX ct
  • Visual C++ 找不到“Windows 类型”,如 PVOID、DWORD、ULONG 等

    Windows 似乎无法找到任何这些类型 我完全不知道该怎么办 我在 MSDN 上找到的东西似乎表明它们是默认包含的 但它们在 Native 程序或 CLR 程序中不起作用 我收到的具体错误是
  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 通过 PowerShell 运行 .cmd 文件

    我正在尝试使用 PowerShell 在远程服务器上运行 cmd 文件 在我的 ps1 脚本中我尝试过 C MyDirectory MyCommand cmd 它会导致此错误 C MyDirectory MyCommand cmd is n
  • sqlite3-ruby gem:无法构建 gem 本机扩展

    Update 看看这个后续问题 Windows 上的 Gem 更新 它坏了吗 https stackoverflow com questions 134581 gem update on windows is it broken 在 Win
  • Windows:使用 CMD(或 Java)从非特权运行特权命令

    我将有一个以管理员身份运行并侦听端口的服务 我的 GUI 程序将与管理员服务对话以获取需要管理员权限的项目 如果该服务尚未运行 我需要启动它 如何让我的 GUI 程序以管理员身份运行命令 我假设用户会被询问是否要继续 我希望我可以在 CMD
  • Qt GUI 应用程序中的控制台输出?

    我有一个在 Windows 上运行的 Qt GUI 应用程序 它允许传递命令行选项 在某些情况下我想向控制台输出一条消息 然后退出 例如 int main int argc char argv QApplication a argc arg
  • Nexus 7 (2013) 和 Win 7 64 - 尽管检查了许多论坛和在线资源,仍无法安装 USB 驱动程序

    我正在尝试设置 Nexus 7 2013 进行调试 但我在安装 USB 驱动程序的步骤中陷入困境 到目前为止 这是我尝试过的 采取的步骤 在 Nexus 7 2013 上打开调试模式 连接设备至 PC 下载 Google USB 驱动程序于
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 如何为 Windows toast 注册协议?

    如何注册 Windows toast 协议 样本中来自https blogs msdn microsoft com tiles and toasts 2015 07 02 adaptive and interactive toast not

随机推荐

  • 如何使用 Rails 5.1.0 和 jQuery

    我开始使用 Rails v5 1 0 据我所知 它默认没有 jQuery 但是想要安装 jQuery 来与 Zurb Foundation 6 一起使用 由于基础当前未加载模态 设置此功能的最佳方法是什么 Summary 安装纱线 yarn
  • Python,文件(1) - 为什么使用数字 [7,8,9,10,12,13,27] 和范围(0x20,0x100)来确定文本与二进制文件

    关于一个python中判断文件是二进制还是文本的解决方案 https stackoverflow com a 7392391 回答者使用 textchars bytearray 7 8 9 10 12 13 27 bytearray ran
  • mysql_real_escape_string 如何工作

    mysql real escape string 如何工作 是删除mysql函数还是在mysql函数之间添加 它比addslashes更好吗 mysql real escape string 调用 MySQL 的库函数 mysql real
  • +[NSString stringWithString:] -- 有什么意义?

    As NSString字符串是不可变的 它的值是多少stringWithString 类方法 与使用时我得到了实用程序NSMutableString 我只是没有看到实用程序NSString class 您可能有一个想要复制的 NSMutab
  • 修改 pandas 中的时间戳以使索引唯一

    我正在处理不定期记录的财务数据 有些时间戳是重复的 这使得分析变得棘手 这是数据示例 请注意有四个2016 08 23 00 00 17 664193时间戳 In 167 ts Out 168 last last sz bid ask da
  • Android Studio无法登录GitHub

    我在 Android Studio 上登录 GitHub 时遇到此问题 无法登录 无法获取用户信息 404 未找到 有人遇到过这个问题吗 我该如何解决这个问题 我也遇到过这个问题 尝试使用令牌登录 在浏览器上登录github com 转到设
  • vb6 调用形式,名称包含在数组中

    我有一个名为菜单的数组 它包含每个元素的表单名称 我怎样才能动态地调用它们 例如 如果菜单 1 登录 and 菜单 2 注销 我需要说 Login Show 但我想使用数组名称来执行此操作 我显然不能这样做 Menus X Show 这在V
  • 找不到语言 json 的内核 - 原子上的氢

    我发现有些人抱怨python kernel但这不是我的问题 这是错误的打印屏幕 https i stack imgur com DGvfC png 您可以在其中看到当我尝试运行 ipynb 文件时 它给我一个错误json kernel 该包
  • android EMFILE(打开文件太多)

    我实现了一个文件缓存来加载小图像以实现长网格视图 滚动一段时间后 我得到了很多libcore io ErrnoException open failed EMFILE Too many open files 我该如何避免这种情况 这是读取一
  • CodeDomProvider:LIB环境变量位于哪里?

    我正在使用一个System CodeDom Compiler CodeDomProvider CreateProvider CSharp 动态编译 C 类 最近 我从 Visual Studio 2010 切换到 Vistual Studi
  • Woot-badge 就像 PHP 中的一样

    有谁知道如何在用 PHP 编写的网站中实现某些功能 类似于堆栈溢出上的 Woot badge 和 Fanatic badge 我想奖励我的用户 如果他们连续 75 天每天访问我的网站 没有一天不访问它 我的网站使用会话进行登录 我使用 My
  • Google Maps Android API 实用程序集群管理器在创建集群之前是否有最低数量的标记?

    I am using the Google Maps Android API Utility Library to enable clustering in my app When five or more markers are co l
  • NSSpeechRecognizer 示例

    好的 所以我需要这样做 等待命令 晚安 然后运行一个动作 有人可以解释如何实现这一点吗 试试这个网站 http www cocoadev com index pl NSSpeechRecognizer http www cocoadev c
  • R 中带有 rCharts 的 nvd3 scatterPlot:增加标签的字体大小?

    我正在尝试增加使用创建的图中 x 轴和 y 轴的字体大小 NVD3 和 rCharts 这是我的情节代码 任何帮助表示赞赏 n1 lt nPlot pValues Chr data dat type scatterChart height
  • Git rebase 更改作者? [复制]

    这个问题在这里已经有答案了 所以我愚蠢地在一台未配置 git 的机器上进行了 3 次提交 没有作者或电子邮件 并且我想将这 3 次提交 尚未推送 作者更改为他们应该的内容 I know git commit amend可以换作者 但是怎么才
  • Android-按下按钮时将文本视图添加到布局

    现在我有一个文本字段 其下方有一个按钮 add 我想做到这一点 以便每次在文本字段中输入文本并按下 添加 按钮时 都会将一个新的文本视图添加到其下方的垂直布局中 并包含用户在该字段中键入的文本 我不想简单地使文本视图不可见 然后在单击时可见
  • Java 线程示例? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 谁能给出一个示例程序 以简单的方式解
  • BaseAdapter 类不会在 Asynctask 中 setAdapter - Android

    我有一个收集用户名 评论和数字的 asynctask 它将它们放入字符串中 然后调用 BaseAdapter 类 创建一个适配器 并将适配器设置为该类 但我的代码不起作用 它使应用程序崩溃 这是我的代码 public class Dashb
  • 试图根据具体情况抑制覆盖是错误的吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我明白为什么通过方法重写实现的多态性非常有用 我问的是 在某些情况下 当多态对象作为参数被接收时 而不是在定义其类时 尝试抑制它可能会出现什么问
  • 如何将 OpenSSL 密钥文件导入 Windows 证书存储区

    我有 OpenSSL 生成的 PEM 格式的 X 509 证书及其关联的密钥文件 连接到原型服务器时需要此证书进行身份验证 这在 Linux 上运行良好 我一直在使用 Microsoft SChannel API 在 Windows 平台上