7.5. SGD 服务器证书库

每台 SGD 服务器有两个证书库:CA 证书信任库和客户端证书库。

7.5.1. CA 证书信任库

每台 SGD 服务器都有其自己的 CA 证书信任库。该信任库是 /opt/tarantella/bin/jre/lib/security/cacerts 文件。

CA 证书信任库包含 SGD 服务器信任的 CA 证书。

/opt/tarantella/etc/data/cacerts.txt 文件包含首次安装 SGD 时 CA 证书信任库中的所有 CA 证书的 X.500 标识名 (Distinguished Name, DN) 和 MD5 签名。这些是默认情况下 SGD 支持的 CA。要添加对其他 CA 的支持,可以将 CA 证书导入信任库。

在以下情况下,您可能需要导入 CA 证书:

必须导入的证书如下所述:

  • 不受支持的 CA-导入 CA 或根证书

  • 中间 CA-导入 CA 证书链

如果使用 tarantella security customca 命令来安装 CA 证书或 CA 证书链,此命令还会将 CA 证书导入 CA 证书信任库。它仅在运行此命令的 SGD 服务器上执行此操作。

要手动导入 CA 证书,请使用 keytool 应用程序。有关如何使用 keytool 应用程序的详细信息,请参见 JDK Tools and Utilities(JDK 工具和实用程序)文档。SGD 主机上的 /opt/tarantella/var/tsp/ca.pem 文件包含 CA 证书或证书链。

如果需要导入某个 CA 证书链,请分别导入该链中的每个证书。

CA 证书信任库的密码是 changeit

7.5.1.1. 如何将 CA 证书或证书链导入 CA 证书信任库

确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。

对阵列中的每个 SGD 服务器重复以下过程。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 导入 CA 证书。

    要导入某个 CA 证书链,必须分别导入该链中的每个证书。

    使用以下命令:

    # /opt/tarantella/bin/jre/bin/keytool -importcert \
    -keystore /opt/tarantella/bin/jre/lib/security/cacerts \
    -storepass changeit -file CA-certificate-path \
    -alias alias
    

    使用 -alias 选项来唯一标识证书。

  3. 重新启动 SGD 服务器。

    必须重新启动 SGD 服务器,以使 CA 证书生效。

7.5.2. 客户端证书库

每台 SGD 服务器都有其自己的客户端证书库。这是 /opt/tarantella/var/info/certs/sslkeystore 文件。

客户端证书库包含 SGD 服务器连接到其他服务器时用来标识自身的客户端证书。

可以使用 keytool 应用程序创建和安装服务器客户端证书。有关如何使用 keytool 应用程序的详细信息,请参见 JDK Tools and Utilities(JDK 工具和实用程序)文档。

向客户端证书库添加或从中删除证书时,必须提供密码。客户端证书库的密码对于每台 SGD 服务器是唯一的,并且可以在 /opt/tarantella/var/info/key 文件中找到。请为 -storepass-keypass 选项使用此密码。

7.5.2.1. 如何为 SGD 服务器创建客户端证书 CSR

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 为客户端证书生成密钥对。

    # /opt/tarantella/bin/jre/bin/keytool -genkeypair \
    -keyalg rsa \
    -keystore /opt/tarantella/var/info/certs/sslkeystore \
    -storepass "$(cat /opt/tarantella/var/info/key)" \
    -alias alias \
    -keypass "$(cat /opt/tarantella/var/info/key)"
    

    使用 -alias 选项来唯一标识密钥对。

  3. 为客户端证书生成一个证书签名请求 (Certificate Signing Request, CSR)。

    # /opt/tarantella/bin/jre/bin/keytool -certreq \
    -keystore /opt/tarantella/var/info/certs/sslkeystore \
    -storepass "$(cat /opt/tarantella/var/info/key)" \
    -alias alias \
    -keypass "$(cat /opt/tarantella/var/info/key)" \
    -file CSR-path
    

    alias 必须与生成密钥对时使用的别名相同。别名不区分大小写。

7.5.2.2. 如何为 SGD 服务器安装客户端证书

确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。

对阵列中的每个 SGD 服务器重复以下过程。

  1. 在 SGD 主机上,以超级用户 (root) 身份登录。

  2. 安装客户端证书。

    # /opt/tarantella/bin/jre/bin/keytool -importcert \
    -file certificate-path 
    -keystore /opt/tarantella/var/info/certs/sslkeystore \
    -storepass "$(cat /opt/tarantella/var/info/key)" \
    -alias alias \
    -keypass "$(cat /opt/tarantella/var/info/key)"
    

    alias 必须与为客户端证书生成 CSR 时使用的别名相同。别名不区分大小写。

  3. 重新启动 SGD 服务器。

    必须重新启动 SGD 服务器,客户端证书才能生效。