我最近继承了一个具有最少文档的项目,该项目执行文档的数字签名,我收到了一个让我有点困惑的更改请求。
该应用程序基于 Java,并利用 Java 密钥库 (JKS) 并使用指定为命令行操作的别名的私钥对输入文档进行数字签名。这一切对我来说似乎相当简单,但是更改请求让我感到困惑。
客户要求能够使用“Windows”密钥库(更具体地说,据我所知,与个人证书相关的 Windows-MY 密钥库)。现在,我最初的假设是客户端请求的内容根本不可能,因为此密钥库将只包含证书,不能用于以任何身份签署文档。我不正确,还是 Windows-MY 密钥库只包含公共证书?我不相信私钥会嵌入其中一个证书中。
不幸的是,有一些沟通困难,所以我想在继续之前确保我的推理是正确的。
以下是支持我的案例的更多证据(来自客户的沟通):
创建 Windows 密钥库(从 Java 密钥库导出)步骤在这里 -
生成 RSA 密钥
keytool -genkey -alias mykey -keyalg RSA -keystore my.jks -keysize 2048
从上述密钥库导出证书:
keytool -export -alias mykey -file mykey.crt -keystore my.jks Enter keystore password: temp123 Certificate stored in file <mykey.crt>
在 Windows 密钥库中安装上述证书。
一个。双击“mykey.crt”并点击安装证书
湾。选择“将所有证书放入以下存储”单选按钮,然后单击“浏览”按钮将其添加到 Windows 证书存储中。C。在 WindowsMy 商店中检查此证书。
除非我错了,否则 keytool 只会生成证书类型而不是实际的公钥/私钥对?
任何帮助甚至肯定都将不胜感激,对问题缺乏明确性表示歉意,但不幸的是,这就是我目前所要做的。Java 或 Windows 特定的答案会有所帮助,但即使只是对基本原则的确认也将不胜感激。
提前致谢