将 HFM 服务器配置为使用 SSL 数据库连接

将数据库的证书添加到 HFM 服务器上的信任库

必须在运行 HFM 数据源的每个 EPM 服务器上执行以下步骤。下面使用的 %MW_HOME% 环境变量是 Oracle Middleware 安装的位置。在 EPM 安装期间默认不创建此环境变量,此处用于显示 EPM 安装的父目录。

EPM 安装的位置由 EMP_ORACLE_HOME 环境变量指定。下面的示例将密钥库和信任库放置在与 EPM 安装位置相同的目录中。密钥库和信任库文件可以位于 HFM 服务器文件系统的任何位置。

  1. %MW_HOME% 下创建一个新目录来存储 Java 密钥库和 PKCS12 信任库。
    1. cd %MW_HOME%
    2. mkdir certs
  2. 从 JDK 复制 Java 密钥库文件 cacerts。
    1. cd %MW_HOME%\certs
    2. 复制 %MW_HOME%\jdk1.8.0_181\jre\lib\security\cacerts testing_cacerts

      复制并使用该 JDK 密钥库而非使用 JDK 默认密钥库的原因是,如果升级 JDK 并删除了之前的 JDK,插入到默认密钥库中的密钥和证书将丢失。

  3. 将此 Base 64 证书复制到 %MW_HOME%\certs
  4. 将证书导入到 Java 密钥库文件 testing_cacerts
    1. 例如,keytool -importcert -file bur00cbb-certificate.crt -keystore testing_cacerts -alias "myserver"
      1. 您将必须指定密钥库的密码。
      2. 您应该将 "myserver" 替换为数据库服务器的完全限定域。
    2. 当系统提示您是否应信任证书的问题时,请指定 y
  5. 从 JDK 的 Java 密钥库文件创建 PKCS12 格式的信任库。例如:
    keytool -importkeystore -srckeystore testing_cacerts -srcstoretype JKS -deststoretype PKCS12 -destkeystore testing_cacerts.pfx

将 HFM JDBC 连接更新为使用 SSL

  1. 将 HFM 数据库 JDBC 连接重新配置为使用 SSL。
    1. 启动 EPM 配置工具。
      1. 选择 Financial Management 节点下的配置数据库部署到应用程序服务器节点。
      2. 单击下一步
      3. 为 HFM JDBC 连接执行以下每个步骤
        1. 在端口、服务名称、用户名和密码列中输入连接的 SSL 端口、服务名称、用户名和密码。
        2. 单击 ( + ) 以打开高级数据库选项
        3. 选中使用安全连接复选框。
        4. 输入在步骤 2 中创建的 Java 密钥库的位置。
        5. 单击应用
        6. 单击 ( + ) 以打开高级数据库选项
        7. 单击编辑并使用修改后的 JDBC URL。请注意,不应对显示的 JDBC URL 进行任何更改。
        8. 单击应用
        9. 单击下一步
    2. 按照 EPM 文档中所述,完成其余步骤以部署 HFM 应用程序。
  2. 打开命令窗口或 shell 以手动更新 EPM 注册表,以便数据源使用的 ODBC 连接可以启用 SSL。

    执行下列每个命令:

    epmsys_registry.bat addproperty FINANCIAL_MANAGEMENT_PRODUCT/DATABASE_CONN/@ODBC_TRUSTSTORE "C:
    \Oracle\Middleware\certs\testing_cacerts.pfx"
    epmsys_registry.bat addencryptedproperty FINANCIAL_MANAGEMENT_PRODUCT/DATABASE_CONN
    /@ODBC_TRUSTSTOREPASSWORD <truststorepassword>
    epmsys_registry.bat addproperty FINANCIAL_MANAGEMENT_PRODUCT/DATABASE_CONN
    /@ODBC_VALIDATESERVERCERTIFICATE false

    在以上示例中,路径 C:\Oracle\Middleware 是步骤 1、2 和 3 中的 %MW_HOME% 值。

    仅当使用自签名证书时,才应将属性 FINANCIAL_MANAGEMENT_PRODUCT/DATABASE_CONN/@ODBC_VALIDATESERVERCERTIFICATE 设置为 false。FINANCIAL_MANAGEMENT_PRODUCT/DATABASE_CONN/@ODBC_TRUSTSTOREPASSWORD 的值应该是步骤 2 中复制的原始 Java 密钥库的密码。

更新 HFM 使用的 TNS 名称条目

编辑 TNSNAMES.ORA 可创建新条目并重命名旧条目。以下示例显示了 HFM 服务器上已应用必要更改的更新后 TNSNAMES.ORA 文件。进行这些更改的原因是 HFM 查找并使用名为 HFMTNS 的 TNS 名称条目。必须更改此条目的协议和端口,XFMDataSource 才能正常工作。

HFMTNS_UNENC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = myserver_service)
(SERVER = DEDICATED)
)
)
HFMTNS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCPS)(HOST = myserver)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = myserver_service)
(SERVER = DEDICATED)
)
)

原始 HFMTNS 条目已重命名为 HFMTNS_UNENC。通过复制 HFMTNS_UNENC 条目并将其重命名为 HFMTNS 生成了新的 HFMTNS。然后,协议更新为 TCPS,并且端口更改为 1522。指定的端口必须与 TNS LISTENER.ORA 文件中指定的端口相同。