記事
· 2024年5月27日 4m read

Linuxで SSL/TLS を使用して ODBC 接続を行う方法

こちら の記事では、LinuxでODBC接続を行う方法  をご紹介しました。

今回は、SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成 した IRIS に対して、ODBCで SSL/TLS 接続をする方法をご紹介します。

LinuxでODBC接続を行う方法 の記事で紹介している手順で、SSL/TLS なしでODBC接続できる環境を用意していることを前提にご説明します。

手順は以下のようになります。手順の詳細は、この後で説明します。


1.CA証明書を用意します

2.TLS 構成ファイルの設定を行います

3.TLS 構成ファイル odbcssl.ini を作成します

4.環境変数 ISC_SSLconfigurations で <path>/odbcssl.ini を指定します

5.IRISへのODBC接続確認をします



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

「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


/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


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


各項目の内容については、以下のドキュメントを参照してください。
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

※すべてのユーザで使用できるようにする場合は、環境変数を永続化させます。

# vi /etc/profile

# ---- 以下を追加
export ISC_SSLconfigurations=/etc/odbcssl.ini

 

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>


※(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


詳細は以下のドキュメントをご覧ください。
UNIX® での ODBC データ・ソースの定義

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください