証明書/鍵管理環境を利用したInterstage ディレクトリサービスのクライアント側の環境構築について説明します。
Interstage ディレクトリサービスのクライアント側で設定します。
SSL使用時の動作環境である証明書/鍵管理環境を作成します。
Interstage ディレクトリサービスクライアントを実行するユーザの権限で、手順を実行してください。
Interstage ディレクトリサービスクライアントの証明書/鍵管理環境は、SMEEコマンドを使用して構築します。以降で使用する各コマンドの詳細は、“リファレンスマニュアル(コマンド編)”の“SSL環境設定コマンド”を参照してください。
注意
Interstage ディレクトリサービスクライアントを実行するユーザの権限で、手順を実行してください。
■管理ディレクトリの作成(クライアント)
証明書、秘密鍵管理に必要なディレクトリを作成します。
例
作成例を以下に示します。
mkdir D:\sslenv\slot スロット情報ディレクトリ mkdir D:\sslenv\sslcert 運用管理ディレクトリ mkdir D:\sslenv\sslcert\cert 証明書管理ディレクトリ mkdir D:\sslenv\sslcert\crl CRL管理ディレクトリ
$ mkdir /sslenv/slot スロット情報ディレクトリ $ mkdir /sslenv/sslcert 運用管理ディレクトリ $ mkdir /sslenv/sslcert/cert 証明書管理ディレクトリ $ mkdir /sslenv/sslcert/crl CRL管理ディレクトリ
■秘密鍵管理環境の作成と設定(クライアント)
秘密鍵の管理に必要な秘密鍵管理環境の作成と設定を行います。
例
作成例を以下に示します。
makeslot -d D:\sslenv\slot New Slot-password: (注1)
Retype: (注1)
makeslot: Succeeded. New Slot-ID is 1. (注2) maketoken -d D:\sslenv\slot -s 1 -t Token01 (注2) Slot-password: (注1)
New SO-PIN for Token01: (注3)
Retype: (注3)
New User-PIN for Token01: (注4)
Retype: (注4)
$ makeslot -d /sslenv/slot New Slot-password: (注1)
Retype: (注1)
makeslot: Succeeded. New Slot-ID is 1. (注2) $ maketoken -d /sslenv/slot -s 1 -t Token01 (注2) Slot-password: (注1)
New SO-PIN for Token01: (注3)
Retype: (注3)
New User-PIN for Token01: (注4)
Retype: (注4)
注1) スロットパスワードを入力します。なお、入力した文字列はエコーバックされません。Retypeと表示されたときには、確認のため再入力(Retype)してください。
注2) makeslotコマンドの結果として、生成されたスロットのスロットIDが通知されます。この値をmaketokenコマンドの-sオプションで指定してください。
注3) SO-PINを入力します。なお、入力した文字列はエコーバックされません。Retypeと表示されたときには、確認のため再入力(Retype)してください。
注4) ユーザPINを入力します。なお、入力した文字列はエコーバックされません。Retypeと表示されたときには、確認のため再入力(Retype)してください。
■証明書/CRL管理環境の作成(クライアント)
証明書、およびCRLの管理に必要な証明書/CRL管理環境の作成と設定を行います。
本製品がサポートしている認証局(証明書発行局)の証明書を使用する場合は、ルート認証局の認証局証明書(CA証明書)の登録を行います。
例
作成例を以下に示します。
本製品が確認済みのパブリック認証局の証明書を使用する場合
cmmkenv D:\sslenv\sslcert -todir D:\sslenv\sslcert\cert,D:\sslenv\sslcert\crl
cmsetenv D:\sslenv\sslcert -sd D:\sslenv\slot -jc 1 -rc C:\Interstage\IS_cert\contractcertlist
# cmmkenv /sslenv/sslcert -todir /sslenv/sslcert/cert,/sslenv/sslcert/crl
# cmsetenv /sslenv/sslcert -sd /sslenv/slot -jc 1 -rc /etc/opt/FJSVisas/contractcertlist
本製品が確認済みパブリック認証局以外の認証局から発行された証明書を使用する場合
cmmkenv D:\sslenv\sslcert -todir D:\sslenv\sslcert\cert,D:\sslenv\sslcert\crl
cmsetenv D:\sslenv\sslcert -sd D:\sslenv\slot -jc 1
# cmmkenv /sslenv/sslcert -todir /sslenv/sslcert/cert,/sslenv/sslcert/crl
# cmsetenv /sslenv/sslcert -sd /sslenv/slot -jc 1
認証局(証明書発行局)に証明書の発行を依頼し、証明書を取得します。
■証明書取得申請書の作成(同時に秘密鍵を作成)(クライアント)
認証局へ証明書の発行を依頼するための、証明書取得申請書を作成します。
以下のコマンドを実行すると、同時に秘密鍵を作成します。
例
作成例を以下に示します。
cmmakecsr -ed D:\sslenv\sslcert -sd D:\sslenv\slot -f TEXT -c jp -cn "repository.fujitsu.com" -o "Fujitsu Ltd." -ou "Interstage" -l "Yokohama" -s "Kanagawa" -kt RSA -tl Token01 -of D:\sslenv\myCertRequest ENTER TOKEN PASSWORD=> (注1)
上記の場合、証明書取得申請書が以下に作成されます。
D:\sslenv\myCertRequest
$ cmmakecsr -ed /sslenv/sslcert -sd /sslenv/slot -f TEXT -c jp -cn "repository.fujitsu.com" -o "Fujitsu Ltd." -ou "Interstage" -l "Yokohama" -s "Kanagawa" -kt RSA -tl Token01 -of /sslenv/myCertRequest ENTER TOKEN PASSWORD=> (注1)
注1) ユーザPINを入力してください。なお、入力した文字はエコーバックされません。
上記の場合、証明書取得申請書が以下に作成されます。
/sslenv/myCertRequest
■証明書の発行依頼(クライアント)
証明書取得申請書を認証局へ送付し、サイト証明書の発行を依頼します。
依頼方法は認証局に従ってください。
■証明書の取得(クライアント)
認証局により署名された証明書を取得します。
取得方法は認証局に従ってください。
証明書とCRLを証明書/CRL管理環境に登録します。
■認証局の証明書(発行局証明書)の登録(クライアント)
取得した認証局の証明書を証明書/CRL管理環境へ登録します。
証明書は、ルート認証局の認証局証明書から順に登録してください。
注意
SSLを使用するInterstage ディレクトリサービスのサーバ、およびクライアントで同一の認証局の証明書を登録する必要があります。
例
登録例を以下に示します。
認証局証明書 CA.der
cmentcert D:\sslenv\CA.der -ed D:\sslenv\sslcert -ca -nn CA normal end certid = IG6GwPx4gjZEZ2NptohObuWHU9A= (注1)
$ cmentcert /sslenv/CA.der -ed /sslenv/sslcert -ca -nn CA normal end certid = qpD2dla7zA5xUEeDoLNgtb4c5WE= (注1)
注1) certidの値は、実行するたびに違うものになります。
注意
クライアントは、クライアント自身に登録されたサイト証明書を検証します。クライアントが使用するサイト証明書を検証するための認証局証明書を、クライアントに登録してください。
クライアントに登録されている認証局証明書はすべて、クライアント・サーバ間でSSL通信をする場合の信頼する認証局証明書の対象となります。サーバのリポジトリが使用するSSL定義にはサイト証明書が指定されているので、指定されているサイト証明書を検証するための認証局証明書を、クライアントに登録してください。
■中間CA証明書(中間認証局証明書)の登録(クライアント)
認証局によっては、認証局証明書とサイト証明書のほかに、中間CA(中間認証局)証明書が用意されている場合があります。その場合、サイト証明書の登録の前に、認証局から配布されている中間CA証明書を登録してください。
なお、登録方法は認証局証明書の場合と同じです。“認証局の証明書(発行局証明書)の登録(クライアント)”を参照してください。
参考
本製品では、“セキュリティシステム運用ガイド”の“Interstage組み込み証明書一覧”に記載されている証明書を組み込んでいます。本製品に組み込まれている中間CA証明書は、証明書/鍵管理環境の構築時にcmsetenvコマンドで「-rc」オプションを指定すれば、それらの証明書が証明書/鍵管理環境に登録されます。
■サイト証明書の登録(クライアント)
サイト証明書を証明書/CRL管理環境へ登録します。クライアント認証をする場合にだけ、サイト証明書を登録します。クライアント認証をしない場合、サイト証明書を登録する必要はありません。
注意
テスト用証明書は使用できません。
例
登録例を以下に示します。
サイト証明書 user-cert.der
cmentcert D:\sslenv\user-cert.der -ed D:\sslenv\sslcert -own -nn user-cert normal end certid = 4aCjpxEud6++drEiLbyx4XPCQ2U= (注1)
$ cmentcert /sslenv/user-cert.der -ed /sslenv/sslcert -own -nn user-cert normal end certid = HhMYCOMdh+gzxHToSyoOyEogdac= (注1)
注1)certidの値は、実行するたびに違うものになります。
■CRLの登録(クライアント)
取得したCRLを証明書/CRL管理環境へ登録します。
例
登録例を以下に示します。
cmentcrl D:\sslenv\CRL.der -ed D:\sslenv\sslcert normal end CrlID = bAAqy9Qgh8bw2CUG18m3IuEc2mM= (注1)
# cmentcrl /sslenv/CRL.der -ed /sslenv/sslcert normal end CrlID = WLw6q/bNZ7qsQ+8hRjVOJzinmJY= (注1)
注1) CrlIDの値は、実行するたびに違うものになります。
■証明書/CRL/秘密鍵管理環境のバックアップ(クライアント)
証明書/CRL/秘密鍵管理環境をバックアップします。
例
例を以下に示します。
mkdir X:\Backup\irepcli
mkdir X:\Backup\irepcli\slot
mkdir X:\Backup\irepcli\sslcert
xcopy /E D:\sslenv\slot X:\Backup\irepcli\slot (注1)
xcopy /E D:\sslenv\sslcert X:\Backup\irepcli\sslcert (注1)
$ mkdir /backup/irepcli $ cp -rp /sslenv/slot /backup/irepcli (注1) $ cp -rp /sslenv/sslcert /backup/irepcli (注1)
注1) リムーバブル媒体などに退避しておくことを推奨します。
Interstage ディレクトリサービスクライアントのSSL環境情報をSSL環境定義ファイルに設定します。
Interstage ディレクトリサービスでは、SSL環境定義ファイルのサンプルを用意しています。このファイルをコピーし、環境に合わせて変更してください。
C:\Interstage\IREPSDK\sample\conf\sslconfig.cfg
/opt/FJSVirepc/sample/conf/sslconfig.cfg
注意
C APIを使用するユーザアプリケーションの場合、SSL環境定義ファイルの作成は不要です。(ldapssl_init()のパラメタであるSSLENV構造体に情報を設定します。)
JNDIを使用するユーザアプリケーションの場合、システムプロパティ「user.sslenvfile」にSSL環境定義ファイル名を指定します。
LDAPコマンドの場合、-ZオプションにSSL環境定義ファイル名を指定します。
■記述形式(クライアント)
ファイルには、1行について1項目の定義を記述します。
記述形式を以下に示します。
定義名=値
「=」は、半角で記述します。また、「=」の前後には、空白を入れずに記述します。
値は、「=」の次の文字から改行の直前の文字までを指します。空白文字やタブも、値として指定されたものとみなします。
コメントを記述する場合は、行頭に「#」を記述します。
■定義項目一覧(クライアント)
SSL環境定義ファイルの項目を以下に示します。
定義項目 | 定義名 | 設定の必要性 |
---|---|---|
ssl_version | ||
crypt | ||
slot_path | ○ | |
tkn_lbl | ○ | |
tkn_pwd | ○ | |
cert_path | ○ | |
user_cert_name | ||
ssl_verify | ○ | |
ssl_timer |
※ ○:必須
[説明]
使用するSSLプロトコルのバージョンを記述します。複数記述することはできません。
設定値 | 説明 |
---|---|
2 | SSLプロトコルのバージョン2.0を使用する。 |
3 | SSLプロトコルのバージョン3.0を使用する。 |
3.1 | TLSプロトコルのバージョン1.0を使用する。 |
3.2 | TLSプロトコルのバージョン1.1を使用する。 |
3.3 | TLSプロトコルのバージョン1.2を使用する。 |
[省略値]
3
[指定例]
ssl_version=3.3
[説明]
SSLで使用する暗号化の方法を、SSLバージョン(ssl_version)の設定値に応じて以下から選択して指定します。暗号化の方法を複数指定する場合は、優先度の高い順に「:」で区切って記述します。MACは、メッセージ認証符号です。
通信相手となるInterstage ディレクトリサービスのサーバが使用するSSL定義と同じ設定としてください。
SSLバージョンの設定値 | 設定値 | 説明 |
---|---|---|
2 | DES-CBC3-MD5 | 168bitのトリプルDES暗号,MD5 MAC |
RC4-MD5 | 128bitのRC4暗号,MD5 MAC | |
RC2-MD5 | 128bitのRC2暗号,MD5 MAC | |
DES-CBC-MD5 | 56bitのDES暗号,MD5 MAC | |
EXP-RC4-MD5 | 40bitのRC4暗号,MD5 MAC | |
EXP-RC2-MD5 | 40bitのRC2暗号,MD5 MAC | |
3 または 3.1 | RSA-SC2000-256-SHA | 256bitのSC2000暗号,SHA-1 MAC |
RSA-AES-256-SHA | 256bitのAES暗号,SHA-1 MAC | |
RSA-SC2000-128-SHA | 128bitのSC2000暗号,SHA-1 MAC | |
RSA-AES-128-SHA | 128bitのAES暗号,SHA-1 MAC | |
RSA-3DES-SHA | 168bitのトリプルDES暗号,SHA-1 MAC | |
RSA-RC4-MD5 (注1) | 128bitのRC4暗号,MD5 MAC | |
RSA-RC4-SHA (注1) | 128bitのRC4暗号,SHA-1 MAC | |
RSA-DES-SHA (注2) | 56bitのDES暗号,SHA-1 MAC | |
RSA-EXPORT-RC4-MD5 (注3) | 40bitのRC4暗号,MD5 MAC | |
RSA-EXPORT-RC2-MD5 (注3) | 40bitのRC2暗号,MD5 MAC | |
RSA-NULL-SHA (注4) | 暗号なし,SHA-1 MAC | |
RSA-NULL-MD5 (注4) | 暗号なし,MD5 MAC | |
3.2 | RSA-SC2000-256-SHA | 256bitのSC2000暗号,SHA-1 MAC |
RSA-AES-256-SHA | 256bitのAES暗号,SHA-1 MAC | |
RSA-SC2000-128-SHA | 128bitのSC2000暗号,SHA-1 MAC | |
RSA-AES-128-SHA | 128bitのAES暗号,SHA-1 MAC | |
RSA-3DES-SHA | 168bitのトリプルDES暗号,SHA-1 MAC | |
RSA-RC4-SHA (注1) | 128bitのRC4暗号,SHA-1 MAC | |
RSA-RC4-MD5 (注1) | 128bitのRC4暗号,MD5 MAC | |
RSA-DES-SHA (注2) | 56bitのDES暗号,SHA-1 MAC | |
RSA-NULL-SHA (注4) | 暗号なし,SHA-1 MAC | |
RSA-NULL-MD5 (注4) | 暗号なし,MD5 MAC | |
3.3 | RSA-AES-256-GCM-SHA384 | 256bitのAES GCM暗号,SHA-384 MAC |
RSA-AES-128-GCM-SHA256 | 128bitのAES GCM暗号,SHA-256 MAC | |
RSA-SC2000-256-SHA256 | 256bitのSC2000暗号,SHA-256 MAC | |
RSA-SC2000-256-SHA | 256bitのSC2000暗号,SHA-1 MAC | |
RSA-AES-256-SHA256 | 256bitのAES暗号,SHA-256 MAC | |
RSA-AES-256-SHA | 256bitのAES暗号,SHA-1 MAC | |
RSA-SC2000-128-SHA256 | 128bitのSC2000暗号,SHA-256 MAC | |
RSA-SC2000-128-SHA | 128bitのSC2000暗号,SHA-1 MAC | |
RSA-AES-128-SHA256 | 128bitのAES暗号,SHA-256 MAC | |
RSA-AES-128-SHA | 128bitのAES暗号,SHA-1 MAC | |
RSA-3DES-SHA | 168bitのトリプルDES暗号,SHA-1 MAC | |
RSA-RC4-SHA (注1) | 128bitのRC4暗号,SHA-1 MAC | |
RSA-RC4-MD5 (注1) | 128bitのRC4暗号,MD5 MAC | |
RSA-NULL-SHA256 (注4) | 暗号なし,SHA-256 MAC | |
RSA-NULL-SHA (注4) | 暗号なし,SHA-1 MAC | |
RSA-NULL-MD5 (注4) | 暗号なし,MD5 MAC |
注1)本値は安全な暗号化方式ではないため(非推奨)、使用が必須ではない場合、指定しないでください。
注2)本値は安全な暗号化方式ではないため、使用が必須ではない場合、指定しないでください。
注3)本値はRSA512bitの弱暗号のため、使用が必須ではない場合、指定しないでください。
注4)本値は暗号化を行わないため、使用が必須ではない場合、指定しないでください。
ポイント
サポートしている暗号化方式(「SSL_TXT_」で始まる)に表わされる暗号化の種類を、以下に示します。
公開鍵暗号化方式 | RSA |
共通鍵暗号化方式 | DES、3DES(トリプルDES)、RC4、RC2、AES、SC2000(NULLの場合:暗号化しない) |
共通鍵暗号の処理モード | CBC(AES、SC2000)、EDE(数値はbit長)(3DES) |
ハッシュキー | SHA256、SHA、MD5 |
[省略値]
SSLバージョン(ssl_version)の設定値に応じて、以下の値が指定されたものとみなします。
SSLバージョンの設定値 | 省略値 (注) |
---|---|
2 | DES-CBC3-MD5: |
3 または 3.1 | RSA-SC2000-256-SHA: |
3.2 | RSA-SC2000-256-SHA: |
3.3 | RSA-AES-256-GCM-SHA384: |
注)暗号化の方法ごとに改行して記述していますが、実際は改行を入れずに1行で指定します。
[指定例]
crypt=RSA-AES-256-GCM-SHA384:RSA-AES-128-GCM-SHA256:RSA-AES-256-SHA256:RSA-AES-128-SHA256
[説明]
“4.2.1.1 証明書/鍵管理環境の作成(クライアント)”で作成したスロット情報ディレクトリを絶対パスで記述します。
[省略値]
省略できません。
[指定例]
slot_path=D:\sslenv\slot
slot_path=/sslenv/slot
[説明]
“秘密鍵管理環境の作成と設定(クライアント)”で指定したトークンラベルを指定します。
[省略値]
省略できません。
[指定例]
tkn_lbl=Token01
[説明]
“秘密鍵管理環境の作成と設定(クライアント)”で指定したユーザPINを指定します。
ユーザPINを指定した後で、irepencupinコマンドを使用して暗号化を行う必要があります。
ユーザPINの暗号化については、“4.2.1.5 ユーザPINの暗号化(クライアント)”を参照してください。irepencupinコマンドの使用方法については、“リファレンスマニュアル(コマンド編)”の“Interstage ディレクトリサービス運用コマンド”を参照してください。
[省略値]
省略できません。
[指定例]
tkn_pwd=Token111
[説明]
“4.2.1.1 証明書/鍵管理環境の作成(クライアント)”で作成した運用管理ディレクトリを絶対パスで記述します。
[省略値]
省略できません。
[指定例]
cert_path=D:\sslenv\sslcert
cert_path=/sslenv/sslcert
[説明]
“4.2.1.3 証明書とCRLの登録(クライアント)”で指定したユーザ証明書(サイト証明書)のニックネームを指定します。
[省略値]
証明書管理環境に登録されているユーザ証明書(サイト証明書)のニックネームが、すべて指定されたものとみなされます。
[指定例]
user_cert_name=user-cert
[説明]
証明書の検証方法を指定します。以下の値が指定可能です。
設定値 | 証明書検証方法 |
---|---|
0 | 検証を行わない。 |
1 | Interstage ディレクトリサービスクライアントが使用する証明書の検証を行う。 |
2 | Interstage ディレクトリサービスクライアントが使用する証明書と、Interstage ディレクトリサービスのサーバから送られてきた証明書の検証を行う。 |
[省略値]
省略できません。
[指定例]
ssl_verify=2
[説明]
サーバ-クライアント間の接続処理や、データの送受信で待ち合わせる時間を、秒単位で指定します。1以上の値を指定してください。
[省略値]
3600
[指定例]
ssl_timer=300
■SSL定義ファイル設定例(クライアント)
# # ==== SSL environment file ==== # # ----------------------------- # SSL protocol version # ssl_version=2 | 3 | 3.1 | 3.2 | 3.3 # ----------------------------- ssl_version=3.3 # ----------------------------- # SSL cryptograph mode # crypt=cryptograph mode # ----------------------------- #crypt= # ----------------------------- # Slot directory # slot_path=directory path # ----------------------------- # (Solaris/Linux) slot_path=/sslenv/slot # (Windows) slot_path=D:\sslenv\slot slot_path=xxxxxxxx (注1) # ----------------------------- # Token label # tkn_lbl=token label # ----------------------------- tkn_lbl=Token01 # ----------------------------- # User PIN # tkn_pwd=user pin # ----------------------------- tkn_pwd=xxxxxxxx (注2) # ----------------------------- # Certificate directory # cert_path=directory path # ----------------------------- # (Solaris/Linux) cert_path=/sslenv/sslcert # (Windows) cert_path=D:\sslenv\sslcert cert_path=xxxxxxxx (注1) # ----------------------------- # User certificate nickname # user_cert_name=nickname # ----------------------------- #user_cert_name=user-cert (注3) # ----------------------------- # Verify mode # ssl_verify=0 | 1 | 2 # ----------------------------- ssl_verify=2 # ----------------------------- # Timer # ssl_timer=time(sec) # ----------------------------- #ssl_timer=3600
注1)“4.2.1.1 証明書/鍵管理環境の作成(クライアント)”で指定したスロット情報ディレクトリ、運用管理ディレクトリを設定します。
注2)“秘密鍵管理環境の作成と設定(クライアント)”で指定したユーザPINを設定します。
注3)証明書/鍵管理環境に登録されているサイト証明書をすべて有効にする場合は、行頭に「#」を記述します。
SSL環境定義ファイルに記述したユーザPINを暗号化する必要があります。
irepencupinコマンドにSSL環境定義ファイルを指定することで、ファイルに記述されているユーザPINが暗号化されます。irepencupinコマンドの詳細は、“リファレンスマニュアル(コマンド編)”の“Interstage ディレクトリサービス運用コマンド”を参照してください。
例
実行例を以下に示します。
irepencupin -f D:\conf\sslconfig.cfg
# irepencupin -f /conf/sslconfig.cfg
注意
コマンドの実行が成功すると、SSL環境定義ファイルのバックアップファイル(SSL環境定義ファイル名.backup)が同一ディレクトリに作成されます。バックアップファイルが不要であれば、削除してください。