13.2. CS.cfg ファイル
Certificate System サブシステムのランタイムプロパティーは、一連の設定パラメーターで管理されます。これらのパラメーターは、起動時にサーバーが読み込む CS.cfg ファイルに保存されます。
CS.cfg (ASCII ファイル) が作成され、サブシステムの初回インストール時に適切な設定パラメーターが入力されます。インスタンスの機能の変更方法は、サブシステムコンソールで変更することが推奨されます。これが推奨される方法です。管理コンソールで行った変更は、設定ファイルに反映されます。
CS.cfg 設定ファイルを直接編集することもできます。場合によっては、サブシステムを管理する最も簡単な方法となる場合があります。
13.2.1. CS.cfg ファイルの検索 リンクのコピーリンクがクリップボードにコピーされました!
Certificate System サブシステムの各インスタンスには、独自の設定ファイル CS.cfg があります。各サブシステムインスタンスのファイルの内容は、サブシステムの設定方法、追加の設定および設定 (新規プロファイルの追加、セルフテストの有効化など)、サブシステムのタイプによって異なります。
CS.cfg ファイルは、インスタンスの設定ディレクトリーにあります。
/var/lib/pki/ instance_name/subsystem_type/conf
/var/lib/pki/ instance_name/subsystem_type/conf
以下に例を示します。
/var/lib/pki/ instance_name/ca/conf
/var/lib/pki/ instance_name/ca/conf
13.2.2. 設定ファイルの編集 リンクのコピーリンクがクリップボードにコピーされました!
設定パラメーターに精通していない場合や、変更がサーバーに許容されていることを認識せずに、設定ファイルを直接編集しないでください。設定ファイルが正しく変更されていないと、Certificate System は起動に失敗します。設定が間違っていると、データが失われる可能性があります。
CS.cfg ファイルを変更するには、以下の手順に従います。
サブシステムインスタンスを停止します。
pki-server stop instance_name
# pki-server stop instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow または (
nuxwdog watchdogを使用している場合)systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルは、インスタンスの起動時にキャッシュに保存されます。コンソールを介してインスタンスに加えた変更は、ファイルのキャッシュバージョンに変更されます。サーバーが停止または再起動されると、キャッシュに保存されている設定ファイルがディスクに書き込まれます。設定ファイルを編集する前にサーバーを停止すると、サーバーが停止するとキャッシュバージョンの変更が上書きされます。
-
/var/lib/pki/ instance_name/subsystem_type/confディレクトリーを開きます。 -
テキストエディターで
CS.cfgファイルを開きます。 - ファイル内のパラメーターを編集して、変更を保存します。
サブシステムインスタンスを開始します。
pki-server start instance_name
# pki-server start instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow または (
nuxwdog watchdogを使用している場合)systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.3. CS.cfg 設定ファイルの概要 リンクのコピーリンクがクリップボードにコピーされました!
各サブシステムインスタンスには、設定用のプラグインや Java クラスなど、インスタンスのすべての設定が含まれる独自のメイン設定ファイル CS.cfg があります。パラメーターと特定の設定はサブシステムのタイプによって異なりますが、一般的に CS.cfg ファイルはサブシステムインスタンスの以下の部分を定義します。
- 名前、ポート割り当て、インスタンスディレクトリー、ホスト名などの基本サブシステムインスタンス情報
- ログ
- インスタンスのユーザーディレクトリー (authorization) に対して認証するプラグインおよびメソッド
- インスタンスが属するセキュリティードメイン
- サブシステム証明書
- サブシステムインスタンスによって使用される他のサブシステム
- サブシステムによって使用されるデータベースタイプおよびインスタンス
- TKS のキープロファイル、CA の証明書プロファイル、KRA のキーリカバリーに必要なエージェントなどの PKI 関連タスクの設定
設定パラメーターの多く (PKI タスクのパラメーターを除く) は、すべて Java ベースのコンソールを使用するため、CA、OCSP、KRA、および TKS 間でほとんど同じです。したがって、コンソールで管理できる設定には、同様のパラメーターがあります。
CS.cfg ファイルは、基本的な parameter=value 形式です。
#comment parameter=value
#comment
parameter=value
CS.cfg ファイルでは、パラメーターブロックの多くに pound (#) 文字でコメントアウトされた記述的なコメントがあります。コメント、空白行、不明なパラメーター、またはスペルミスのパラメーターはサーバーによって無視されます。
TPS のバグが原因で、CS.cfg ファイルでコメントアウトされている行が無視されなくなります。TPS CS.cfg ファイルの行をコメントアウトするのではなく、それらの行を削除するだけです。
インスタンスの同じ領域を設定するパラメーターは、同じブロックにグループ化される傾向があります。
例13.1 CS.cfg ファイルのログ設定
機能の一部は、サブシステムにアクセスするためにセルフテスト、ジョブ、認可などのプラグインを使用して実装されます。これらのパラメーターの場合、プラグインインスタンスには、一意の識別子 (サブシステムに対して呼び出される同じプラグインのインスタンスが複数存在する可能性があるため)、実装プラグイン名、および Java クラスがあります。
例13.2 サブシステム認証設定
authz.impl._000=## authz.impl._001=## authorization manager implementations authz.impl._002=## authz.impl.BasicAclAuthz.class=com.netscape.cms.authorization.BasicAclAuthz authz.instance.BasicAclAuthz.pluginName=BasicAclAuthz
authz.impl._000=##
authz.impl._001=## authorization manager implementations
authz.impl._002=##
authz.impl.BasicAclAuthz.class=com.netscape.cms.authorization.BasicAclAuthz
authz.instance.BasicAclAuthz.pluginName=BasicAclAuthz
設定パラメーターの値を適切にフォーマットする必要があるため、2 つのルールを考慮する必要があります。
- ローカライズする必要のある値は、UTF8 文字である必要があります。
-
CS.cfgファイルは、パラメーター値のスラッシュ (/) をサポートします。値にバックスラッシュ (\) が必要な場合は、スラッシュでエスケープする必要があります。つまり、2 つのバックスラッシュを続けて使用する必要があります。
以下のセクションでは、CS.cfg ファイル設定およびパラメーターのスナップショットです。これらは、完全な参考資料や CS.cfg ファイルパラメーターの例ではありません。また、各サブシステム設定ファイルで利用可能なパラメーターと使用されるパラメーターは異なりますが、類似しています。
13.2.3.1. サブシステムの基本設定 リンクのコピーリンクがクリップボードにコピーされました!
基本的な設定は、サブシステムの機能や動作に直接関係することなく、インスタンス自体に固有のものです。これには、インスタンス名、root ディレクトリー、プロセスのユーザー ID、およびポート番号の設定が含まれます。インスタンスの初回インストールまたは設定時に割り当てられる設定の多くは、pkispawn で示されます。
例13.3 CA の基本インスタンスパラメーター: pkispawn ファイル ca.cfg
ポート設定などの情報は CS.cfg ファイルに 含まれ ますが、CS.cfg には 設定 されません。サーバー設定が server.xml ファイルに設定されます。
CS.cfg および server.xml のポートは、稼働中の RHCS インスタンスと一致している 必要があります。
13.2.3.2. Logging settings リンクのコピーリンクがクリップボードにコピーされました!
サブシステムのタイプによって、設定可能なログにはいくつかのタイプがあります。各タイプのログには、CS.cfg ファイルに独自の設定エントリーがあります。
たとえば、CA にはトランザクションログ用のこのエントリーがあります。これにより、ログローテーション、バッファーログ、ログレベルなどの設定が可能になります。
これらのパラメーターとその値の詳細は、「Certificate System ログの設定」を参照してください。監査ログが有効になっている限り、これらの値はコンプライアンスには影響しません。
13.2.3.3. 認証および認可の設定 リンクのコピーリンクがクリップボードにコピーされました!
CS.cfg ファイルには、ユーザーがサブシステムインスタンス (認証) にアクセスする方法や、認証された各ユーザーの承認 (認証) されるアクションを設定します。
CS サブシステムは、認証プラグインを使用して、サブシステムにログインする方法を定義します。
以下の例は、SharedSecret という名前の JAVA プラグインをインスタンス化する SharedToken という名前の認証インスタンスを示しています。
一部の認証設定では、LDAP データベースを使用してユーザーエントリーを保存する認証方法を選択できます。その場合、データベース設定は、以下に示すようにプラグインとともに設定されます。
LDAP のセキュアな設定とパラメーターの説明は、「CS から DS への TLS 相互認証を有効にする」 を参照してください。パラメーターパスは表示される内容とは異なりますが、両方の場所で同じ名前と値が許可されます。
CA は、ユーザーリクエストの承認メカニズムも必要です。これは、承認の設定と同様に、適切な認証プラグインを特定し、そのためにインスタンスを設定して行います。
auths.impl.AgentCertAuth.class=com.netscape.cms.authentication.AgentCertAuthentication auths.instance.AgentCertAuth.agentGroup=Certificate Manager Agents auths.instance.AgentCertAuth.pluginName=AgentCertAuth
auths.impl.AgentCertAuth.class=com.netscape.cms.authentication.AgentCertAuthentication
auths.instance.AgentCertAuth.agentGroup=Certificate Manager Agents
auths.instance.AgentCertAuth.pluginName=AgentCertAuth
13.2.3.4. サブシステム証明書の設定 リンクのコピーリンクがクリップボードにコピーされました!
複数のサブシステムには、設定ファイルの各サブシステム証明書のエントリーがあります。
ca.sslserver.cert=MIIDmDCCAoCgAwIBAgIBAzANBgkqhkiG9w0BAQUFADBAMR4wHAYDVQQKExVSZWR... ca.sslserver.certreq=MIICizCCAXMCAQAwRjEeMBwGA1UEChMVUmVkYnVkY29tcHV0ZXIgRG9tYWluMSQwIgYDV... ca.sslserver.nickname=Server-Cert cert-pki-ca ca.sslserver.tokenname=Internal Key Storage Token
ca.sslserver.cert=MIIDmDCCAoCgAwIBAgIBAzANBgkqhkiG9w0BAQUFADBAMR4wHAYDVQQKExVSZWR...
ca.sslserver.certreq=MIICizCCAXMCAQAwRjEeMBwGA1UEChMVUmVkYnVkY29tcHV0ZXIgRG9tYWluMSQwIgYDV...
ca.sslserver.nickname=Server-Cert cert-pki-ca
ca.sslserver.tokenname=Internal Key Storage Token
13.2.3.5. 必要なサブシステムの設定 リンクのコピーリンクがクリップボードにコピーされました!
少なくとも、各サブシステムは CA に依存するため、CA (およびその他の必要なサブシステム) をサブシステムの設定で設定する必要があります。別のサブシステムへの接続の前に conn. を付けてから、サブシステムのタイプと番号が付けられます。
13.2.3.6. データベース設定 リンクのコピーリンクがクリップボードにコピーされました!
すべてのサブシステムは LDAP ディレクトリーを使用してそれらの情報を保存します。この内部データベースは internaldb パラメーターで設定されますが、その他の設定オプションが多数ある tokendb パラメーターで設定した TPS を除きます。
LDAP のセキュアな設定とパラメーターの説明は、「CS から DS への TLS 相互認証を有効にする」 を参照してください。「CS から DS への TLS 相互認証を有効にする」 の一部として行われること以外に追加の設定は必要ありません。
13.2.3.7. キューの有効化および設定 リンクのコピーリンクがクリップボードにコピーされました!
登録プロセスには、発行した証明書をディレクトリーまたはファイルに公開します。したがって、基本的には、最初の証明書要求を閉じます。ただし、外部ネットワークに証明書を公開すると、発行プロセスが大幅に遅くなり、リクエストが開いたままになります。
この状況を回避するために、管理者は 公開キュー を有効にできます。パブリッシュキューは、別のリクエストキューを使用するリクエスト操作および登録操作 (外部の LDAP ディレクトリーを伴う可能性がある) を分離します。要求キューはすぐに更新され、登録プロセスが完了したことを示します。一方、公開キューがネットワークトラフィックの一時停止時に情報を送信します。
公開キューは、承認された証明書ごとに新しいスレッドを開くのではなく、生成された証明書を公開する定義済みの制限された数のスレッドを設定します。
パブリッシュキューはデフォルトで無効になっています。公開を有効にするとともに、CA コンソールで有効にすることができます。
パブリッシュキューはデフォルトで無効になっていますが、コンソールで LDAP 公開が有効な場合にはキューが自動的に有効になります。それ以外の場合は、キューを手動で有効にできます。
図13.1 公開キューの有効化
13.2.3.7.1. CS.cfg ファイルを編集して公開キューを有効化および設定する リンクのコピーリンクがクリップボードにコピーされました!
CS.cfg ファイルを編集して公開キューを有効にすると、管理者はパブリッシュ操作に使用するスレッドの数やキューページサイズなど、パブリッシュする他のオプションを設定できます。
設定ファイルを編集できるように CA サーバーを停止します。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow CA の
CS.cfgファイルを開きます。vim /var/lib/pki/ instance_name/ca/conf/CS.cfg
# vim /var/lib/pki/ instance_name/ca/conf/CS.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow ca.publish.queue.enableを true に設定します。パラメーターが存在しない場合は、パラメーターで行を追加します。ca.publish.queue.enable=true
ca.publish.queue.enable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow その他の関連するパブリッシュキューパラメーターを設定します。
-
ca.publish.queue.maxNumberOfThreadsは、公開操作用に開くことができるスレッドの最大数を設定します。デフォルトは 3 です。 -
ca.publish.queue.priorityLevelは、公開操作の優先度を設定します。優先度の値の範囲は、-2(最も低い優先度) から2(最も高い優先度) までです。ゼロ (0) は通常の優先度で、デフォルトはデフォルトです。 -
ca.publish.queue.pageSizeは、パブリッシュキューページに格納できるリクエストの最大数を設定します。デフォルトは 40 です。 ca.publish.queue.saveStatusは、指定された公開操作の数ごとにステータスを保存する間隔を設定します。これにより、CA が再起動またはクラッシュした場合にパブリッシュキューを復元できます。デフォルトは 200 ですが、CA の再起動時にゼロ以外の番号がキューを復旧します。このパラメーターを 0 に設定すると、キューの復元が無効になります。ca.publish.queue.maxNumberOfThreads=1 ca.publish.queue.priorityLevel=0 ca.publish.queue.pageSize=100 ca.publish.queue.saveStatus=200
ca.publish.queue.maxNumberOfThreads=1 ca.publish.queue.priorityLevel=0 ca.publish.queue.pageSize=100 ca.publish.queue.saveStatus=200Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントca.publish.queue.enableを false に設定し、ca.publish.queue.maxNumberOfThreadsを 0 に設定すると、発行キューと、発行済み証明書を公開するための別スレッドの使用が無効になります。
-
CA サーバーを起動します。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.3.8. PKI タスクの設定 リンクのコピーリンクがクリップボードにコピーされました!
CS.cfg ファイルは、すべてのサブシステムに PKI タスクを設定するのに使用されます。パラメーターは、重複のないサブシステムごとに異なります。
たとえば、KRA には、鍵を復元するために必要な数のエージェントの設定があります。
kra.noOfRequiredRecoveryAgents=1
kra.noOfRequiredRecoveryAgents=1
各サブシステムの CS.cfg ファイルを確認して、PKI タスク設定を理解してください。ファイル内のコメントは、さまざまなパラメーターが何であるかを学習するための適切なガイドです。
- CA 設定ファイルには、すべての証明書プロファイルおよびポリシー設定と、CRL を生成するルールがリスト表示されます。
- TPS は、さまざまなトークン操作を設定します。
- TKS は、さまざまな鍵タイプからの鍵を取得するプロファイルをリスト表示します。
- OCSP は、さまざまな鍵セットの鍵情報を設定します。
13.2.3.9. CA 発行証明書の DN 属性の変更 リンクのコピーリンクがクリップボードにコピーされました!
Certificate System が発行した証明書で、DN は証明書を所有するエンティティーを特定します。いずれの場合も、Certificate System が Directory Server に接続されている場合、証明書内の DN の形式はディレクトリー内の DN の形式と一致する必要があります。名前が完全に一致する必要はありません。証明書マッピングにより、証明書のサブジェクト DN をディレクトリー内の DN とは異なるものにすることができます。
Certificate System の DN は、X.509 標準で定義されたコンポーネントまたは属性に基づいています。表13.8「値タイプに許可される文字」 は、デフォルトでサポートされる属性をリスト表示しています。属性のセットは拡張可能です。
| 属性 | 値のタイプ | オブジェクト識別子 |
|---|---|---|
| cn | DirectoryString | 2.5.4.3 |
| ou | DirectoryString | 2.5.4.11 |
| o | DirectoryString | 2.5.4.10 |
| c | PrintableString、2 文字 | 2.5.4.6 |
| l | DirectoryString | 2.5.4.7 |
| st | DirectoryString | 2.5.4.8 |
| street | DirectoryString | 2.5.4.9 |
| title | DirectoryString | 2.5.4.12 |
| uid | DirectoryString | 0.9.2342.19200300.100.1.1 |
| | IA5String | 1.2.840.113549.1.9.1 |
| dc | IA5String | 0.9.2342.19200300.100.1.2.25 |
| serialnumber | PrintableString | 2.5.4.5 |
| unstructuredname | IA5String | 1.2.840.113549.1.9.2 |
| unstructuredaddress | PrintableString | 1.2.840.113549.1.9.8 |
デフォルトでは、Certificate System は、表13.8「値タイプに許可される文字」 で特定される属性に対応します。サポートされる属性のリストは、新しい属性を作成または追加することで拡張できます。X.500Name 属性またはコンポーネントを追加する構文は次のとおりです。
X500Name.NEW_ATTRNAME.oid=n.n.n.n X500Name.NEW_ATTRNAME.class=string_to_DER_value_converter_class
X500Name.NEW_ATTRNAME.oid=n.n.n.n
X500Name.NEW_ATTRNAME.class=string_to_DER_value_converter_class
値コンバータークラスは文字列を ASN.1 値に変換します。このクラスは netscape.security.x509.AVAValueConverter インターフェイスを実装する必要があります。文字列から値へのコンバータークラスは、次のいずれかになります。
-
netscape.security.x509.PrintableConverterは、文字列をPrintableString値に変換します。この文字列は、出力可能な文字のみでなければなりません。 -
netscape.security.x509.IA5StringConverterは文字列をIA5String値に変換します。この文字列は IA5String 文字のみである必要があります。 -
netscape.security.x509.DirStrConverterは文字列をDirectoryStringに変換します。この文字列は RFC 2253 に従ってDirectoryString形式になることが予想されます。 netscape.security.x509.GenericValueConverterは、最小の文字セットから最大の文字セットへ、次の順序で文字列を文字ごとに変換します。- PrintableString
- IA5String
- BMPString
- 汎用文字列
属性エントリーは、以下のようになります。
X500Name.MY_ATTR.oid=1.2.3.4.5.6 X500Name.MY_ATTR.class=netscape.security.x509.DirStrConverter
X500Name.MY_ATTR.oid=1.2.3.4.5.6
X500Name.MY_ATTR.class=netscape.security.x509.DirStrConverter
13.2.3.9.1. 新規属性またはカスタム属性の追加 リンクのコピーリンクがクリップボードにコピーされました!
Certificate System スキーマに新規またはプロプライエタリー属性を追加するには、以下を行います。
Certificate Manager を停止します。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
/var/lib/pki/cs`instance/conf/ディレクトリーを開きます。 -
設定ファイル
CS.cfgを開きます。 設定ファイルに新しい属性を追加します。
たとえば、
DirectoryStringであるMYATTR1、IA5StringであるMYATTR2、PrintableStringであるMYATTR3の 3 つのプロプライエタリー属性を追加するには、設定ファイルの最後に以下の行を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存して、ファイルを閉じます。
Certificate Manager を再起動します。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 登録ページを再読み込みして変更を確認します。フォームに新しい属性が表示されるはずです。
新しい属性が有効になっていることを確認するには、手動登録フォームを使用して証明書を要求します。
新しい属性に値を入力します。これにより、証明書のサブジェクト名に表示されることを確認できます。たとえば、以下の値を入力して、新しい属性の値を入力し、サブジェクト名で確認します。
MYATTR1: a_value MYATTR2: a.Value MYATTR3: aValue cn: John Doe o: Example Corporation
MYATTR1: a_value MYATTR2: a.Value MYATTR3: aValue cn: John Doe o: Example CorporationCopy to Clipboard Copied! Toggle word wrap Toggle overflow - エージェントサービスページを開き、要求を承認します。
- 証明書の発行時に、発行先名を確認します。証明書には、サブジェクト名に新しい属性値が表示されるはずです。
13.2.3.9.2. DER エンコード順序の変更 リンクのコピーリンクがクリップボードにコピーされました!
異なるクライアントが異なるエンコーディングをサポートしているため、DirectoryString の DER エンコーディングの順序を変更して、文字列を設定できます。
DirectoryString の DER エンコーディング順序を変更する構文は以下の通りです。
X500Name.directoryStringEncodingOrder=encoding_list_separated_by_commas
X500Name.directoryStringEncodingOrder=encoding_list_separated_by_commas
エンコーディング値は以下のとおりです。
-
PrintableString -
IA5String -
UniversalString -
BMPString -
UTF8String
たとえば、DER エンコーディング順序は次のようになります。
X500Name.directoryStringEncodingOrder=PrintableString,BMPString
X500Name.directoryStringEncodingOrder=PrintableString,BMPString
DirectoryString エンコーディングを変更するには、以下を行います。
Certificate Manager を停止します。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
/var/lib/pki/cs`instance/conf/ディレクトリーを開きます。 -
CS.cfg設定ファイルを開きます。 設定ファイルにエンコーディング順序を追加します。
たとえば、
PrintableStringとUniversalStringの 2 つのエンコーディング値を指定し、エンコーディング順序が最初にPrintableString、次にUniversalStringを指定するには、設定ファイルの最後に以下の行を追加します。X500Name.directoryStringEncodingOrder=PrintableString,UniversalString
X500Name.directoryStringEncodingOrder=PrintableString,UniversalStringCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存して、ファイルを閉じます。
Certificate Manager を開始します。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
エンコーディングの順序が有効であることを確認するには、手動登録フォームを使用して証明書を登録します。
cnにはJohn_Doeを使用します。 - エージェントサービスページを開き、要求を承認します。
証明書が発行されたら、
dumpasn1ツールを使用して証明書のエンコーディングを検証します。サブジェクト名の
cnコンポーネントは、UniversalStringとしてエンコードする必要があります。cnにJohn Smithを使用して新しい要求を作成して提出します。サブジェクト名の
cnコンポーネントは、PrintableStringとしてエンコードする必要があります。
13.2.3.10. CRL の署名に各種証明書を使用するための CA 設定 リンクのコピーリンクがクリップボードにコピーされました!
Certificate Manager は、証明書および証明書失効リスト (CRL) の署名に OCSP 署名証明書に対応するキーペアを使用します。別のキーペアを使用して Certificate Manager が生成する CRL に署名するには、CRL 署名証明書を作成できます。Certificate Manager の CRL 署名証明書は、署名するか、または自己発行する必要があります。
Certificate Manager が異なるキーペアで CRL に署名できるようにするには、以下を行います。
Certificate Manager の CRL 署名証明書を要求します。
または、次のようなキーペアを生成できるツールを使用します。たとえば、
certutilツールを使用してキーペアを生成し、キーペアの証明書を要求し、Certificate Manager の証明書データベースに証明書をインストールします。certutilツールの詳細は http://www.mozilla.org/projects/security/pki/nss/tools/ を参照してください。証明書要求を作成したら、Certificate Manager エンドページを介して証明書を送信し、"Manual OCSP Manager Signing Certificate Enrollment" プロファイルなどの適切なプロファイルを選択します。このページには、次の形式の URL が含まれます。
https://hostname:port/ca/ee/ca
https://hostname:port/ca/ee/caCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要求が送信されたら、エージェントサービスページにログインします。
-
必要な拡張機能に関する要求を確認します。CRL 署名証明書には、
crlSigningビットが設定されたKey Usage拡張が含まれている必要があります。 - 要求を承認します。
- CRL 署名証明書が生成されたら、コンソールの システムキーおよび証明書 を使用して、Certificate Manager のデータベースに証明書をインストールします。
Certificate Manager を停止します。
pki-server stop instance_name
# pki-server stop instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow Certificate Manager の設定を更新して、新しいキーペアと証明書を認識します。
Certificate Manager インスタンス設定ディレクトリーに移動します。
cd /var/lib/pki/instance-name/ca/conf/
# cd /var/lib/pki/instance-name/ca/conf/Copy to Clipboard Copied! Toggle word wrap Toggle overflow CS.cfgファイルを開き、以下の行を追加します。ca.crl_signing.cacertnickname=nickname cert-instance_ID ca.crl_signing.defaultSigningAlgorithm=signing_algorithm ca.crl_signing.tokenname=token_name
ca.crl_signing.cacertnickname=nickname cert-instance_ID ca.crl_signing.defaultSigningAlgorithm=signing_algorithm ca.crl_signing.tokenname=token_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow ニックネーム は、CRL 署名証明書に割り当てられた名前です。
instance_ID は、Certificate Manager インスタンスの名前です。
インストールされた CA が RSA ベースの CA の場合、signing_algorithm は
SHA256withRSA、SHA384withRSA、またはSHA512withRSAになります。インストールされている CA が EC ベースの CA の場合、signing_algorithm はSHA256withEC、SHA384withEC、SHA512withECになります。token_name は、キーペアの生成に使用されるトークンの名前と証明書です。内部/ソフトウェアトークンを使用する場合は、
Internal Key Storage Tokenを値として使用します。たとえば、エントリーは以下のようになります。
ca.crl_signing.cacertnickname=crlSigningCert cert-pki-ca ca.crl_signing.defaultSigningAlgorithm=SHAMD512withRSA ca.crl_signing.tokenname=Internal Key Storage Token
ca.crl_signing.cacertnickname=crlSigningCert cert-pki-ca ca.crl_signing.defaultSigningAlgorithm=SHAMD512withRSA ca.crl_signing.tokenname=Internal Key Storage TokenCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存して、ファイルを閉じます。
Certificate Manager を再起動します。
pki-server restart instance_name
# pki-server restart instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、Certificate Manager は CRL 署名証明書を使用して、生成した CRL に署名できるようになりました。
13.2.3.11. CS.cfg でキャッシュからの CRL 生成を設定する リンクのコピーリンクがクリップボードにコピーされました!
CRL キャッシュは、メモリーに保持されている失効情報のコレクションから証明書失効情報を取得できるようにする単純なメカニズムです。最適なパフォーマンスを得るには、すでにデフォルトの動作を表すこの機能を有効にすることが推奨されます。次の設定情報 (デフォルト) は、情報提供の目的で、または変更が必要な場合に表示されます。
認証局サーバーを停止します。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow CA 設定ディレクトリーを開きます。
cd /var/lib/ instance_name/conf/
# cd /var/lib/ instance_name/conf/Copy to Clipboard Copied! Toggle word wrap Toggle overflow CS.cfgファイルを編集し、enableCRLCacheおよびenableCacheRecoveryパラメーターを true に設定します。ca.crl.MasterCRL.enableCRLCache=true ca.crl.MasterCRL.enableCacheRecovery=true
ca.crl.MasterCRL.enableCRLCache=true ca.crl.MasterCRL.enableCacheRecovery=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow CA サーバーを起動します。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.3.12. CS.cfg で CRL の更新間隔を設定する リンクのコピーリンクがクリップボードにコピーされました!
以下では、CRL システムを柔軟に設定して目的の動作を反映する方法を説明します。ゴールは、2 種類のスケジュールに応じて CRL 更新を設定することが目的です。1 つのタイプは明示的な時間のリストを許可し、もう 1 つのタイプは更新間の時間間隔の長さで構成されます。また、共にドリフトを考慮して考慮できるハイブリッドシナリオもあります。以下の注記のエントリーは、実際にボックスシナリオのデフォルトを示しています。
デフォルトのシナリオは以下のとおりです。
より詳細で具体的な更新スケジュールが必要な場合にのみ、これから逸脱してください。残りのセクションでは、その実行方法を示します。
CS.cfg ファイルで完全な CRL および delta CRL の設定を行うには、パラメーターを編集する必要があります。
| パラメーター | 説明 | 許可される値 |
|---|---|---|
| updateSchema | 完全な CRL ごとに生成されるデルタ CRL 数の比率を設定します。 | 整数値 |
| enableDailyUpdates | 設定された時間に基づいて CRL 更新の設定を有効または無効にします。 | true または false |
| enableUpdateInterval | 設定された間隔に基づいて CRL 更新の設定を有効または無効にします。 | true または false |
| dailyUpdates | CRL の更新時間を設定します。 | コンマ区切りの時間リスト |
| autoUpdateInterval | CRL を更新する間隔を分単位で設定します。 | 整数値 |
| autoUpdateInterval.effectiveAtStart | 現在スケジュールされている nextUpdate の時刻を待つのではなく、システムが自動更新の新しい値をすぐに使用できるようにします | true または false |
| nextUpdateGracePeriod | CRL の有効期間に分単位を追加し、公開またはレプリケーション期間全体で CRL が有効である状態にする期間を追加します。 | 整数値 |
| refreshInSec | クローン OCSP のスレッドの周期を秒単位で設定して、LDAP で CRL の更新を確認します。 | 整数値 |
autoUpdateInterval.effectiveAtStart パラメーターでは、新しい値を適用するためにシステムを再起動する必要があります。このパラメーターのデフォルト値は false です。これは、自分が何をしているかを確信しているユーザーのみが変更する必要があります。
手順: CS.cfg での CRL 更新間隔の設定方法
認証局サーバーを停止します。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow CA 設定ディレクトリーに移動します。
cd /var/lib/ instance_name/conf/
# cd /var/lib/ instance_name/conf/Copy to Clipboard Copied! Toggle word wrap Toggle overflow CS.cfgファイルを編集し、次の行を追加して更新間隔を設定します。ca.crl.MasterCRL.updateSchema=3
ca.crl.MasterCRL.updateSchema=3Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの間隔は 1 です。これは、CRL が生成されるたびに完全な CRL が生成されることを意味します。
updateSchema間隔は任意の整数に設定できます。周期的な間隔を指定するか、更新を実行する時間を設定して、更新頻度を設定します。
enableDailyUpdatesパラメーターを有効にして設定時間を指定し、dailyUpdatesパラメーターに希望の時間を追加します。ca.crl.MasterCRL.enableDailyUpdates=true ca.crl.MasterCRL.enableUpdateInterval=false ca.crl.MasterCRL.dailyUpdates=0:50,04:55,06:55
ca.crl.MasterCRL.enableDailyUpdates=true ca.crl.MasterCRL.enableUpdateInterval=false ca.crl.MasterCRL.dailyUpdates=0:50,04:55,06:55Copy to Clipboard Copied! Toggle word wrap Toggle overflow このフィールドは、CRL を更新する必要がある毎日の時間を設定します。複数の時間を指定するには、
01:50,04:55,06:55などのコンマ区切りリストを入力します。複数日のスケジュールを入力するには、コンマ区切りのリストを入力して同じ日の時間を設定し、セミコロンで区切ったリストを入力して異なる日の時間を識別します。たとえば、01:50,04:55,06:55;02:00,05:00,17:00を設定して、サイクルの 1 日目の午前 1:50、4:55、および 6:55、そして 2 日目の午前 2:00、5:00、および午後 5:00 に失効を設定します。enableUpdateIntervalパラメーターを有効にして間隔を指定し、autoUpdateIntervalパラメーターに必要な間隔を分単位で追加します。ca.crl.MasterCRL.enableDailyUpdates=false ca.crl.MasterCRL.enableUpdateInterval=true ca.crl.MasterCRL.autoUpdateInterval=240
ca.crl.MasterCRL.enableDailyUpdates=false ca.crl.MasterCRL.enableUpdateInterval=true ca.crl.MasterCRL.autoUpdateInterval=240Copy to Clipboard Copied! Toggle word wrap Toggle overflow
環境に応じて以下のパラメーターを設定します。
OCSP サブシステムなしで CA を実行する場合は、以下を設定します。
ca.crl.MasterCRL.nextUpdateGracePeriod=0
ca.crl.MasterCRL.nextUpdateGracePeriod=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow OCSP サブシステムで CA を実行する場合は、以下を設定します。
ca.crl.MasterCRL.nextUpdateGracePeriod=time_in_minutes
ca.crl.MasterCRL.nextUpdateGracePeriod=time_in_minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow ca.crl.MasterCRL.nextUpdateGracePeriodパラメーターは時間を分単位で定義します。この値は、CA が新しい CRL を OCSP に伝播できるように十分な大きさである必要があります。パラメーターをゼロ以外の値に設定する必要があります。お使いの環境に OCSP クローンが追加されている場合は、以下も設定します。
ocsp.store.defStore.refreshInSec=time_in_seconds
ocsp.store.defStore.refreshInSec=time_in_secondsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ocsp.store.defStore.refreshInSecパラメーターは、マスター OCSP インスタンスからの LDAP レプリケーション更新を使用して、クローン OCSP インスタンスが CRL 更新に通知する頻度を秒単位で設定します。パラメーターの詳細は、表13.9「CRL 拡張間隔パラメーター」 を参照してください。
CA サーバーを起動します。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
間隔ごとに CRL を更新するとドリフトが発生する場合があります。通常、ドリフトは手動更新と CA の再起動時に実行されます。
スケジュールのドリフトを防ぐには、enableDailyUpdates および enableUpdateInterval パラメーターの両方を true に設定し、autoUpdateInterval と dailyUpdates に必要な値を追加します。
ca.crl.MasterCRL.enableDailyUpdates=true ca.crl.MasterCRL.enableUpdateInterval=true ca.crl.MasterCRL.autoUpdateInterval=240 ca.crl.MasterCRL.dailyUpdates=1:00
ca.crl.MasterCRL.enableDailyUpdates=true
ca.crl.MasterCRL.enableUpdateInterval=true
ca.crl.MasterCRL.autoUpdateInterval=240
ca.crl.MasterCRL.dailyUpdates=1:00
間隔で CRL を更新する場合、受け入れられる dailyUpdates は 1 つだけです。
間隔の更新は、スケジュールのドリフトを防ぐために 24 時間ごとに dailyUpdates の値と再同期されます。
13.2.3.13. サブシステムのアクセス制御設定の変更 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、アクセス制御ルールは最初に拒否ルールを評価してから、許可ルールを評価することで適用されます。順序を変更するには、CS.cfg の authz.evaluateOrder パラメーターを変更します。
authz.evaluateOrder=deny,allow
authz.evaluateOrder=deny,allow
さらに、アクセス制御ルールは、ローカルの web.xml ファイル (基本 ACL) から評価することも、LDAP データベースを確認すると、より複雑な ACL にアクセスすることもできます。authz.sourceType パラメーターは、使用する認可のタイプを識別します。
authz.sourceType=web.xml
authz.sourceType=web.xml
CS.cfg ファイルを編集したら、必ず更新された設定を読み込むためにサブシステムを再起動します。
13.2.3.14. TLS クライアント証明書認証を使用するための pkiconsole 要件の設定 リンクのコピーリンクがクリップボードにコピーされました!
pkiconsole は非推奨になりました。
各サブシステムの CS.cfg ファイルを編集し、authType パラメーターを検索して、以下のように設定します。
authType=sslclientauth
authType=sslclientauth