将根证书添加到 Java CA 证书存储

使用 Azure 服务(如 Azure 服务总线)的应用程序需要信任 Baltimore CyberTrust 根证书。 此证书应该已安装在系统中,但如果还没有,请参阅本教程中的步骤,了解如何使用 Oracle 的 keytool 将所需的证书颁发机构 (CA) 根证书添加到将要用于 Azure 服务的 Java CA 证书 (cacerts) 存储。

Oracle 的 keytool 实用程序是一种密钥和证书管理工具,可供开发人员管理那些可以与 Java 配合使用的受信任证书的列表。 可以在压缩 JDK 并将其添加到 Azure 项目的 approot 文件夹之前使用 keytool 来添加 CA 证书,也可以运行使用 keytool 的启动任务来添加证书。

Azure 已在 2013 年 4 月 15 日开始从 GTE CyberTrust 全局根证书迁移到 Baltimore CyberTrust 根证书。 以下步骤演示如何使用 keytool 将 Baltimore CyberTrust 根证书添加到 Java CA 证书 (cacerts) 存储。

备注

可以根据本文中的步骤配置 Java SDK,使之信任其他受信任证书颁发机构颁发的根证书。 例如,可以从 GeoTrust 根证书提供的证书列表中选择一个根证书。

确定安装了哪些根证书

Baltimore 证书可能已安装到 cacerts 存储中,因此需通过以下步骤来确定它是否已安装。

  1. 在管理员命令提示符下,导航到 JDK 的 jdk\jre\lib\security 文件夹,然后运行以下命令,以便列出安装在系统中的证书:

    keytool -list -keystore cacerts
    
  2. 如果系统提示输入存储密码,可输入默认密码 changeit

    备注

    若要更改存储密码,请参阅 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html 中的 keytool 文档。

  3. 如果没有看到指纹为 d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74 的证书,请按以下部分的步骤来下载并安装证书。

将根证书添加到 cacerts 存储的步骤

  1. https://cacert.omniroot.com/bc2025.crt 下载 Baltimore CyberTrust 根证书,将其保存到 jdk\jre\lib\security 文件夹中扩展名为 .cer 的本地文件。 就此示例来说,假定已下载 Baltimore CyberTrust 根证书文件并将其另存为 bc2025.cer

    备注

    此 Baltimore CyberTrust 根证书的序列号为 02:00:00:b9,SHA1 指纹为 d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74

  2. 使用以下命令将证书导入 cacerts 存储:

    keytool -keystore cacerts -importcert -alias bc2025ca -file bc2025.cer
    

    其中:

    参数 说明
    keystore 指定证书存储。
    importcert 指定你要导入证书。
    alias 指定证书的别名。
    file 指定要导入的根证书的文件名。
  3. 如果系统提示信任该证书,请验证指纹是否为 d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74。如果指纹正确,则键入 y

  4. 运行以下命令可确保已成功导入 CA 证书:

    keytool -list -keystore cacerts
    

成功地将根证书添加到 JDK 以后,即可将 JDK 的内容压缩后添加到 Azure 项目的 approot 文件夹。

后续步骤

有关 keytool 实用程序的详细信息,请参阅 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html

有关 Java 的详细信息,请参阅面向 Java 开发人员的 Azure