将证书导入为可信证书
原文: https://docs.oracle.com/javase/tutorial/security/toolsign/rstep2.html
在授予签名代码读取指定文件的权限之前,您需要将 Susan 的证书作为可信证书导入密钥库。
假设你收到了苏珊
- 签名的 JAR 文件
sCount.jar
,包含Count.class
文件,和 - 文件
Example.cer
,其中包含与用于对 JAR 文件进行签名的私钥对应的公钥的公钥证书。
即使您创建了这些文件并且它们实际上并未在任何地方运输,您也可以模拟除了创建者和发件人之外的其他人,Susan。假装你现在是雷。作为 Ray,您将创建一个名为exampleraystore
的密钥库,并使用它将证书导入别名为susan
的条目。
只要使用keytool
命令指定尚不存在的密钥库,就会创建密钥库。因此,我们可以创建exampleraystore
并通过单个keytool
命令导入证书。在命令窗口中执行以下操作。
- 转到包含公钥证书文件
Example.cer
的目录。 (您实际上应该已经在那里,因为本课程假定您始终保持在一个目录中。) 在一行中键入以下命令:
keytool -import -alias susan -file Example.cer -keystore exampleraystore
由于密钥库尚不存在,因此将创建密钥库,系统将提示您输入密钥库密码;输入你想要的任何密码。
keytool
命令将打印出证书信息并要求您验证它,例如,通过将显示的证书指纹与从另一个(可信)信息源获得的指纹进行比较。 (每个指纹都是一个相对较短的数字,可以唯一且可靠地识别证书。)例如,在现实世界中,您可以调用 Susan 并询问她指纹应该是什么。她可以通过执行命令获取她创建的Example.cer
文件的指纹
keytool -printcert -file Example.cer
如果她看到的指纹与keytool
向您报告的指纹相同,则证书在传输过程中未被修改。在这种情况下,让keytool
继续在密钥库中放置可信证书条目。该条目包含来自文件Example.cer
的公钥证书数据,并被分配了别名susan
。