将证书导入为可信证书

原文: 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命令导入证书。在命令窗口中执行以下操作。

  1. 转到包含公钥证书文件Example.cer的目录。 (您实际上应该已经在那里,因为本课程假定您始终保持在一个目录中。)
  2. 在一行中键入以下命令:

    1. keytool -import -alias susan -file Example.cer -keystore exampleraystore

由于密钥库尚不存在,因此将创建密钥库,系统将提示您输入密钥库密码;输入你想要的任何密码。

keytool命令将打印出证书信息并要求您验证它,例如,通过将显示的证书指纹与从另一个(可信)信息源获得的指纹进行比较。 (每个指纹都是一个相对较短的数字,可以唯一且可靠地识别证书。)例如,在现实世界中,您可以调用 Susan 并询问她指纹应该是什么。她可以通过执行命令获取她创建的Example.cer文件的指纹

  1. keytool -printcert -file Example.cer

如果她看到的指纹与keytool向您报告的指纹相同,则证书在传输过程中未被修改。在这种情况下,让keytool继续在密钥库中放置可信证书条目。该条目包含来自文件Example.cer的公钥证书数据,并被分配了别名susan