<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenText Analytics Database 26.2.x – FIPS client drivers</title>
    <link>/en/connecting-to/client-libraries/client-drivers/install-config/fips/</link>
    <description>Recent content in FIPS client drivers on OpenText Analytics Database 26.2.x</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/connecting-to/client-libraries/client-drivers/install-config/fips/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Connecting-To: Installing the FIPS client driver for JDBC</title>
      <link>/en/connecting-to/client-libraries/client-drivers/install-config/fips/installing-fips-client-driver-jdbc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/connecting-to/client-libraries/client-drivers/install-config/fips/installing-fips-client-driver-jdbc/</guid>
      <description>
        
        
        &lt;p&gt;OpenText™ Analytics Database offers a JDBC client driver that is compliant with the Federal Information Processing Standard (FIPS). Use this JDBC client driver to access systems that are FIPS-compatible. For more information on FIPS, see &lt;a href=&#34;../../../../../../en/security-and-authentication/federal-information-processing-standard/#&#34;&gt;Federal information processing standard&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Implementing FIPS on a JDBC client requires a third-party JRE extension called &lt;a href=&#34;https://www.bouncycastle.org/&#34;&gt;BouncyCastle&lt;/a&gt;, a collection of APIs used for cryptography. Use BouncyCastle APIs with JDK 1.7 and 1.8, and a &lt;a href=&#34;../../../../../../en/supported-platforms/fips-140-2-supported-platforms/&#34;&gt;supported FIPS-compliant operating system&lt;/a&gt;.

&lt;div class=&#34;admonition important&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Important&lt;/h4&gt;
When using the JDBC FIPS-compliant client, expect a slight delay for the client to establish a secure connection with the database. If necessary, increase your system&#39;s entropy to ensure a fast and secure connection.
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;The following procedure adds the FIPS BouncyCastle &lt;code&gt;.jar&lt;/code&gt; as a JVM JSSE provider:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://downloads.bouncycastle.org/fips-java/bc-fips-1.0.0.jar&#34;&gt;Download&lt;/a&gt; the BouncyCastle FIPS &lt;code&gt;.jar&lt;/code&gt; file &lt;code&gt;bc-fips-1.0.0.jar&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add &lt;code&gt;bc-fips-1.0.0.jar&lt;/code&gt; as a JRE library extension:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&lt;span class=&#34;code-variable&#34;&gt;path/to/jre&lt;/span&gt;/lib/ext/bc-fips-1.0.0.jar
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add BouncyCastle as an SSL security provider in &lt;code&gt;&amp;lt;path to jre&amp;gt;/lib/security/java.security&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the following JVM java -D system property command arguments to set the &lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/accessing/java/creating-and-configuring-connection/configuring-tls-jdbc-clients/&#34;&gt;KeyStore and TrustStore&lt;/a&gt; files to BCFIPS:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;export JAVA_OPTS=&amp;#34;$JAVA_OPTS -Djavax.net.ssl.keyStoreProvider=BCFIPS
export JAVA_OPTS=&amp;#34;$JAVA_OPTS -Djavax.net.ssl.trustStoreProvider=BCFIPS
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set the default type for the KeyStore implementation to BCFKS in &lt;em&gt;&lt;code&gt;path/to/jre&lt;/code&gt;&lt;/em&gt;/lib/security/java.security:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;keystore type=BCFKS
ssl.keystore.type=BCFKS
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

If you are using FIPS with BouncyCastle, you must create all client keys and certificates with the BCFKS store type, including the Vertica-to-Kafka keys and certificates.

&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the BCFKS-type keystore and truststore:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd &lt;span class=&#34;code-variable&#34;&gt;path/to/jre&lt;/span&gt;
-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 &lt;span class=&#34;code-variable&#34;&gt;path/to/server.crt.der&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When prompted, enter the keystore password. The following message is displayed to confirm that a certificate was added to the keystore:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#34;Certificate was added to the keystore&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the Java program with SSL DB:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Copy the vertica.kafka.keystore.bcfks keyStore from &lt;em&gt;&lt;code&gt;path/to/jre&lt;/code&gt;&lt;/em&gt;&lt;code&gt;/lib/ext/&lt;/code&gt; to the Java program folder.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Convert the database server certificate to a form that Java understands:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ &lt;span class=&#34;code-variable&#34;&gt;path/to/java/bin&lt;/span&gt;/keytool -keystore verticastore -keypasswd -storepass password
                        -importkeystore -noprompt -alias verticasql -import -file server.crt.der
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/client-drivers/install-config/jdbc/installing-jdbc/&#34;&gt;Install JDBC&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Test the implementation:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ java -Djavax.net.debug=ssl -Djavax.net.ssl.keyStore=&amp;#39;vertica.kafka.keystore.bcfks&amp;#39;
-Djavax.net.ssl.keyStorePassword=&amp;#39;password&amp;#39;
-Djavax.net.ssl.trustStore=&amp;#39;&lt;span class=&#34;code-variable&#34;&gt;path/to/verticastore&lt;/span&gt;&amp;#39;
-Djavax.net.ssl.trustStorePassword=&amp;#39;password&amp;#39;
-cp .:vertica-jdbc-12.0.0-0.jar FIPSTest
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Connecting-To: Installing the FIPS client driver for ODBC and vsql</title>
      <link>/en/connecting-to/client-libraries/client-drivers/install-config/fips/installing-fips-client-driver-odbc-and-vsql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/connecting-to/client-libraries/client-drivers/install-config/fips/installing-fips-client-driver-odbc-and-vsql/</guid>
      <description>
        
        
        &lt;p&gt;OpenText™ Analytics Database offers a FIPS client for FIPS-compatible systems. A FIPS-compatible system is FIPS-enabled and includes the OpenSSL libraries.&lt;/p&gt;
&lt;p&gt;The FIPS client supports ODBC and vsql and is offered in 64-bit only.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Verify that your host system is running a &lt;a href=&#34;../../../../../../en/supported-platforms/fips-140-2-supported-platforms/&#34;&gt;FIPS-compliant operating system that the database supports&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The FIPS client installer checks your host system for the value of the sysctl parameter, crypto.fips_enabled. You must set this parameter to 1 (enabled). If your host is not enabled, the client does not install.&lt;/p&gt;
&lt;h2 id=&#34;installing-the-fips-client&#34;&gt;Installing the FIPS client&lt;/h2&gt;
&lt;p&gt;To install the FIPS client driver package:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download the FIPS client package from the &lt;a href=&#34;https://www.vertica.com/download/vertica/client-drivers/&#34;&gt;OpenText™ Analytics Database driver downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Log in to the client system as root.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install the RPM package that you downloaded:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# rpm -Uvh &lt;span class=&#34;code-variable&#34;&gt;package_name&lt;/span&gt;.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For ODBC, after you have installed the client package, create a DSN and set some additional configuration parameters. For more information, see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/client-drivers/install-config/odbc/creating-an-odbc-data-source-name-dsn/creating-an-odbc-dsn-linux/#&#34;&gt;Creating an ODBC DSN for Linux&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../../en/connecting-to/client-libraries/client-drivers/install-config/odbc/odbc-driver-settings/#&#34;&gt;ODBC driver settings&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can optionally add the vsql client to your PATH environment variable so that you do not need to enter its full path to run it. To do so, add the following to the &lt;code&gt;.profile&lt;/code&gt; file in your home directory or the global &lt;code&gt;/etc/profile&lt;/code&gt; file:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;export PATH=$PATH:/opt/vertica/bin
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;how-the-client-searches-for-openssl-libraries&#34;&gt;How the client searches for OpenSSL libraries&lt;/h2&gt;
&lt;p&gt;When you launch the client application to connect to the server, the client searches for and loads the OpenSSL libraries &lt;code&gt;libcrypto.so.10&lt;/code&gt; and &lt;code&gt;libssl.so.10&lt;/code&gt; for &lt;a href=&#34;../../../../../../en/supported-platforms/fips-140-2-supported-platforms/&#34;&gt;supported OpenSSL versions&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The client first checks to see if &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; is set.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the &lt;code&gt;LD_LIBARY_PATH&lt;/code&gt; location does not include the libraries, it checks &lt;code&gt;RunPath&lt;/code&gt;, either &lt;code&gt;/opt/vertica/lib&lt;/code&gt; or within the ODBC or vsql directory structure (&lt;code&gt;../lib&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;admonition important&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Important&lt;/h4&gt;
The &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt;, if set, directs the search path for the OpenSSL libraries. The client loads the libraries from any set or preset &lt;code&gt;LD_LIBRARY_PATH&lt;/code&gt; location.
&lt;/div&gt;
&lt;p&gt;The following figure depicts the search process for the OpenSSL libraries:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../../../../../images/fips/openssl-client-search.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
