ssl - 如何使用私钥生成SSL证书?

标签 ssl openssl ssl-certificate x509certificate certificate

当我尝试在 Windows 上配置 WS-AT 事务时,系统声称我不能使用特定的 SSL 证书,因为它没有私钥。我尝试了自签名证书和 StartSSL 提供的证书 - 没有成功。

我认为由于扩展,可以创建带有附加私钥的证书,问题是有这样的工具吗?或者是否有一款软件可以从 glassfish keystore 导出它?

最佳答案

从我在评论中提到的截屏视频中看到的,tiny.cer 是您在 Windows 端导入的服务器证书。在 Windows 端,您不需要该证书的私钥。

mrbean.cer 是您在服务器端导入到 jks 的证书。您在服务器端也不需要该证书的私钥。

哪个系统提示缺少私钥?如果是 Windows 端,则查看 MMC 证书管理单元中的证书详细信息。截屏25:26处,可以看到tini.east.sun.com证书的证书详情。请注意,没有与证书关联的私钥。这很好。

截屏视频没有显示(或者我没有看到它快速扫描)的是 Windows 端的 mrbean 证书的详细信息。在 Windows 系统上,如果您使用 mrbean 证书通过 SSL 连接到服务器,则需要私钥。对于 Windows 系统上的该证书,证书详细信息选项卡应显示一个 key 小图标和文本“您有一个与此证书相对应的私钥”。 (私钥实际上并不是证书的一部分——它是单独存储的。)

您不需要导出此私钥或将其复制到服务器,事实上,您不想将私钥复制到服务器。您希望将 mrbean 证书的私钥安全地保存在 Windows 系统上。

但是,如果您使用它进行连接,作为 SSL 连接的客户端证书,则必须在 MMC 管理单元中显示一个私钥,此外,进行 SSL 连接的 Windows 帐户必须有权访问私钥。当您在 Windows 端导入客户端证书 (mrbean) 时,您登录的 Windows 帐户将有权访问私钥,但如果执行连接的代码在不同的 Windows 帐户下运行,则不会。

在 MMC 管理单元中,右键单击证书 (mrbean) 并选择“所有任务 -> 管理私钥”。从那里,您可以为正在进行 SSL 连接的 Windows 帐户授予读取访问权限。 (请注意——无论您向谁授予对私钥的读取权限,都可以使用该证书通过 SSL 使用该证书进行连接。)

所以我不确定这是不是问题所在,但是如果是 Windows 端提示缺少私钥,并且您需要 SSL 连接的客户端证书,那么请检查 (a) 您是否有私钥与证书关联的 key ,以及 (b) 需要使用证书通过 SSL 连接的 Windows 帐户可以访问私钥。您可以在 Windows 系统的 MMC 管理单元中检查这两项。

不要在任何方向复制私钥(客户端或服务器)。

关于ssl - 如何使用私钥生成SSL证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538850/

相关文章:

ruby - DES3 加密:ruby openssl::cipher 与 oracle dbms_obfuscation_toolkit

php - 使用 SSL 证书验证 Web 浏览器

c# - 我可以从 System.Net.Security.SslStream 获得什么级别的线程安全?

ssl - 强制访问者默认使用 SSL - Apache2

node.js - nodejs - 证书已过期

c# - 使用 .pfx 证书封装、签名和创建 PKCS#7 DER 消息

android - 在 Webview 中安装用于打开站点​​的证书?

java - 通过 SSL 与 Java 连接 : The basics

c - openssl命令行解密aes ctr 128

windows - 添加符合 SSPI 的第三方密码套件 (Windows)