設定ファイルを使用した Windows クライアントからの接続
Windows を使用していて、スタジオ、ODBC、またはターミナルを TLS クライアントとして使用している場合、設定ファイルを使用して接続および構成を行うことができます。このメカニズムは、ホスト上に InterSystems IRIS® データ・プラットフォームのインスタンスがない場合でも利用できます。
プロセスの概要
設定ファイルを使用するには、以下の手順に従います。
-
サーバの認証機関 (CA) の証明書を取得します。それをディスクに保存して、保存場所を書き留めます (後で使用するため)。
-
"設定ファイルについて" の説明に従って、接続定義と構成定義を含むファイルを作成します。
-
ファイル SSLDefs.ini に名前を付けて、32 ビット共通プログラム・ファイル用のディレクトリの InterSystems\IRIS ディレクトリに置きます。通常、このディレクトリは C:\Program Files (x86)\Common Files\InterSystems\IRIS\ です。このディレクトリを探す必要がある場合は、Windows 環境変数 CommonProgramFiles(x86) (64 ビット Windows の場合) または CommonProgramFiles (32 ビット Windows の場合) の値を確認します。
ファイルを作成してこの場所に配置すると、ファイルにリストされているいずれかの接続と一致するホストおよびポートに接続したときに自動的にこのファイルが使用されるようになります。
Note:
設定ファイル (SSLDefs.ini) の使用には、以下の制限が適用されます。
-
この設定ファイルは、irisconnect.dll 実行可能ファイルまたは irisconnect64.dll 実行可能ファイル (それぞれ 32 ビット・マシン用と 64 ビット・マシン用) を使用する接続にのみ使用できます。他のメカニズム (ADO など) を使用する接続では、この設定ファイルは使用されません。
-
Windows クライアントから InterSystems IRIS への接続でこの設定ファイルが使用される場合、Kerberos 認証はサポートされません。
設定ファイルについて
設定ファイルには、TLS サーバへの接続の指定と、それらの接続で使用する TLS 構成の指定の両方が含まれます。TLS クライアントである Windows ホストごとに、すべての接続と構成が 1 つのファイルに記述されます。ファイルを作成するために必要な情報は、以下のとおりです。
設定ファイルの構文
設定ファイルには、1 つまたは複数の接続定義と 1 つまたは複数の構成定義が含まれます。
-
各定義は、接続または構成の識別子で始まります。識別子は、以下のように専用の行に括弧で囲んで記述します。
識別子には、以下のようにスペースや句読点を含めることができます。
[MyOtherConfiguration, which connects outside of my local network]
-
各定義は、括弧で囲まれた次の識別子か、ファイルの終わりで終了します。
-
各定義には、複数のキーと値のペアが含まれます。そのすべてで以下の構文を使用します。
-
キーと値のペアのグループで、接続定義または構成定義のプロパティを指定します。
-
キーと値のペアの値は、引用符を付けずに記述します。
接続定義
各設定ファイルには 1 つまたは複数の接続定義が含まれます。その接続定義それぞれで TLS 接続のプロパティを指定し、その接続を TLS 構成と照合します。接続定義の最初の行は識別子で、括弧で囲んで記述します。識別子の後には、TLS サーバとそのサーバへの接続に関する情報を指定する複数の行が続きます。
Address
必須項目。TLS サーバのアドレス。IP アドレス、ローカル・ドメイン内の非修飾ホスト名、または完全修飾ホスト名を指定できます (注意 :Address と Port または TelnetPort の両方の値がクライアント・アプリケーションの接続先のサーバと一致する場合にのみ、クライアントは指定された構成を使用します)。
Port
必須項目。TLS サーバが接続を受け付けるポート番号 (注意 : Address と Port または TelnetPort の両方の値がクライアント・アプリケーションの接続先のサーバと一致する場合にのみ、クライアントは指定された構成を使用します)。
TelnetPort
TLS で保護されている InterSystems Telnet 接続を受け入れる TLS サーバ上のポート番号。この値を指定しない場合、InterSystems IRIS Telnet を使用する接続で TLS はサポートされません (注意 : Address と Port または TelnetPort の両方の値がクライアント・アプリケーションの接続先のサーバと一致する場合にのみ、クライアントは指定された構成を使用します)。
SSLConfig
必須項目。この定義で指定されたサーバに接続する場合に、クライアントが使用する TLS 構成。各構成は、専用のセクションで定義します。
構成定義
各設定ファイルには 1 つまたは複数の構成定義が含まれます。その構成定義それぞれで TLS 構成のプロパティを指定します。TLS 構成の詳細は、“構成について” を参照してください。構成定義の最初の行は識別子で、括弧で囲んで記述します。構成識別子を接続定義の SSLConfig プロパティの値として記述すると、その構成を使用して接続動作が指定されます。識別子の後には、構成の各プロパティの値を指定する複数の行が続きます。
Protocols
非推奨。代わりに TLSMinVersion と TLSMaxVersion を使用します。
この構成でサポートする TLS プロトコルのバージョン。このプロトコルの各バージョンには、TLSMinVersion と TLSMaxVersion に挙げた数字が割り当てられています。複数のバージョンのプロトコルをサポートするよう指定するには、その値の合計を使用します。例えば、TLS v1.1 と TLS v1.2 のサポートを指定する場合は値 24 を使用します。
このプロパティは、管理ポータルの [TLS 構成] ページの [プロトコル] フィールドと同じです。
TLSMinVersion
v1.3 がサポートされる構成の場合は必須項目。この構成でサポートする TLS プロトコルの最小バージョン。サポート対象プロトコルの各バージョンを以下の数字で指定します。
-
TLS v1 — 4
-
TLS v1.1 — 8
-
TLS v1.2 — 16
-
TLS v1.3 — 32
このプロパティは、管理ポータルの [TLS 構成] ページの [最小プロトコル・バージョン] フィールドと同じです。
TLSMaxVersion
v1.3 がサポートされる構成の場合は必須項目。この構成でサポートする TLS プロトコルの最新バージョン。サポート対象プロトコルの各バージョンを以下の数字で指定します。
-
TLS v1 — 4
-
TLS v1.1 — 8
-
TLS v1.2 — 16
-
TLS v1.3 — 32
このプロパティは、管理ポータルの [TLS 構成] ページの [最大プロトコル・バージョン] フィールドと同じです。
VerifyPeer
必須項目。クライアントが接続先サーバの証明書を検証する必要があるかどうか。
このプロパティは、管理ポータルの [TLS 構成] ページの [サーバ証明書の検証] フィールドと同じです。
VerifyHost
サーバの証明書の Common Name フィールドまたは subjectAlternativeName フィールドが接続定義で指定されているホスト名または IP アドレスと一致するかをクライアントが確認するかどうか。
このプロパティと同等の機能は、管理ポータルにはありません。ただし、これは %Net.HttpRequestOpens in a new tab クラスの SSLCheckServerIdentity プロパティと同じタイプの確認です。
CipherList
TLS v1.2 以前を使用する接続がサポートされる構成の場合は必須項目。クライアントが暗号化およびハッシュのためにサポートする一連の暗号スウィート。このプロパティの構文の詳細は、OpenSSL のドキュメントで ciphersOpens in a new tab コマンドを参照してください。
既定値は ALL:!aNULL:!eNULL:!EXP:!SSLv2 です。この値を使用することを強くお勧めします。InterSystems IRIS におけるこの構文の詳細は、"暗号スウィート構文の有効化" を参照してください。
このプロパティは、管理ポータルの [TLS 構成] ページの [有効な暗号化スウィート] フィールドと同じです。
Ciphersuites
TLS v1.3 を使用する接続がサポートされる構成の場合は必須項目。クライアントが暗号化およびハッシュのためにサポートする一連の暗号。このプロパティの構文の詳細は、OpenSSL のドキュメントで ciphersOpens in a new tab コマンドを参照してください。
インターシステムズでは、この既定値 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 を使用することを強くお勧めします。InterSystems IRIS におけるこの構文の詳細は、"暗号スウィート構文の有効化" を参照してください。
CertFile
クライアントの信頼された認証機関 (CA) のファイルを含むファイルの絶対パスと名前。クライアントに CA がない場合は、このプロパティの値を指定しないでください。指定する場合、これは PEM 形式の X.509 証明書で、証明書チェーンを含めることができます。この値を使用する方法は、"必須証明書チェーンの確立" を参照してください (Windows の証明書のエクスポート ウィザードからエクスポートした証明書は、既定の DER でエンコードしたバイナリ X.509 ではなく、PEM でエンコードした X.509 形式とする必要があることに注意してください)。
このプロパティは、管理ポータルの [TLS 構成] ページの [このクライアントの証明書を含むファイル] フィールドと同じです。
KeyFile
構成の秘密鍵ファイルの絶対パスと名前。クライアントに秘密鍵がない場合は、このプロパティの値を指定しないでください。
このプロパティは、管理ポータルの [TLS 構成] ページの [関連づけられた秘密鍵を含むファイル] フィールドと同じです。
Password
構成の秘密鍵を解読するためのパスワード。パスワードを設定した秘密鍵を使用する場合、このプロパティは必須です。クライアントの証明書を使用しない場合、または秘密鍵にパスワードがない場合は、このプロパティの値を指定しないでください (秘密鍵がパスワードで保護されている場合、ここで値を指定しないと、InterSystems IRIS は秘密鍵を解読および使用できません)。
このプロパティは、管理ポータルの [TLS 構成] ページの [秘密鍵パスワード] フィールドと同じです。
KeyType
構成に秘密鍵と証明書がある場合に、構成の秘密鍵を保存する形式。
このプロパティは、管理ポータルの [TLS 構成] ページの [秘密鍵タイプ] フィールドと同じです。
CAfile
必須項目。サーバの信頼された認証機関 (CA) のファイルを含むファイルの絶対パスと名前。これは PEM 形式の X.509 証明書です。以下の点に注意してください。
このプロパティは、管理ポータルの [TLS 構成] ページの [信頼済み認証局の証明書を含むファイル] フィールドと同じです。ただし、ポータルとは異なり、%OSCertificateStore 文字列の使用はサポートしていません。
設定ファイルのサンプル
以下のサンプル・ファイルでは、2 つの接続と 2 つの構成を定義します。
[MyServer1 TLS to an InterSystems IRIS instance with TLS-protected InterSystems Telnet]
Address=myserver1
Port=57777
TelnetPort=23
SSLConfig=TLSConfig
[MyServer2 TLS to an InterSystems IRIS instance using TLSv1.2]
Address=myserver2.myexample.com
Port=57777
SSLConfig=TLSv1.2only
[TLSConfig]
TLSMinVersion=16
TLSMaxVersion=32
CipherList=ALL:!aNULL:!eNULL:!EXP:!SSLv2
Ciphersuites=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
KeyType=2
VerifyPeer=1
Password=
CertFile=c:\InterSystems\certificates\nopwclicert.pem
KeyFile=c:\InterSystems\certificates\nopwclikey.pem
CAfile=c:\InterSystems\certificates\cacert.pem
[TLSv1.2only]
TLSMinVersion=16
TLSMaxVersion=16
CipherList=ALL:!aNULL:!eNULL:!EXP:!SSLv2
KeyType=2
VerifyPeer=1
Password=
CertFile=c:\InterSystems\certificates\nopwclicert.pem
KeyFile=c:\InterSystems\certificates\nopwclikey.pem
CAfile=c:\InterSystems\certificates\cacert.pem
動作内容
Important:
ここでは、インターシステムズ製品で設定ファイルを使用して TLS 接続を確立する方法について説明します。使用されているメカニズムについて説明することで、TLS 接続を作成する代替手段を示します。ここで説明する代替手段ではなく、上述の標準アプローチを使用することをお勧めします。
InterSystems IRIS では、以下のように設定ファイルを使用します。
-
TLS 接続を確立しようとすると、InterSystems IRIS TCP/IP クライアント接続ライブラリは、接続定義と接続構成を含む設定ファイルを探します。このファイルは、32 ビット・マシンでは irisconnect.dll、64 ビット・マシンでは irisconnect64.dll です。以下はその方法です。
-
Windows レジストリで TLS 接続定義を確認します。
-
レジストリに接続定義がない場合、ライブラリは設定ファイルに保存されている TLS 構成を見つけようとします。
-
ISC_SSLconfigurations 環境変数が存在する場合、ライブラリは、この変数の値を設定ファイルのフル・パスおよびファイル名として使用します。
Note:
ISC_SSLconfigurations 環境変数の値を定義する必要がある場合、管理者許可が必要になることがあります。
-
ISC_SSLconfigurations 環境変数が存在しない場合、ライブラリは Windows 環境変数 CommonProgramFiles(x86) (64 ビット Windows の場合) または CommonProgramFiles (32 ビット Windows の場合) で指定された 32 ビット共通プログラム・ファイル・ディレクトリの下の InterSystems\IRIS ディレクトリにある SSLdefs.ini ファイルを使用します。
-
設定ファイルが見つかったら、ライブラリは、確立しようとしている接続に関連する接続定義を探します。
そのために、ファイルの各セクションで、確立しようとしている接続と一致する Address および Port プロパティを含むセクションを探します。セクションが見つかったら、そこにある SSLConfig プロパティの値を使用して、一致する TLS 構成セクションを探します。
-
指定された TLS 構成セクションで、ライブラリは構成プロパティの値を使用して、サーバとの間で開始する接続のタイプを指定します。