第9章 Java EE 7機能の認証とアクセス制御
第4部 SSLによる暗号化通信
14.2 証明書/鍵管理環境の構築方法
このスロット、トークン、秘密鍵の関係を以下に示します。
スロットの情報を処理する操作にはスロットパスワードが、トークンの情報を処理する操作には、SO-PIN、またはユーザPINが 必要であり、それぞれスロットの生成時、トークンの生成時に設定されます。なお、SO-PINは、設定だけであり通常の運用では 使用しません。
ユーザPINは、トークン内の秘密鍵にアクセスする際(cmmakecsrコマンドで秘密鍵を生成する場合やSSL通信を行うために 秘密鍵を使用するときに必要となる認証のための情報です。なお、ユーザPINはトークン単位で存在するため、1つのトー クンに複数の秘密鍵が登録されている場合には、1つのユーザPINで複数の秘密鍵情報にアクセスできることになります。
スロット、トークンに関するパスワードとPINの関係を以下に示します。
種別 個数 主な用途
スロットパスワード スロットに1個 トークンの生成
SO-PIN トークンに1個 -
ユーザPIN トークンに1個 秘密鍵アクセス (cmmakecsr、SSL通信)
3. 証明書とCRLの登録
1. 認証局の証明書(発行局証明書)の登録 2. サイト証明書の登録
3. CRLの登録
参照
以降で使用する各コマンドの詳細は、「リファレンスマニュアル(コマンド編)」を参照してください。
SMEEの各コマンドは、以下のディレクトリに格納されています。
・ SMEE3の秘密鍵管理環境作成/設定コマンド(makeslot、maketoken)
- Windows Server(R) x64 Editionsではない場合
%ProgramFiles%\SecurecryptoLibraryR\PROGRAM\bin 配下
- Windows Server(R) x64 Editionsの場合
%ProgramFiles%\SecurecryptoLibraryR64\PROGRAM\bin 配下
・ 上記以外
%CommonProgramFiles%\Fujitsu Shared\F3FSSMEE 配下
・ SMEE3の秘密鍵管理環境作成/設定コマンド(makeslot、maketoken)
/opt/FJSVsclr/bin 配下
・ 上記以外
/opt/FJSVsmee/bin 配下
・ SMEE3の秘密鍵管理環境作成/設定コマンド(makeslot、maketoken)
/opt/FJSVscl64/bin 配下
・ 上記以外
/opt/FJSVsme64/bin 配下
・ SMEE3の秘密鍵管理環境作成/設定コマンド(makeslot、maketoken)
/opt/FJSVsclr64/bin 配下
・ 上記以外
/opt/FJSVsmee64/bin 配下
注意
コマンドを実行する場合、フルパス名を指定するか、または、以下の通りにカレントディレクトリを各コマンドの格納ディレクトリに 変更後、相対パス名を指定してください。
cd [格納ディレクトリ]
.\[コマンド名]
# cd [格納ディレクトリ]
# ./[コマンド名]
CORBAサービスにおいて、一般ユーザ権限でSSL連携機能を使用するCORBAアプリケーションを実行する場合は、
CORBAアプリケーションを実行するユーザ権限で手順1~3の操作を行ってください。管理者権限で証明書/鍵管理環境を
作成すると、一般ユーザで環境をアクセスすることができないため、SSL連携機能を使用することができません。
一般ユーザ権限で証明書/鍵管理環境を作成すると、環境を構築したユーザ権限で環境へのアクセスを行うことができるため SSL連携機能を使用することが可能となります。但し、環境を構築したユーザ以外の一般ユーザは環境へのアクセスを行う 権限が無いため、SSL連携機能を使用することができません。
複数の一般ユーザがSSL連携機能を使用する場合、証明書/鍵管理環境のアクセス権限を変更する必要があります。ア クセス権限についての詳細は、「第17章 CORBAサービスでSSLを利用する方法」を参照してください。
Interstage HTTP Serverにおいてクライアント認証を行う場合、スーパユーザ権限以外のユーザが手順1~3の操作を行っ
てください(セキュリティ上の配慮によりWebサーバのプロセスをスーパユーザ権限以外で設定する必要があるため)。
また、このユーザ、グループをInterstage HTTP Serverの環境定義ファイルに設定します。Interstage HTTP Serverの環境設定 については、「Interstage HTTP Serverの環境設定」を参照してください。
14.2.1 証明書/鍵管理環境の作成
SSL使用時の動作環境である証明書/鍵管理環境を作成します。
管理ディレクトリの作成
証明書、秘密鍵管理には4つのディレクトリが必要なため、OS提供のコマンド等でディレクトリを作成します。
例
作成例を以下に示します。
mkdir d:\sslenv\slot スロット情報ディレクトリ mkdir d:\sslenv\sslcert 運用管理ディレクトリ mkdir d:\sslenv\sslcert\cert 証明書管理ディレクトリ mkdir d:\sslenv\sslcert\crl CRL管理ディレクトリ
# mkdir /export/home/slot スロット情報ディレクトリ
# mkdir /export/home/sslcert 運用管理ディレクトリ
# mkdir /export/home/sslcert/cert 証明書管理ディレクトリ
# mkdir /export/home/sslcert/crl CRL管理ディレクトリ
秘密鍵管理環境の作成と設定
秘密鍵の管理に必要な秘密鍵管理環境の作成と設定を行います。
例
作成例を以下に示します。
makeslot -d d:\sslenv\slot スロット情報ディレクトリの生成と初期化 maketoken -d d:\sslenv\slot -s 1 -t Token01 トークンの初期設定
# makeslot -d /export/home/slot スロット情報ディレクトリの生成と初期化
# maketoken -d /export/home/slot -s 1 -t Token01 トークンの初期設定
証明書/CRL管理環境の作成
証明書およびCRLの管理に必要な証明書/CRL管理環境の作成と設定を行います。
本製品で利用できることが確認済みでるパブリック認証局の証明書を使用する場合は、ルートCA証明書の登録も行います。
例
作成例を以下に示します。
本製品が確認済みの、パブリック認証局以外の証明書を使用する場合
cmmkenv d:\sslenv\sslcert -todir d:\sslenv\sslcert\cert,d:\sslenv\sslcert\crl 証明書/CRL管理環境の作成 cmsetenv d:\sslenv\sslcert -sd d:\sslenv\slot -jc 1
証明書/CRL管理環境の設定
# cmmkenv /export/home/sslcert -todir /export/home/sslcert/cert,/export/home/sslcert/crl 証明書/CRL管理環境の作成
# cmsetenv /export/home/sslcert -sd /export/home/slot -jc 1
証明書/CRL管理環境の設定
本製品が確認済みの、パブリック認証局のルートCA証明書(組み込み証明書一覧ファイル「contractcertlist」)を使用する場 合
cmsetenvコマンドで、ルートCA証明書を登録します。
cmmkenv d:\sslenv\sslcert -todir d:\sslenv\sslcert\cert,d:\sslenv\sslcert\crl 証明書/CRL管理環境の作成
cmsetenv d:\sslenv\sslcert -sd d:\sslenv\slot -jc 1 -rc C:\Interstage\IS_cert\contractcertlist 証明書/CRL管理環境の設定
# cmmkenv /export/home/sslcert -todir /export/home/sslcert/cert,/export/home/sslcert/crl 証明書/CRL管理環境の作成
# cmsetenv /export/home/sslcert -sd /export/home/slot -jc 1 -rc /etc/opt/FJSVisas/contractcertlist 証明書/CRL管理環境の設定
注意
証明書/CRL管理環境の作成完了後は、証明書/CRL管理環境のすべてのディレクトリ名を変更することはできません。
14.2.2 秘密鍵の作成と証明書の取得
認証局(証明書発行局)に証明書の発行を依頼し、証明書を取得します。
証明書取得申請書の作成(同時に秘密鍵を作成)
認証局へ証明書の発行を依頼するための、証明書取得申請書を作成します。
以下のコマンドを実行すると、同時に秘密鍵を作成します。
注意
秘密鍵を保護するために、証明書を入手するまでの間、証明書/鍵管理環境のファイルをバックアップしておいてください。
なお、バックアップしていないときに証明書/鍵管理環境が破壊された場合、秘密鍵がなくなってしまうため、証明書/鍵管 理環境の作成と、証明書取得申請書の作成を再度行うことになります。
例
作成例を以下に示します。
cmmakecsr -ed d:\sslenv\sslcert -sd d:\sslenv\slot -f TEXT -c jp
-cn "www.InterstageApplicationServer.com" -o fujitsu -ou 4-1f -l "Shizuoka-shi" -s "Shizuoka-ken"
-kt RSA -kb 2048 -tl Token01 -of d:\sslenv\myCertRequest ENTER TOKEN PASSWORD=> * (注)
# cmmakecsr -ed /export/home/sslcert -sd /export/home/slot -f TEXT -c jp
-cn "www.InterstageApplicationServer.com" -o fujitsu -ou 4-1f -l "Shizuoka-shi" -s "Shizuoka-ken"
-kt RSA -kb 2048 -tl Token01 -of /export/home/myCertRequest ENTER TOKEN PASSWORD=> * (注)
注) 本文字列が表示された場合は、ユーザPINを入力してください。なお、入力される文字はエコーバックされません。
証明書の発行依頼
証明書取得申請書を認証局へ送付し、サイト証明書の発行を依頼します。
依頼方法は認証局に従ってください。
証明書の取得
認証局により署名された証明書を取得します。
取得方法は認証局に従ってください。
14.2.3 証明書とCRLの登録
取得した証明書とCRLを証明書/CRL管理環境に登録します。
登録したあとは、証明書/鍵管理環境をバックアップするようにしてください。バックアップ方法は、「運用ガイド(基本編)」の各 サービスにおけるバックアップ方法を参照するか、または、「14.5 証明書/鍵管理環境の移行方法」の「1. 既存の資源(秘密鍵、
証明書)を取り出す」を参照してください。
認証局の証明書(発行局証明書)の登録
取得した認証局の証明書を証明書/CRL管理環境へ登録します。
運用で使用する証明書(サイト証明書やクライアント証明書)を発行した認証局の証明書は、すべて登録してください。
証明書は、ルートCA証明書から順に登録してください。
ルートCA証明書を入手したら、登録する前にフィンガープリントを確認します。ルートCA証明書のフィンガープリントの情報は、
認証局により安全な方法で提供されています。入手した認証局のルートCA証明書をcmdspcertコマンドで表示し、フィン ガープリントが一致していることを確認してください。
なお、フィンガープリントは証明書の一部から算出されたハッシュ値であるため、証明書が偽物であったり改ざんされたりした 場合には異なる値になります。算出するために利用するアルゴリズムによっても値が異なるため、同じアルゴリズムを用いて 算出されたフィンガープリントを比較してください。
例
認証局から入手したルートCA証明書のフィンガープリントを表示する例を以下に示します。
認証局のルートCA証明書がd:\sslenv\ca-cert.derに格納されている場合の実行例を示します。
cmdspcert.exe -ed d:\sslenv\sslcert -fn d:\sslenv\ca-cert.der | find "FINGERPRINT"
FINGERPRINT(MD5): 40 79 98 2F 37 12 31 7C AE E7 B4 AB 78 C8 A2 28
FINGERPRINT(SHA1): 07 28 BE 26 94 89 6D F9 ... ←(16進数で20バイト分表示されます。) FINGERPRINT(SHA256): F7 16 00 6E A1 6E A2 14 ... ←(16進数で32バイト分表示されます。)
認証局のルートCA証明書が/export/home/ca-cert.derに格納されている場合の実行例を示します。
# cmdspcert -ed /export/home/sslcert -fn /export/home/ca-cert.der | grep FINGERPRINT FINGERPRINT(MD5): 40 79 98 2F 37 12 31 7C AE E7 B4 AB 78 C8 A2 28
FINGERPRINT(SHA1): 07 28 BE 26 94 89 6D F9 ... ←(16進数で20バイト分表示されます。) FINGERPRINT(SHA256): F7 16 00 6E A1 6E A2 14 ... ←(16進数で32バイト分表示されます。) FINGERPRINTは、MD5、SHA1、SHA256の3種類のアルゴリズムによる結果が表示されます。SHA256の値と比較してく ださい。
もし認証局からSHA256のフィンガープリント情報が提供されていない場合には、SHA1の値と比較してください。
証明書を登録する例を以下に示します。