这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

FIPS 客户端驱动程序

Vertica 提供符合 FIPS 的版本的 ODBC 和 JDBC 客户端驱动程序。

1 - 为 JDBC 安装 FIPS 客户端驱动程序

Vertica 提供符合联邦信息处理标准 (FIPS) 的 JDBC 客户端驱动程序。使用此 JDBC 客户端驱动程序访问与 FIPS 兼容的系统。有关 FIPS 的详细信息,请参阅美国联邦信息处理标准

在 JDBC 客户端上实施 FIPS 需要一个名为 BouncyCastle 的第三方 JRE 扩展,它是一组用于加密的 API。将 BouncyCastle API 与 JDK 1.7 和 1.8 以及支持的符合 FIPS 的操作系统一起使用。

以下过程将 FIPS BouncyCastle .jar 添加为 JVM JSSE 提供程序:

  1. 下载 BouncyCastle FIPS .jar 文件 bc-fips-1.0.0.jar

  2. bc-fips-1.0.0.jar 添加为 JRE 库扩展:

    path/to/jre/lib/ext/bc-fips-1.0.0.jar
    
  3. <path to jre>/lib/security/java.security 中将 BouncyCastle 添加为 SSL 安全提供程序:

    security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastle FipsProvider
    security.provider.2=com.sun.net.ssl.internal.ssl.Provider BCFIPS
    security.provider.3=sun.security.provider.Sun
    
  4. 使用以下 JVM java -D 系统属性命令实参将 KeyStore 和 TrustStore 文件设置为 BCFIPS:

    export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keyStoreProvider=BCFIPS
    export JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStoreProvider=BCFIPS
    
  5. path/to/jre/lib/security/java.security 中将 KeyStore 实施的默认类型设置为 BCFKS:

    keystore type=BCFKS
    ssl.keystore.type=BCFKS
    
  6. 创建 BCFKS 类型的密钥库和信任库:

    cd path/to/jre
    -storetype BCFKS
    -providername BCFIPS
    -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
    -provider org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
    -providerpath bc-fips-1.0.0.jar
    -alias CARoot
    -import -file path/to/server.crt.der
    
  7. 出现提示时,输入密钥库密码。系统将显示以下消息以确认已将证书添加到密钥库:

    "Certificate was added to the keystore"
    
  8. 使用 SSL DB 运行 Java 程序:

    1. 将 vertica.kafka.keystore.bcfks 密钥库从 path/to/jre/lib/ext/ 复制到 Java 程序文件夹。

    2. 将 Vertica 服务器证书转换为能够由 Java 理解的形式:

      $ path/to/java/bin/keytool -keystore verticastore -keypasswd -storepass password
                              -importkeystore -noprompt -alias verticasql -import -file server.crt.der
      
    3. 安装 JDBC

  9. 对实施进行测试:

    $ java -Djavax.net.debug=ssl -Djavax.net.ssl.keyStore='vertica.kafka.keystore.bcfks'
    -Djavax.net.ssl.keyStorePassword='password'
    -Djavax.net.ssl.trustStore='path/to/verticastore'
    -Djavax.net.ssl.trustStorePassword='password'
    -cp .:vertica-jdbc-12.0.0-0.jar FIPSTest
    

2 - 为 ODBC 和 vsql 安装 FIPS 客户端驱动程序

Vertica 为与 FIPS 兼容的系统提供 FIPS 客户端。与 FIPS 兼容的系统启用了 FIPS,其中包含 OpenSSL 库。

FIPS 客户端支持 ODBC 和 vsql,仅提供 64 位版本。

先决条件

确认主机系统正在运行受 Vertica 支持且符合 FIPS 的操作系统

FIPS 客户端安装程序会检查您的主机系统以获取 sysctl 参数 crypto.fips_enabled 的值。您必须将此参数设置为 1(启用)。如果未启用您的主机,则客户端不会安装。

安装 FIPS 客户端

要安装 FIPS 客户端驱动程序包:

  1. Vertica 驱动程序下载页面 下载 FIPS 客户端包。

  2. 以 root 身份登录客户端系统。

  3. 安装已下载的 RPM 包:

    # rpm -Uvh package_name.rpm
    

对于 ODBC,在您安装了客户端包之后,创建 DSN 并设置一些额外的配置参数。有关详细信息,请参阅:

您可以选择将 vsql 客户端添加到 PATH 环境变量,以便不需要输入完整路径即可运行该客户端。为此,将下行添加到主目录中的 .profile 文件或全局 /etc/profile 文件:

export PATH=$PATH:/opt/vertica/bin

客户端如何搜索 OpenSSL 库

当您启动客户端应用程序以连接到服务器时,客户端会为支持的 OpenSSL 版本搜索并加载 OpenSSL 库 libcrypto.so.10libssl.so.10

  • 客户端首先检查是否已设置 LD_LIBRARY_PATH

  • 如果 LD_LIBARY_PATH 位置不包含库,它会检查 RunPath/opt/vertica/lib 或 ODBC 或 vsql 目录结构 (../lib)。

下图描述了 OpenSSL 库的搜索过程: