こちら の記事では、LinuxでODBC接続を行う方法 をご紹介しました。
今回は、SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成 した IRIS に対して、ODBCで SSL/TLS 接続をする方法をご紹介します。
LinuxでODBC接続を行う方法 の記事で紹介している手順で、SSL/TLS なしでODBC接続できる環境を用意していることを前提にご説明します。
手順は以下のようになります。手順の詳細は、この後で説明します。
3.TLS 構成ファイル odbcssl.ini を作成します
4.環境変数 ISC_SSLconfigurations で <path>/odbcssl.ini を指定します
1.CA証明書を用意します
CA証明書に問題がないか証明書情報を確認します。
※ ***.***.***.*** :接続先IRISサーバのIPアドレス
# openssl s_client -connect ***.***.***.***:1972 -showcerts -CAfile /home/ec2-user/ca_certificate.crt < /dev/null
CONNECTED(00000003)
:
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE
Shell SessionShell Session
「Verify return code: 0 (ok)」が返れば、CA証明書に問題はありません。
2.TLS 構成ファイルの設定を行います
最初に、ODBCドライバインストール情報を確認します。
# odbcinst -j
unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /etc/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Shell SessionShell Session
/etc/odbc.ini に、SSL/TLS 接続を定義する [SampleTLS] という名前の、以下のエントリを追加します。
# /etc/odbc.ini
[ODBC Data Sources]
SampleTLS = SampleTLS
[SampleTLS]
Description=InterSystems ODBC
Driver = /intersystems/iris/bin/libirisodbcur6435.so
Host=***.***.***.***
Namespace=USER
UID=_SYSTEM
Password=SYS
Port=1972
Protocol = TCP
Authentication Method = 2
Security Level = 10
SSL Server Name = SampleTLS
Shell SessionShell Session
3.TLS 構成ファイル odbcssl.ini を作成します
# /etc/odbcssl.ini
[SampleTLS]
CAFile=/home/ec2-user/ca_certificate.crt
CertFile=
KeyFile=
Password=
KeyType=2
VerifyPeer=0
TLSMinVersion=16
TLSMaxVersion=32
CipherList=ALL:!aNULL:!eNULL:!EXP:!SSLv2
Shell SessionShell Session
各項目の内容については、以下のドキュメントを参照してください。
TLS 構成ファイルの設定
また、設定ファイルのサンプルは、IRISクライアントインストールディレクトリ下の \dev\odbc\redist\ssl に、
irisodbc.ini.template
odbcssl.ini.template
がありますので、参考になさってください。
4.環境変数 ISC_SSLconfigurations で <path>/odbcssl.ini を指定します
# export ISC_SSLconfigurations=/etc/odbcssl.ini
# echo $ISC_SSLconfigurations
/etc/odbcssl.ini
Shell SessionShell Session
※すべてのユーザで使用できるようにする場合は、環境変数を永続化させます。
# vi /etc/profile
# ---- 以下を追加
export ISC_SSLconfigurations=/etc/odbcssl.ini
ObjectScriptObjectScript
5.IRISへのODBC接続確認をします
※%SuperServer の設定 をした接続先のIRISでは、「スーパーサーバSSL/TLSサポート」を「有効」または「必須」に設定してください。
# isql -v SampleTLS
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> SELECT count(*) FROM INFORMATION_SCHEMA.TABLES
+---------------------+
| Aggregate_1 |
+---------------------+
| 430 |
+---------------------+
SQLRowCount returns 1
1 rows fetched
SQL>
Shell SessionShell Session
※(2024/5/27現在)2024.1までのバージョンについて
「Failed to load irisconnect executable!」
のエラーとなる場合、irisconnect.so ファイルを /usr/lib64/ ディレクトリにリンクする必要があります。
クライアントインストールディレクトリのbin下に、irisconnect.so ファイルがありますので、そちらをリンクするようにしてください。
ln /intersystems/iris/bin/irisconnect.so /usr/lib64/irisconnect.so
Shell SessionShell Session
詳細は以下のドキュメントをご覧ください。
UNIX® での ODBC データ・ソースの定義