はじめに

Verticaではクライアントとの通信をSSL/TLSを使用して暗号化することができます。認証の方式としては、サーバ認証と相互認証の2種類があり、こちらの記事では、サーバ認証を使用したSSL/TLS通信の設定方法をご紹介します。



設定に必要なファイル

サーバ認証方式のSSL/TLS通信を行うには以下のファイルが必要となります。
・サーバ証明書(自己署名証明書でも可)
・サーバの秘密鍵

設定方法

構文

サーバの秘密鍵とサーバ証明書の登録

OSのdbadminユーザから以下のコマンドにて、Verticaへサーバ証明書とサーバの秘密鍵を登録します。
admintools -t set_ssl_params -d <データベース名> -p <パスワード> -k <サーバの秘密鍵> -c <サーバ証明書>

VerticaデータベースのSSL/TLS通信の有効化

Verticaデータベースへdbadminユーザにて接続した後、以下のSQLコマンドを実行します。
ALTER DATABASE <データベース名> SET EnableSSL = 1;

設定例

以下に自己署名証明書を使用した設定例を記載します。正規の証明書を保持している場合は手順「2. サーバの秘密鍵とサーバ証明書の検証」から参照してください。
なお、OSコマンドの詳細についてはマニュアル等でご確認ください。

1. サーバ証明書(自己署名)の作成


## openssl.cnfのサンプル
######################################################################
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name

######################################################################
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = JP
countryName_min = 2
countryName_max = 2

stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Not Applicable

localityName = Locality Name (eg, city)
localityName_default = Not Applicable


0.organizationName = Organization Name (eg, company)
0.organizationName_default = CompanyName

organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default =

commonName = Common Name (eg, your website’s domain name)
commonName_max = 64

2. サーバの秘密鍵とサーバ証明書の検証


3. サーバ証明書と秘密鍵をVerticaに登録


4. VerticaのSSL接続を有効化


5. SSL/TLS通信の確認


以上で設定は完了です。

※JDBC、ODBCクライアントを使用した接続は参考情報の「Configuring TLS for JDBC and ODBC clients」を参照してください。

参考情報

・Vertica-クライアント間通信を暗号化(SSL/TLS)する方法(相互認証)
http://vertica-tech.ashisuto.co.jp/ssl-tls_connection_mutualmode/

・TLS Authentication
https://www.vertica.com/docs/10.1.x/HTML/Content/Authoring/Security/ClientAuth/ConfiguringTLSAuthentication.htm


・Using SSL Server Authentication with Vertica: Validating Your SSL Key and Certificate
https://www.vertica.com/kb/Using-SSL-Server-Authentication-with-Vertica-Validating-Your-SSL/Content/BestPractices/Using-SSL-Server-Authentication-with-Vertica-Validating-Your-SSL.htm


・Configuring TLS for JDBC and ODBC clients
https://www.vertica.com/docs/10.1.x/HTML/Content/Authoring/Security/TLS/ConfiguringTLS.htm


検証バージョンについて

この記事の内容はVertica 10.1で確認しています。

更新履歴

2021/08/30 参考情報を更新(リンク追加、無効リンクの削除)、誤字修正
2021/04/01 本記事を公開