将证书导入为受信任的证书

在授予签名代码读取特定文件的权限之前,需要将 Susan 的证书作为密钥库中的受信任证书导入。

假设您是从苏珊那里收到的

  • 签名的 JAR 文件sCount.jar,其中包含Count.class文件,以及

  • 文件Example.cer,其中包含与用于签名 JAR 文件的私钥相对应的公钥的公钥证书。

即使您创建了这些文件,但实际上并没有将它们传输到任何地方,您也可以模拟创建者和发送者 Susan 之外的其他人。假设您现在是 Ray。充当 Ray,您将创建一个名为exampleraystore的密钥库,并将其用于将证书导入别名为susan的条目中。

每当您使用keytool命令指定尚不存在的密钥库时,都会创建一个密钥库。因此,我们可以创建exampleraystore并通过单个keytool命令导入证书。在命令窗口中执行以下操作。

  • 进入包含公钥证书文件Example.cer的目录。 (您实际上应该已经在那儿了,因为本类假定您始终在一个目录中.)

  • 在一行上键入以下命令:

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

由于密钥库尚不存在,因此将创建密钥库,并提示您 Importing 密钥库密码。Importing 您想要的任何密码。

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

keytool -printcert -file Example.cer

如果她看到的指纹与keytool向您报告的指纹相同,则说明该证书在传输过程中没有被修改。在这种情况下,您让keytoolcontinue 在密钥库中放置受信任的证书条目。该条目包含来自文件Example.cer的公共密钥证书数据,并被赋予别名susan