当我尝试在Windows上配置WS-AT事务时,系统声称我不能使用特定的SSL证书,因为它没有私钥。我尝试过自签名证书和StartSSL提供的证书 - 没有运气。
我认为感谢扩展可以创建带附加私钥的证书,问题是有这样的工具吗?或者是否有一个软件可以从glassfish密钥库导出它?
答案 0 :(得分:1)
根据您在评论中提到的截屏视频中的内容,tiny.cer是您在Windows端导入的服务器证书。在Windows端,您不需要该证书的私钥。
mrbean.cer是您导入服务器端jks的证书。您也不需要服务器端的该证书的私钥。
哪个系统抱怨缺少私钥?如果是Windows端,请查看MMC证书管理单元中的证书详细信息。在截屏视频中的25:26,您可以看到tini.east.sun.com证书的证书详细信息。请注意,没有与证书关联的私钥。这很好。
屏幕录像未显示(或者我没有看到它快速扫描)是Windows端的mrbean证书的详细信息。在Windows系统上,如果使用mrbean证书使用SSL连接到服务器,则需要私钥。对于Windows系统上的该证书,证书详细信息选项卡应显示密钥的小图标和文本“您有一个与此证书对应的私钥”。 (私钥实际上不是证书的一部分 - 它是单独存储的。)
您不需要导出此私钥或将其复制到服务器,实际上,您不希望将私钥复制到服务器。您希望mmbean证书的私钥安全地保存在Windows系统上。
但是,如果您使用它连接,作为SSL连接的客户端证书,则必须在MMC管理单元中显示私钥,此外,还要执行SSL连接的Windows帐户必须能够访问私钥。当您在Windows端导入客户端证书(mrbean)时,您登录的Windows帐户将可以访问私钥,但如果执行连接的代码在不同的Windows帐户下运行,则不会。 / p>
在MMC管理单元中,右键单击证书(mrbean)并选择“所有任务 - >管理私钥”。从那里,您可以对正在进行SSL连接的Windows帐户授予“读取”权限。 (注意 - 无论您对私钥进行读访问,都可以使用证书通过SSL使用该证书进行连接。)
所以我不确定这是不是问题,但如果是Windows方面抱怨缺少私钥,并且您需要SSL连接的客户端证书,那么请检查(a)您是否拥有私有密钥与证书关联的密钥,以及(b)需要使用证书通过SSL连接的Windows帐户可以访问私钥。您可以在Windows系统上的MMC管理单元中检查这两件事。
不要在任何一个方向上复制私钥(客户端或服务器)。