<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenText Analytics Database 26.2.x – TLS overview</title>
    <link>/en/security-and-authentication/tls-protocol/tls-overview/</link>
    <description>Recent content in TLS overview on OpenText Analytics Database 26.2.x</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/security-and-authentication/tls-protocol/tls-overview/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Security-and-Authentication: TLS configurations</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/tls-configs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/tls-configs/</guid>
      <description>
        
        
        &lt;p&gt;A TLS Configuration is a database object that encapsulates all settings and certificates needed to configure TLS. After setting up a TLS Configuration, you can use it by setting it as the value for one or more of the following database parameters, each of which controls TLS for a certain type of connection between the OpenText™ Analytics Database and a client or server:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ServerTLSConfig&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;LDAPLinkTLSConfig&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;LDAPAuthTLSConfig&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;InternodeTLSConfig&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These parameters are set to &lt;a href=&#34;../../../../en/sql-reference/config-parameters/security-parameters/&#34;&gt;predefined TLS Configurations by default&lt;/a&gt; so if you just want to configure TLS, you should use &lt;a href=&#34;../../../../en/sql-reference/statements/alter-statements/alter-tls-config/#&#34;&gt;ALTER TLS CONFIGURATION&lt;/a&gt; to modify a &lt;a href=&#34;#alter&#34;&gt;predefined TLS Configuration&lt;/a&gt;. Otherwise, you can use &lt;a href=&#34;../../../../en/sql-reference/statements/create-statements/create-tls-config/#&#34;&gt;CREATE TLS CONFIGURATION&lt;/a&gt; to &lt;a href=&#34;#create&#34;&gt;create a custom TLS Configuration&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;reusing-an-existing-tls-configurations&#34;&gt;Reusing an existing TLS configurations&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;#alter&#34;&gt;&lt;/a&gt;
To reuse an &lt;a href=&#34;../../../../en/sql-reference/system-tables/v-monitor-schema/tls-configs/&#34;&gt;existing TLS Configuration&lt;/a&gt;, use &lt;a href=&#34;../../../../en/sql-reference/statements/alter-statements/alter-tls-config/&#34;&gt;ALTER TLS CONFIGURATION&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following table lists each TLS connection type parameter with its associated connection type and predefined TLS Configuration:&lt;/p&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;

For OAuth, the database is the client and the identity provider is the server. TLS for this connection type is not controlled by a TLS Configuration. For details, see &lt;a href=&#34;../../../../en/security-and-authentication/client-authentication/oauth-2-0-authentication/configuring-oauth-authentication/configure-keycloak/#&#34;&gt;Configure Keycloak&lt;/a&gt;.

&lt;/div&gt;

&lt;table class=&#34;table table-bordered&#34; &gt;



&lt;tr&gt; 

&lt;th &gt;
Connection Type&lt;/th&gt; 

&lt;th &gt;
Parameter&lt;/th&gt; 

&lt;th &gt;
Default TLS Configuration&lt;/th&gt; 

&lt;th &gt;
Example&lt;/th&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Client-server where the database is the server&lt;/td&gt; 

&lt;td &gt;
ServerTLSConfig&lt;/td&gt; 

&lt;td &gt;
&lt;code&gt;server&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;
&lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/configuring-client-server-tls/#&#34;&gt;Configuring client-server TLS&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Connections for the &lt;a href=&#34;../../../../en/security-and-authentication/ldap-link-service/&#34;&gt;LDAP Link service&lt;/a&gt;&lt;/td&gt; 

&lt;td &gt;
LDAPLinkTLSConfig&lt;/td&gt; 

&lt;td &gt;
&lt;code&gt;LDAPLink&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;
&lt;a href=&#34;../../../../en/security-and-authentication/ldap-link-service/tls-ldap-link/#&#34;&gt;TLS for LDAP link&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Connections between the database and an LDAP server to &lt;a href=&#34;../../../../en/security-and-authentication/client-authentication/ldap-authentication/&#34;&gt;authenticate users&lt;/a&gt;&lt;/td&gt; 

&lt;td &gt;
LDAPAuthTLSConfig&lt;/td&gt; 

&lt;td &gt;
&lt;code&gt;LDAPAuth&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;
&lt;a href=&#34;../../../../en/security-and-authentication/client-authentication/ldap-authentication/tls-ldap-authentication/#&#34;&gt;TLS for LDAP authentication&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt; 

&lt;td &gt;
Connections between the nodes in the database cluster&lt;/td&gt; 

&lt;td &gt;
InternodeTLSConfig&lt;/td&gt; 

&lt;td &gt;
&lt;code&gt;data_channel&lt;/code&gt;&lt;/td&gt; 

&lt;td &gt;
&lt;a href=&#34;../../../../en/security-and-authentication/internode-tls/#&#34;&gt;Internode TLS&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;h2 id=&#34;creating-custom-tls-configurations&#34;&gt;Creating custom TLS configurations&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#34;#create&#34;&gt;&lt;/a&gt;
You can create TLS Configurations with &lt;a href=&#34;../../../../en/sql-reference/statements/create-statements/create-tls-config/#&#34;&gt;CREATE TLS CONFIGURATION&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following example creates a TLS Configuration and enables it for client-server TLS by setting it in ServerTLSConfig:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create the keys and certificates:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
-- create CA certificate
=&amp;gt; CREATE KEY k_ca TYPE &amp;#39;RSA&amp;#39; LENGTH 4096;
=&amp;gt; CREATE CA CERTIFICATE ca
   SUBJECT &amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=Vertica Root CA&amp;#39;
   VALID FOR 3650
   EXTENSIONS &amp;#39;nsComment&amp;#39; = &amp;#39;Vertica generated root CA cert&amp;#39;
   KEY k_ca;

-- create server certificate
=&amp;gt; CREATE KEY k_server TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
=&amp;gt; CREATE CERTIFICATE server
    SUBJECT &amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=Vertica Cluster/emailAddress=example@example.com&amp;#39;
    SIGNED BY ca
    KEY k_server;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the TLS Configuration with the server&#39;s certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE TLS CONFIGURATION new_tls_config CERTIFICATE server TLSMODE &amp;#39;ENABLE&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set the ServerTLSConfig parameter to use the new TLS Configuration for client-server TLS:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER DATABASE DEFAULT SET ServerTLSConfig = &amp;#39;new_tls_config&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Applying chain of CA certificates to the agent</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/applying-chain-ca-certificates-agent/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/applying-chain-ca-certificates-agent/</guid>
      <description>
        
        
        &lt;p&gt;You can now apply multiple certificates to your agent. You can configure the agent to present the CA chain along with the server certificate during TLS handshake.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Stop the agent on the OpenText™ Analytics Database node.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo /opt/vertica/sbin/vertica_agent stop

New invocation of vertica_agent. Called with 1 arguments: stop
Stopping vertica agent:
$
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Back up agent certificates from the database node.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /opt/vertica/config/share
$ mv agent.cert agent.cert.bck
$ mv agent.key agent.key.bck
$ mv agent.pem agent.pem.bck
$ ls
agent.cert.bck  agent.key.bck   agent.pem.bck   license.key
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a chain of CA certificates. For more information, see &lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/generating-tls-certificates-and-keys/#&#34;&gt;Generating TLS certificates and keys&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSCA_key&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TYPE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;RSA&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LENGTH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2048&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CA&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CERTIFICATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSCA_cert&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SUBJECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica Root CA&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;VALID&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;FOR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3650&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EXTENSIONS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;nsComment&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Self-signed root CA cert&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSCA_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;intermediate_key&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TYPE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;RSA&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LENGTH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2048&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CA&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CERTIFICATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;intermediate_ca_cert&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SUBJECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica intermediate CA&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SIGNED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSCA_cert&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;intermediate_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;internode_key&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;TYPE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;RSA&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;LENGTH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2048&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;CREATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CERTIFICATE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;internode_cert&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SUBJECT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=data channel&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SIGNED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;BY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;intermediate_ca_cert&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EXTENSIONS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;nsComment&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;Vertica internode cert&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;extendedKeyUsage&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;serverAuth, clientAuth&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;KEY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;internode_key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable TLS mode to verify the newly created certificates.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER TLS CONFIGURATION data_channel CERTIFICATE internode_cert TLSMODE &amp;#39;TRY_VERIFY’;
=&amp;gt; select * from tls_configurations;
  name       |  owner | certificate  | ca_certificate | cipher_suites| mode     
-------------+--------+--------------+----------------+--------------+--------
 server      |dbadmin |              |                |              | DISABLE
LDAPLink     |dbadmin |              |                |              | DISABLE
LDAPAuth     |dbadmin |              |                |              | DISABLE
data_channel |dbadmin |internode_cert| SSCA_Cert      |              |TRY_VERIFY 
  (4 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the agent.cert file.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ select certificate_text  FROM certificates where name=&amp;#39;SSCA_cert&amp;#39;;
$ select certificate_text FROM certificates where name=&amp;#39;intermediate_ca_cert&amp;#39;;
$ select  certificate_text FROM certificates where name=&amp;#39;internode_cert&amp;#39;;
$ cd /opt/vertica/config/share
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Edit the agent.cert file.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
$ cat agent.cert
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the agent.key file.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ select key from cryptographic_keys where name=&amp;#39;SSCA_key&amp;#39;;
$ select key from cryptographic_keys where name=&amp;#39;intermediate_key&amp;#39;;
$ select key from cryptographic_keys where name=&amp;#39;internode_key&amp;#39;;
$ sudo vi agent.key
$ cd /opt/vertica/config/share
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Edit the agent.cert file.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
$ cat agent.key
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate the agent.pem file from the agent.cert file.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ openssl x509 -in agent.cert -out agent.pem -outform PEM
$ ls
agent.cert  agent.cert.bck  agent.key   agent.key.bck   agent.pem   agent.pem.bck   license.key
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure that agent.cert, agent.key and agent.pem files are available in /opt/vertica/config/share.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Start the database agent on the node.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo /opt/vertica/sbin/vertica_agent start 
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Move all agent certificates to other machines in the cluster. Ensure that target machines have read and write permissions for agent certificates.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ls -altr /opt/vertica/config/share
agent.cert  agent.cert.bck  agent.key   agent.key.bck   agent.pem   agent.pem.bck
$ chmod -R 600 /opt/vertica/config/share/agent.*
$ scp agent.* dbadmin@&amp;lt;privateip&amp;gt;:/opt/vertica/config/share/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;where privateip is a non-internet facing IP address used in an internal network. For example, &amp;lt;10.11.12.157&amp;gt; could be your privateip.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Restart the database agent on the cluster machines.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo /opt/vertica/sbin/vertica_agent status
$ sudo /opt/vertica/sbin/vertica_agent stop
$ sudo /opt/vertica/sbin/vertica_agent start
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check the newly-applied certificates.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ openssl s_client -prexit -connect localhost:5444
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Download the agent.pem file from /opt/vertica/config/share to a folder on your local machine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Upload the agent.pem file in the MC Settings page.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Home &amp;gt; MC Settings &amp;gt; SSL/TLS Certificates&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Manage Authentication Certifcates&lt;/strong&gt; area, click &lt;strong&gt;Add New Certificate&lt;/strong&gt; and choose &lt;strong&gt;Agent&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Browse&lt;/strong&gt; to select the &lt;strong&gt;agent.pem&lt;/strong&gt; file.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add New Certificate&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Restart MC&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Import the database node to MC. For more information, see &lt;a href=&#34;../../../../en/mc/db-management/managing-db-clusters/importing-an-existing-db-into-mc/#&#34;&gt;Importing an existing database into MC&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Generating TLS certificates and keys</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/generating-tls-certificates-and-keys/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/generating-tls-certificates-and-keys/</guid>
      <description>
        
        
        &lt;p&gt;This page includes examples and sample procedures for generating certificates and keys with &lt;a href=&#34;../../../../en/sql-reference/statements/create-statements/create-key/#&#34;&gt;CREATE KEY&lt;/a&gt; and &lt;a href=&#34;../../../../en/sql-reference/statements/create-statements/create-certificate/#&#34;&gt;CREATE CERTIFICATE&lt;/a&gt;. To view your keys and certificates, query the &lt;a href=&#34;../../../../en/sql-reference/system-tables/v-catalog-schema/cryptographic-keys/#&#34;&gt;CRYPTOGRAPHIC_KEYS&lt;/a&gt; and &lt;a href=&#34;../../../../en/sql-reference/system-tables/v-catalog-schema/certificates/#&#34;&gt;CERTIFICATES&lt;/a&gt; system tables.&lt;/p&gt;
&lt;p&gt;For more detailed information on creating signed certificates, OpenSSL recommends the &lt;a href=&#34;https://www.feistyduck.com/books/openssl-cookbook/&#34;&gt;OpenSSL Cookbook&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For more information on x509 extensions, see the &lt;a href=&#34;https://www.openssl.org/docs/man1.1.1/man5/x509v3_config.html&#34;&gt;OpenSSL documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;importing-keys-and-certificates&#34;&gt;Importing keys and certificates&lt;/h2&gt;
&lt;h3 id=&#34;keys&#34;&gt;Keys&lt;/h3&gt;
&lt;p&gt;You only need to import private keys if you intend to use its associated certificate to sign something, like a message in client-server TLS, or another certificate. That is, you only only need to import keys if its associated certificate is one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Client/server certificate&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CA certificate used to sign other certificates while in OpenText™ Analytics Database&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only need your CA certificate to validate other certificates, you do not need to import its private key.&lt;/p&gt;
&lt;p&gt;To import a private key:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY imported_key TYPE &amp;#39;RSA&amp;#39; AS &amp;#39;-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;certificates&#34;&gt;Certificates&lt;/h3&gt;
&lt;p&gt;To import a CA certificate that only validates other certificates (no private key):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CA CERTIFICATE imported_validating_ca AS &amp;#39;-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To import a CA that can both validate and sign other certificates (private key required):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CA CERTIFICATE imported_signing_ca AS &amp;#39;-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----&amp;#39;
KEY ca_key;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To import a certificate for server mode TLS:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CERTIFICATE server_mode_cert AS &amp;#39;-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----&amp;#39; KEY imported_key;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To import a certificate for mutual mode TLS or client authentication, you must specify its CA:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CERTIFICATE imported_cert AS &amp;#39;-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----&amp;#39;
SIGNED BY imported_ca KEY imported_key;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;generating-private-keys-and-certificates&#34;&gt;Generating private keys and certificates&lt;/h2&gt;
&lt;h3 id=&#34;keys-1&#34;&gt;Keys&lt;/h3&gt;
&lt;p&gt;To generate an 2048-bit RSA private key:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY new_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;self-signed-ca-certificates&#34;&gt;Self-signed CA certificates&lt;/h3&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;
A self-signed CA certificate is convenient for development purposes, but you should always use a proper certificate authority in a production environment.
&lt;/div&gt;

&lt;p&gt;A CA is a trusted entity that signs and validates other certificates with its own certificate. The following example generates a self-signed root CA certificate:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Generate or import a private key. The following command generates a new private key:


&lt;pre class=&#34;table-pre chroma language-sql&#34; &gt;
      &lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;
=&gt; CREATE KEY &lt;span class=&#34;code-variable&#34;&gt;ca_private_key&lt;/span&gt; TYPE &#39;RSA&#39; LENGTH 4096;
CREATE KEY
&lt;/code&gt;
&lt;/pre&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate the certificate with the following format. Sign the certificate with the private key that you generated or imported in the previous step:


&lt;pre class=&#34;table-pre chroma language-sql&#34; &gt;
      &lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;
=&gt; CREATE CA CERTIFICATE &lt;span class=&#34;code-variable&#34;&gt;ca_certificate&lt;/span&gt;
SUBJECT &#39;/C=&lt;span class=&#34;code-variable&#34;&gt;country_code&lt;/span&gt;/ST=&lt;span class=&#34;code-variable&#34;&gt;state_or_province&lt;/span&gt;/L=&lt;span class=&#34;code-variable&#34;&gt;locality&lt;/span&gt;/O=&lt;span class=&#34;code-variable&#34;&gt;organization&lt;/span&gt;/OU=&lt;span class=&#34;code-variable&#34;&gt;org_unit&lt;/span&gt;/CN=Vertica Root CA&#39;
VALID FOR &lt;span class=&#34;code-variable&#34;&gt;days_valid&lt;/span&gt;
EXTENSIONS &#39;authorityKeyIdentifier&#39; = &#39;keyid:always,issuer&#39;, &#39;nsComment&#39; = &#39;Vertica generated root CA cert&#39;
KEY &lt;span class=&#34;code-variable&#34;&gt;ca_private_key&lt;/span&gt;;
&lt;/code&gt;
&lt;/pre&gt;&lt;/p&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;

The CA certificate &lt;code&gt;SUBJECT&lt;/code&gt; must be different from the &lt;code&gt;SUBJECT&lt;/code&gt; of any certificate that it signs.

&lt;/div&gt;
&lt;p&gt;For example:    

&lt;pre class=&#34;table-pre chroma language-sql&#34; &gt;
      &lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;
=&gt; CREATE CA CERTIFICATE SSCA_cert
SUBJECT &#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica Root CA&#39;
VALID FOR 3650
EXTENSIONS &#39;nsComment&#39; = &#39;Self-signed root CA cert&#39;
KEY SSCA_key;
&lt;/code&gt;
&lt;/pre&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&#34;intermediate-ca-certificates&#34;&gt;Intermediate CA certificates&lt;/h3&gt;
&lt;p&gt;In addition to server certificates, CAs can also sign the certificates of other CAs. This process produces an intermediate CA and a chain of trust between the top-level CA and the intermediate CA. These intermediate CAs can then sign other certificates.&lt;/p&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;

Intermediate CA certificates generated with &lt;a href=&#34;../../../../en/sql-reference/statements/create-statements/create-certificate/#&#34;&gt;CREATE CERTIFICATE&lt;/a&gt; cannot sign other CA certificates.

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Generate or import the CA that signs the intermediate CA. The example that follows generates and uses a self-signed root CA:
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY SSCA_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
&lt;/code&gt;&lt;/pre&gt;


&lt;pre class=&#34;table-pre chroma language-sql&#34; &gt;
      &lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;
=&gt; CREATE CA CERTIFICATE SSCA_cert
SUBJECT &#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica Root CA&#39;
VALID FOR 3650
EXTENSIONS &#39;nsComment&#39; = &#39;Self-signed root CA cert&#39;
KEY SSCA_key;
&lt;/code&gt;
&lt;/pre&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate or import a private key:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY intermediate_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate the intermediate CA certificate, specifying its private key and signing CA using the following format:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CERTIFICATE &lt;span class=&#34;code-variable&#34;&gt;intermediate_certificate_name&lt;/span&gt;
SUBJECT &amp;#39;/C=&lt;span class=&#34;code-variable&#34;&gt;country_code&lt;/span&gt;/ST=&lt;span class=&#34;code-variable&#34;&gt;state_or_province&lt;/span&gt;/L=&lt;span class=&#34;code-variable&#34;&gt;locality&lt;/span&gt;/O=&lt;span class=&#34;code-variable&#34;&gt;organization&lt;/span&gt;/OU=&lt;span class=&#34;code-variable&#34;&gt;org_unit&lt;/span&gt;/CN=Vertica intermediate CA&amp;#39;
SIGNED BY &lt;span class=&#34;code-variable&#34;&gt;ca_name&lt;/span&gt;
KEY &lt;span class=&#34;code-variable&#34;&gt;intermediate_key&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;For example:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CA CERTIFICATE intermediate_CA
SUBJECT &amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica Intermediate CA&amp;#39;
SIGNED BY SSCA_cert
KEY intermediate_key;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;clientserver-certificates&#34;&gt;Client/server certificates&lt;/h3&gt;
&lt;p&gt;CREATE CERTIFICATE generates x509v3 certificates, which allow you to specify extensions to restrict how the certificate can be used. The value for the &lt;code&gt;extendedKeyUsage&lt;/code&gt; extension will differ based on your use case:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Server certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#39;extendedKeyUsage&amp;#39; = &amp;#39;serverAuth&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Client certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#39;extendedKeyUsage&amp;#39; = &amp;#39;clientAuth&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Server certificate for &lt;a href=&#34;../../../../en/security-and-authentication/internode-tls/&#34;&gt;internode encryption&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#39;extendedKeyUsage&amp;#39; = &amp;#39;serverAuth, clientAuth&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because these certificates are used for client/server TLS, you must import or generate their private keys.&lt;/p&gt;
&lt;p&gt;The following example certificates are all signed by this self-signed CA certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY SSCA_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
&lt;/code&gt;&lt;/pre&gt;


&lt;pre class=&#34;table-pre chroma language-sql&#34; &gt;
      &lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;
=&gt; CREATE CA CERTIFICATE SSCA_cert
SUBJECT &#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica Root CA&#39;
VALID FOR 3650
EXTENSIONS &#39;nsComment&#39; = &#39;Self-signed root CA cert&#39;
KEY SSCA_key;
&lt;/code&gt;
&lt;/pre&gt;

&lt;p&gt;To generate a server certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY server_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CERTIFICATE server_cert
SUBJECT &amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica server/emailAddress=example@example.com&amp;#39;
SIGNED BY SSCA_cert
EXTENSIONS &amp;#39;nsComment&amp;#39; = &amp;#39;Vertica server cert&amp;#39;, &amp;#39;extendedKeyUsage&amp;#39; = &amp;#39;serverAuth&amp;#39;
KEY server_key;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To generate a client certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY client_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CERTIFICATE client_cert
SUBJECT &amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=OpenText/OU=Vertica/CN=Vertica client/emailAddress=clientexample@example.com&amp;#39;
SIGNED BY SSCA_cert
EXTENSIONS &amp;#39;nsComment&amp;#39; = &amp;#39;Vertica client cert&amp;#39;, &amp;#39;extendedKeyUsage&amp;#39; = &amp;#39;clientAuth&amp;#39;
KEY client_key;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To generate an &lt;a href=&#34;../../../../en/security-and-authentication/internode-tls/data-channel-tls/&#34;&gt;internode TLS&lt;/a&gt; certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE KEY internode_key TYPE &amp;#39;RSA&amp;#39; LENGTH 2048;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CERTIFICATE internode_cert
SUBJECT &amp;#39;/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=data channel&amp;#39;
SIGNED BY SSCA_cert
EXTENSIONS &amp;#39;nsComment&amp;#39; = &amp;#39;Vertica internode cert&amp;#39;, &amp;#39;extendedKeyUsage&amp;#39; = &amp;#39;serverAuth, clientAuth&amp;#39;
KEY internode_key;
&lt;/code&gt;&lt;/pre&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Configuring client-server TLS</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/configuring-client-server-tls/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/configuring-client-server-tls/</guid>
      <description>
        
        
        &lt;p&gt;OpenText™ Analytics Database offers two connection modes for client-server TLS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;In &lt;strong&gt;Server Mode&lt;/strong&gt;, the client must verify the host&#39;s certificate. Hosts must have a server private key and certificate.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In &lt;strong&gt;Mutual Mode&lt;/strong&gt;, the client and host must each verify the other&#39;s certificate. Hosts must have a server private key, server certificate, and CA certificate(s).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Client-server TLS secures the connection step between the database and clients, not the following authentication step to authenticate these clients as users in the database. To configure authentication for TLS connections or to reject plaintext connections, see &lt;a href=&#34;../../../../en/security-and-authentication/client-authentication/tls-authentication/#&#34;&gt;TLS authentication&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;setting-certificates-with-tls-configuration&#34;&gt;Setting certificates with TLS configuration&lt;/h2&gt;
&lt;p&gt;This procedure creates keys and certificates for client-server TLS and sets them in the predefined TLS Configuration &lt;code&gt;server&lt;/code&gt;, which is the default TLS configuration for ServerTLSConfig. To &lt;a href=&#34;../../../../en/sql-reference/statements/create-statements/create-tls-config/&#34;&gt;create&lt;/a&gt; a custom TLS configuration, see &lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/tls-configs/#&#34;&gt;TLS configurations&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/generating-tls-certificates-and-keys/&#34;&gt;Generate&lt;/a&gt; or import the following according to your use case:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Server Mode&lt;/strong&gt;: server certificate private key, server certificate&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Mutual Mode&lt;/strong&gt;: server certificate private key, server certificate, CA certificate(s)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run the following commands according to your desired configuration. New connections will use TLS.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To use &lt;strong&gt;Server Mode&lt;/strong&gt;, set the server certificate for the server&#39;s TLS Configuration:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER TLS CONFIGURATION server CERTIFICATE &lt;span class=&#34;code-variable&#34;&gt;server_cert&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To use &lt;strong&gt;Mutual Mode&lt;/strong&gt;, set a server and CA certificate. This CA certificate is used to verify client certificates:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER TLS CONFIGURATION server CERTIFICATE &lt;span class=&#34;code-variable&#34;&gt;server_cert&lt;/span&gt; ADD CA CERTIFICATES &lt;span class=&#34;code-variable&#34;&gt;ca_cert&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To use multiple CA certificates, separate them with commas:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER TLS CONFIGURATION server CERTIFICATE &lt;span class=&#34;code-variable&#34;&gt;server_cert&lt;/span&gt;
   ADD CA CERTIFICATES &lt;span class=&#34;code-variable&#34;&gt;intermediate_ca_cert&lt;/span&gt;, &lt;span class=&#34;code-variable&#34;&gt;ca_cert&lt;/span&gt;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable TLS (disabled by default). Choose one of the following TLSMODEs, listed in ascending security.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;DISABLE&lt;/code&gt;: Disables TLS. All other options for this parameter enable TLS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;ENABLE&lt;/code&gt;: Enables TLS. Vertica does not verify client certificates.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;TRY_VERIFY&lt;/code&gt;: Establishes a TLS connection if one of the following is true:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The client presents a valid certificate.&lt;/li&gt;
&lt;li&gt;The client doesn&#39;t present a certificate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the client presents an invalid certificate, the connection is rejected.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;VERIFY_CA&lt;/code&gt;: Connection succeeds if Vertica verifies that the client certificate is from a trusted CA. If the client does not present a client certificate, the connection is rejected.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TLS Configurations also support the TLSMODE &lt;code&gt;VERIFY_FULL&lt;/code&gt;, but this TLSMODE is unsupported for client-server TLS (the connection type handled by ServerTLSConfig) and behaves like &lt;code&gt;VERIFY_CA&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;Server Mode&lt;/strong&gt;, choose &lt;code&gt;ENABLE&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER TLS CONFIGURATION server TLSMODE &amp;#39;ENABLE&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For &lt;strong&gt;Mutual Mode&lt;/strong&gt;, choose &lt;code&gt;TRY_VERIFY&lt;/code&gt; or higher:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER TLS CONFIGURATION server TLSMODE &amp;#39;VERIFY_CA&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify that the ServerTLSConfig parameter is set to the &lt;code&gt;server&lt;/code&gt; TLS Configuration:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SHOW CURRENT ServerTLSConfig;
  level  |      name        | setting
---------+------------------+---------
 DEFAULT | ServerTLSConfig  | server
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If not, set the ServerTLSConfig parameter:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER DATABASE DEFAULT SET ServerTLSConfig = &amp;#39;server&amp;#39;;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;see-also&#34;&gt;See also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../en/security-and-authentication/internode-tls/#&#34;&gt;Internode TLS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../en/sql-reference/functions/management-functions/db-functions/security-config-check/#&#34;&gt;SECURITY_CONFIG_CHECK&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Managing CA bundles</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/managing-ca-bundles/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/managing-ca-bundles/</guid>
      <description>
        
        
        &lt;p&gt;Certificate authority (CA) bundles allow you to group &lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/generating-tls-certificates-and-keys/&#34;&gt;CA certificates&lt;/a&gt; together and use them to validate connections to your database.&lt;/p&gt;
&lt;p&gt;You can view existing CA bundles by querying the &lt;a href=&#34;../../../../en/sql-reference/system-tables/v-catalog-schema/ca-bundles/#&#34;&gt;CA_BUNDLES&lt;/a&gt; system table.&lt;/p&gt;
&lt;h2 id=&#34;creating-a-ca-bundle&#34;&gt;Creating a CA bundle&lt;/h2&gt;
&lt;p&gt;To create a CA bundle, use &lt;a href=&#34;../../../../en/sql-reference/statements/create-statements/create-ca-bundle/#&#34;&gt;CREATE CA BUNDLE&lt;/a&gt; and specify one or more CA certificates. If you don&#39;t specify a CA certificate, the CA bundle will be empty.&lt;/p&gt;
&lt;p&gt;This example creates a CA bundle called ca_bundle that contains CA certificates root_ca and root_ca2:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE CA BUNDLE ca_bundle CERTIFICATES root_ca, root_ca2;
CREATE CA BUNDLE

=&amp;gt; SELECT * FROM ca_bundles WHERE name=&amp;#39;ca_bundle&amp;#39;;
        oid        |   name    |       owner       |              certificates
-------------------+-----------+-------------------+----------------------------------------
 45035996274026954 | ca_bundle | 45035996273704962 | [45035996274026764, 45035996274026766]
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;modifying-existing-ca-bundles&#34;&gt;Modifying existing CA bundles&lt;/h2&gt;
&lt;p&gt;CA_BUNDLES only stores OIDs. Since operations on CA bundles require certificate and owner names, you can use the following query to map bundles to certificate and owner names:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT user_name AS owner_name,
       owner     AS owner_oid,
       b.name    AS bundle_name,
       c.name    AS cert_name
FROM   (SELECT name,
               STRING_TO_ARRAY(certificates) :: array[INT] AS certs
        FROM   ca_bundles) b
       LEFT JOIN certificates c
              ON CONTAINS(b.certs, c.oid)
       LEFT JOIN users
              ON user_id = owner
ORDER  BY 1;

 owner_name |     owner_oid     | bundle_name  | cert_name
------------+-------------------+--------------+-----------
 dbadmin    | 45035996273704962 | ca_bundle    | root_ca
 dbadmin    | 45035996273704962 | ca_bundle    | ca_cert
(2 rows)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;adding-and-removing-ca-certificates&#34;&gt;Adding and removing CA certificates&lt;/h3&gt;
&lt;p&gt;If you have ownership of a CA bundle, you can add and remove certificates with &lt;a href=&#34;../../../../en/sql-reference/statements/alter-statements/alter-ca-bundle/#&#34;&gt;ALTER CA BUNDLE&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This example modifies ca_bundle by adding ca_cert and removing root_ca2:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; ALTER CA BUNDLE ca_bundle ADD CERTIFICATES ca_cert;
ALTER CA BUNDLE

=&amp;gt; SELECT * FROM ca_bundles WHERE name=&amp;#39;ca_bundle&amp;#39;;
        oid        |   name    |       owner       |                       certificates
-------------------+-----------+-------------------+-----------------------------------------------------------
 45035996274027356 | ca_bundle | 45035996273704962 | [45035996274027342, 45035996274027348, 45035996274027396]
(1 row)

=&amp;gt; ALTER CA BUNDLE ca_bundle REMOVE CERTIFICATES root_ca2;
ALTER CA BUNDLE

=&amp;gt; SELECT * FROM CA_BUNDLES;
        oid        |   name    |       owner       |              certificates
-------------------+-----------+-------------------+----------------------------------------
 45035996274027356 | ca_bundle | 45035996273704962 | [45035996274027342, 45035996274027396]
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;managing-ca-bundle-ownership&#34;&gt;Managing CA bundle ownership&lt;/h3&gt;
&lt;p&gt;Superusers and CA bundle owners can see whether a bundle exists by querying the CA_BUNDLES system table, but only owners of a given bundle can see the certificates inside.&lt;/p&gt;
&lt;p&gt;In the following example, the dbadmin user owns ca_bundle. After giving ownership of the bundle to &#39;Alice&#39;, the dbadmin can no longer see the certificates inside the bundle:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; =&amp;gt; SELECT * FROM ca_bundles WHERE name=&amp;#39;ca_bundle&amp;#39;;
        oid        |   name    |       owner       |              certificates
-------------------+-----------+-------------------+----------------------------------------
 45035996274027356 | ca_bundle | 45035996273704962 | [45035996274027342, 45035996274027396]
(1 row)

=&amp;gt; ALTER CA BUNDLE ca_bundle OWNER TO Alice;
ALTER CA BUNDLE

=&amp;gt; SELECT * FROM ca_bundles WHERE name=&amp;#39;ca_bundle&amp;#39;;
        oid        |   name    |       owner       | certificates
-------------------+-----------+-------------------+--------------
 45035996274027356 | ca_bundle | 45035996274027586 | []
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;dropping-ca-bundles&#34;&gt;Dropping CA bundles&lt;/h3&gt;
&lt;p&gt;You must have ownership of a CA bundle to &lt;a href=&#34;../../../../en/sql-reference/statements/drop-statements/drop-ca-bundle/&#34;&gt;drop&lt;/a&gt; it:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; DROP CA BUNDLE ca_bundle;
DROP CA BUNDLE
&lt;/code&gt;&lt;/pre&gt;
      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Generating certificates and keys for MC</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/generating-certificates-and-keys-mc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/generating-certificates-and-keys-mc/</guid>
      <description>
        
        
        &lt;p&gt;A &lt;em&gt;certificate signing request (CSR)&lt;/em&gt; is a block of encrypted text generated on the server on which the certificate is used. You send the CSR to a certificate authority (CA) to apply for a digital identity certificate. The CA uses the CSR to create your SSL certificate from information in your certificate; for example, organization name, common (domain) name, city, and country.&lt;/p&gt;
&lt;p&gt;Management Console (MC) uses a combination of OAuth (Open Authorization), Secure Socket Layer (SSL), and locally-encrypted passwords to secure HTTPS requests between a user&#39;s browser and MC, and between MC and the &lt;a class=&#34;glosslink&#34; href=&#34;../../../../en/glossary/agent/&#34; title=&#34;A daemon process that runs on each OpenText&amp;amp;trade; Analytics Database cluster node.&#34;&gt;agents&lt;/a&gt;. Authentication occurs through MC and between agents within the cluster. Agents also authenticate and authorize jobs.&lt;/p&gt;
&lt;p&gt;The MC configuration process sets up SSL automatically, but you must have the openssl package installed on your Linux environment first.&lt;/p&gt;

&lt;p&gt;When you &lt;a href=&#34;../../../../en/mc/getting-started-with-mc/connecting-to-mc/&#34;&gt;connect to MC&lt;/a&gt; through a client browser, OpenText™ Analytics Database assigns each HTTPS request a self-signed certificate, which includes a timestamp. To increase security and protect against password replay attacks, the timestamp is valid for several seconds only, after which it expires.&lt;/p&gt;
&lt;p&gt;To avoid being blocked out of MC, synchronize time on the hosts in your database cluster, and on the MC host if it resides on a dedicated server. To recover from loss or lack of synchronization, resync system time and the Network Time Protocol.&lt;/p&gt;

&lt;h2 id=&#34;create-a-certificate-and-submit-it-for-signing&#34;&gt;Create a certificate and submit it for signing&lt;/h2&gt;
&lt;p&gt;For production, you must use certificates signed by a certificate authority. You can create and submit a certificate and when the certificate returns from the CA, &lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/importing-new-certificate-to-mc/&#34;&gt;import the certificate into MC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Use the openssl command to generate a new CSR, entering the passphrase &amp;quot;password&amp;quot; when prompted:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo openssl req -new -key /opt/vconsole/config/keystore.key -out server.csr
Enter pass phrase for /opt/vconsole/config/keystore.key:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When you press &lt;strong&gt;Enter&lt;/strong&gt;, you are prompted to enter information to be incorporated into your certificate request. Some fields contain a default value, which you should change for security reasons. Other fields you can leave blank, such as password and optional company name. To leave the field blank, type &lt;code&gt;&#39;.&#39;&lt;/code&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 keystore.key value for the -key option creates private key for the keystore. If you generate a new key and import it using the Management Console interface, the MC process does restart properly. You must restore the original keystore.jks file and &lt;a href=&#34;../../../../en/mc/troubleshooting-with-mc-diagnostics/restarting-mc/&#34;&gt;restart Management Console&lt;/a&gt;.
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;This information is contained in the CSR and shows both the default and replacement values:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Country Name (2 letter code) [GB]:USState or Province Name (full name) [Berkshire]:Massachusetts
Locality Name (eg, city) [Newbury]: Cambridge
Organization Name (eg, company) [My Company Ltd]:Vertica
Organizational Unit Name (eg, section) []:Information Management
Common Name (eg, your name or your server&amp;#39;s hostname) []:console.vertica.com
Email Address []:mcadmin@vertica.com
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;strong&gt;Common Name&lt;/strong&gt; field is the fully qualified domain name of your server. Your entry must exactly match what you type in your web browser, or you receive a name mismatch error.&lt;/p&gt;
&lt;h2 id=&#34;self-sign-a-certificate-for-testing&#34;&gt;Self-sign a certificate for testing&lt;/h2&gt;
&lt;p&gt;To test your new SSL implementation, you can self-sign a CSR using either a temporary certificate or your own internal CA, if one is available.

&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;

A self-signed certificate generates a browser-based error notifying you that the signing certificate authority is unknown and not trusted. For testing purposes, accept the risks and continue.

&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;The following command generates a temporary certificate, which expires after 365 days:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo openssl x509 -req -days 365 -in server.csr -signkey /opt/vconsole/config/keystore.key -out server.crt
Enter passphrase for /opt/vconsole/config/keystore.key:
Enter same passphrase again:
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The previous example prompts you for a passphrase. This is required for Apache to start. To implement a passphrase you must put the SSLPassPhraseDialog directive in the appropriate Apache configuration file. For more information see your Apache documentation.&lt;/p&gt;
&lt;p&gt;This example shows the command&#39;s output to the terminal window:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Signature oksubject=/C=US/ST=Massachusetts/L=Cambridge/O=Vertica/OU=IT/
CN=console.vertica.com/emailAddress=mcadmin@vertica.com
Getting Private key
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can now &lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/importing-new-certificate-to-mc/&#34;&gt;import the self-signed key&lt;/a&gt;, &lt;code&gt;server.crt&lt;/code&gt;, into Management Console.&lt;/p&gt;
&lt;h2 id=&#34;see-also&#34;&gt;See also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../en/connecting-to/client-libraries/accessing/java/creating-and-configuring-connection/configuring-tls-jdbc-clients/#&#34;&gt;Configuring TLS for JDBC clients&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../en/connecting-to/client-libraries/accessing/ccpp/configuring-tls-odbc-clients/#&#34;&gt;Configuring TLS for ODBC Clients&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://download.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html&#34;&gt;Key and Certificate Management Tool&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Importing a new certificate to MC</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/importing-new-certificate-to-mc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/importing-new-certificate-to-mc/</guid>
      <description>
        
        
        &lt;p&gt;Use this procedure to import a new certificate into Management Console.

&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;

To generate a new certificate for Management Console, you must use the &lt;code&gt;keystore.key&lt;/code&gt; file, which is located in &lt;code&gt;/opt/vconsole/config&lt;/code&gt; on the server on which you installed MC. Any other generated key/certificate pair causes MC to restart incorrectly. You will then have to restore the original &lt;code&gt;keystore.jks&lt;/code&gt; file and &lt;a href=&#34;../../../../en/mc/troubleshooting-with-mc-diagnostics/&#34;&gt;restart Management Console&lt;/a&gt;. See &lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/generating-certificates-and-keys-mc/&#34;&gt;Generating Certifications and Keys for Management Console&lt;/a&gt;.

&lt;/div&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../en/mc/getting-started-with-mc/connecting-to-mc/&#34;&gt;Connect to Management Console, &lt;/a&gt; and log in as an administrator.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the Home page, click MC &lt;strong&gt;Settings&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the button panel on the left, click &lt;strong&gt;SSL certificates&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To the right of &amp;quot;Upload a new SSL certificate,&amp;quot; click &lt;strong&gt;Browse&lt;/strong&gt; to import the new key.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Apply&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../en/mc/troubleshooting-with-mc-diagnostics/restarting-mc/&#34;&gt;Restart Management Console&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Replacing the agent certificate</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/replacing-agent-certificate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/replacing-agent-certificate/</guid>
      <description>
        
        
        &lt;p&gt;The &lt;a class=&#34;glosslink&#34; href=&#34;../../../../en/glossary/agent/&#34; title=&#34;A daemon process that runs on each OpenText&amp;amp;trade; Analytics Database cluster node.&#34;&gt;Agent&lt;/a&gt; uses a preinstalled Certificate Authority (CA) certificate. You can replace it copying the your preferred certificate and its private key to the host.&lt;/p&gt;
&lt;p&gt;To view your current agent certificate:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ openssl s_client -prexit -connect &lt;span class=&#34;code-variable&#34;&gt;database_IP:database_port&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;generating-a-certificate&#34;&gt;Generating a certificate&lt;/h2&gt;
&lt;p&gt;If you don&#39;t already have one, you can generate a self-signed certificate. For more information, see &lt;a href=&#34;../../../../en/security-and-authentication/tls-protocol/tls-overview/generating-tls-certificates-and-keys/#&#34;&gt;Generating TLS certificates and keys&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Generate the private key and certificate.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out agent.cert -keyout agent.key

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter &amp;#39;.&amp;#39;, the field will be left blank.
-----
Country Name (2 letter code) [AU]:&lt;span class=&#34;code-variable&#34;&gt;US&lt;/span&gt;
State or Province Name (full name) [Some-State]:&lt;span class=&#34;code-variable&#34;&gt;MA&lt;/span&gt;
Locality Name (eg, city) []:Cambridge
Organization Name (eg, company) [Internet Widgits Pty Ltd]:&lt;span class=&#34;code-variable&#34;&gt;My Company&lt;/span&gt;
Organizational Unit Name (eg, section) []:&lt;span class=&#34;code-variable&#34;&gt;IT&lt;/span&gt;
Common Name (e.g. server FQDN or YOUR name) []:&lt;span class=&#34;code-variable&#34;&gt;*.mycompany.com&lt;/span&gt;
Email Address []:&lt;span class=&#34;code-variable&#34;&gt;myaddress@mycompany.com&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make a copy of the certificate in PEM format.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ openssl x509 -in agent.cert -out agent.pem -outform PEM
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Review the certificate.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ openssl x509 -in agent.pem -text
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;replacing-the-agent-certificate-on-a-host&#34;&gt;Replacing the agent certificate on a host&lt;/h2&gt;
&lt;p&gt;The following procedure replaces the Agent&#39;s current private key and certificate on a single host. To replace this certificate and key across an entire cluster, repeat this procedure for all the hosts.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Stop the Agent service on the host.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ /etc/init.d/vertica_agent stop
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Backup and rename the existing agent certificate and key.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
$ cd /opt/vertica/config/share
$ mv agent.cert agent.cert.bck
$ mv agent.key agent.key.bck
$ mv agent.p em agent.pem.bck
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Transfer the new certificate and key to the host&#39;s &lt;code&gt;/opt/vertica/config/share&lt;/code&gt; directory.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ scp agent.* root@123.12.12.123:/opt/vertica/config/share
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change the owner of the certificate and key to &lt;code&gt;uidbadmin&lt;/code&gt; and the group to &lt;code&gt;verticadba&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ chown &lt;span class=&#34;code-variable&#34;&gt;installed_Vertica_user&lt;/span&gt;:&lt;span class=&#34;code-variable&#34;&gt;installed_Vertica_group&lt;/span&gt; agent.*
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make the certificate and key files read-only.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ chmod -R 400 agent.*
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Start the Agent service.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ /etc/init.d/vertica_agent start
starting agent
Opening PID file &amp;#34;/opt/vertica/log/agent.pid&amp;#34;.
Overwriting /opt/vertica/log/agent_uidbadmin.log
Overwriting /opt/vertica/log/agent_uidbadmin.err
start OK for user: uidbadmin
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify that you can view information about your database with your API key.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ curl -X GET https://10.20.80.145:5444/databases -H &amp;#34;VerticaApiKey:wCgXny3Wm+8OhEvGkAclv7v9+VIlxgXblpr4rf&amp;#34; -k
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify that the Agent is using the new certificate.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ openssl s_client -prexit -connect 10.20.80.145:5444
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Security-and-Authentication: Importing and exporting data with TLS</title>
      <link>/en/security-and-authentication/tls-protocol/tls-overview/importing-and-exporting-data-with-tls/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/security-and-authentication/tls-protocol/tls-overview/importing-and-exporting-data-with-tls/</guid>
      <description>
        
        
        &lt;p&gt;OpenText™ Analytics Database uses TLS to secure connections and communications between clients and servers. When you import or export data between the clusters, one of the clusters functions as a client, which means you can use TLS to protect that connection, too.&lt;/p&gt;
&lt;p&gt;The ImportExportTLSMode parameter controls the strictness of TLS when importing or exporting data.&lt;/p&gt;
&lt;p&gt;By default, ImportExportTLSMode is set to PREFER. With this setting, the database attempts to use TLS and falls back to plaintext; you can change this to always require encryption and, further, to validate the certificate on each connection. For more information about TLS during import and export operations, see &lt;a href=&#34;../../../../en/data-export/db-export-and-import/configuring-connection-security-between-clusters/#&#34;&gt;Configuring connection security between clusters&lt;/a&gt;.&lt;/p&gt;

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