# 将证书导入为可信证书

> 原文： [https://docs.oracle.com/javase/tutorial/security/toolsign/rstep2.html](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.  在一行中键入以下命令：

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

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

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

```
keytool -printcert -file Example.cer

```

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