将证书导入为受信任的证书
在授予签名代码读取特定文件的权限之前,需要将 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
向您报告的指纹相同,则说明该证书在传输过程中没有被修改。在这种情况下,您让keytool
continue 在密钥库中放置受信任的证书条目。该条目包含来自文件Example.cer
的公共密钥证书数据,并被赋予别名susan
。