計画、インストール、およびデプロイメントのガイド
Red Hat Certificate System 9.7 向けに更新
概要
パート I. Red Hat Certificate System のデプロイ方法の計画
第1章 公開鍵の暗号化の概要
- 傍受
- 情報はそのまま維持されますが、プライバシーが危険にさらされます。たとえば、あるユーザーがクレジットカード番号を収集したり、機密の会話を記録したり、分類された情報をインターセプトしたりできます。
- 改ざん
- 転送中の情報は変更または置き換えられ、受信者に送信されます。たとえば、誰かが商品の注文を変更したり、人の履歴書を変更したりする可能性があります。
- Impersonation
- 情報は、意図された受信者を装った人に渡されます。偽装には、2 つの形式を使用できます。
- なりすまし。他人のふりをすることができます。たとえば、ユーザーがメールアドレス jdoe@example.net に、コンピューターが www.example.net という名前のサイトになりすますことができます。
- 詐称。個人または組織は、自分自身を偽って伝えることができます。たとえば、www.example.net というサイトはオンラインの家具店になりすまし、実際にクレジットカードの支払いを受け取りながら、商品を配送することはありません。
- 暗号化と復号
- 暗号化および復号化により、2 つの通信者が互いに送信される情報を不明確化させることができます。送信側は送信前に情報を暗号化またはスクリブルします。受信者は、情報を受信した後、情報を復号化またはスクランブル解除します。移動時には暗号化された情報は侵入できません。
- 改ざんの検出
- 改ざん検出により、情報の受信者は、情報が転送中に変更されていないことを確認できます。データの修正または置き換えの試行は検出されます。
- 認証
- 認証により、情報の受信者は、送信者の ID を確認することにより、その発信元を判別できます。
- 否認防止
- 否認防止は、情報の送信者が後日、情報が送信されなかったと主張することを防ぎます。
1.1. 暗号化と復号
1.1.1. 対称キーの暗号化
図1.1 対称キーの暗号化

1.1.2. 公開鍵の暗号化
図1.2 公開鍵の暗号化

1.1.3. キー長および暗号化の強化
1.2. デジタル署名
- ハッシュの値はハッシュデータに対して一意です。1 文字を削除または変更しても、データの変更は異なります。
- ハッシュされたデータの内容をハッシュから推測することはできません。
図1.3 デジタル署名を使用したデータの整合性の検証

1.3. 証明書および認証
1.3.1. 証明書は誰または何を識別
1.3.2. 認証によるアイデンティティーの確認
- パスワードベースの認証
- 証明書ベースの認証
1.3.2.1. パスワードベースの認証
- ユーザーは、認証なしで、または SSL/TLS によるサーバー認証のベースとして、すでにサーバーを信頼しています。
- ユーザーがサーバーが制御するリソースを要求しました。
- 要求されたリソースへのアクセスを許可する前に、サーバーの認証が必要です。
図1.4 パスワードを使用したクライアントのサーバーへの認証

- サーバーがクライアントから認証を要求すると、クライアントはそのサーバーのユーザー名およびパスワードを要求するダイアログボックスが表示されます。
- クライアントは、プレーンテキストまたは暗号化された SSL/TLS 接続を使用して、ネットワーク全体で名前とパスワードを送信します。
- サーバーは、ローカルパスワードデータベースで名前とパスワードを検索し、一致する場合は、ユーザーの ID を認証するエビデンスとして受け入れます。
- サーバーは、識別されたユーザーが要求されたリソースへのアクセスを許可されているかどうかを判断し、許可されている場合は、クライアントがそのリソースにアクセスできるようにします。
1.3.2.2. 証明書ベースの認証
図1.5 証明書を使用したクライアントのサーバーへの認証

- クライアントソフトウェアは、そのクライアントに対して発行された証明書に発行される公開鍵に対応する秘密鍵のデータベースを維持します。クライアントは、証明書ベースのクライアント認証を必要とする SSL/TLS 対応サーバーに初めてアクセスしようとしたときなど、特定のセッション中にクライアントが初めてデータベースにアクセスする必要があるときに、このデータベースのパスワードを要求します。このパスワードを一度入力すると、他の SSL/TLS 対応サーバーにアクセスする場合でも、残りのセッションに対して再度入力する必要はありません。
- クライアントは秘密鍵データベースのロックを解除し、ユーザーの証明書の秘密鍵を取得し、その秘密鍵を使用してクライアントとサーバーの両方からランダムなデータに署名します。このデータとデジタル署名は、秘密鍵の有効性について証明されています。デジタル署名はその秘密鍵でのみ作成でき、SSL/TLS セッションに固有の署名済みデータに対して、対応する公開鍵で検証できます。
- クライアントは、ユーザーの証明書とランダムに生成されたデータの両方をネットワーク経由で送信します。
- サーバーは、証明書と署名済みデータを使用してユーザーのアイデンティティーを認証します。
- サーバーは、クライアントが提示する証明書が LDAP ディレクトリー内のユーザーのエントリーに保存されていることを確認するなど、他の認証タスクを実行できます。その後、サーバーは、指定のユーザーが要求されたリソースにアクセスできるかどうかを確認します。この評価プロセスでは、LDAP ディレクトリーまたは企業のデータベースで追加情報を使用すると、さまざまな標準的な承認メカニズムを使用できます。評価の結果が正である場合、サーバーは、要求されたリソースにクライアントがアクセスすることを許可します。
1.3.3. 証明書に使用
1.3.3.1. SSL/TLS
1.3.3.2. 署名済みおよび暗号化電子メール
1.3.3.3. シングルサインオン
1.3.3.4. オブジェクトの署名
1.3.4. 証明書の種類
s
://server.example.com:8443/ca/ee/ca
の Certificate Manager のエンドエンティティーページから入手できます。
証明書の種類 | 使用 | 例 |
---|---|---|
クライアント SSL/TLS 証明書 | SSL/TLS 経由でサーバーへのクライアント認証に使用されます。通常、クライアントの ID は、従業員などの個人の ID と同じであると見なされます。SSL/TLS クライアント証明書がクライアント認証に使用される方法の説明は、「証明書ベースの認証」を参照してください。クライアント SSL/TLS 証明書は、シングルサインオンの一部として使用することもできます。 |
銀行は顧客に SSL/TLS クライアント証明書を提供します。これにより、銀行のサーバーはその顧客を識別し、顧客のアカウントへのアクセスを承認できます。
会社は、会社のサーバーがその従業員を識別してその会社のサーバーへのアクセスを承認できるようにする SSL/TLS クライアント証明書を新たに付与します。
|
サーバー SSL/TLS 証明書 | SSL/TLS でクライアントへのサーバーの認証に使用されます。サーバーの認証はクライアント認証なしで使用できます。暗号化された SSL/TLS セッションには、サーバーの認証が必要です。詳細は、「SSL/TLS」を参照してください。 | 電子商取引を行うインターネットサイトは通常、証明書ベースのサーバー認証をサポートして、暗号化された SSL/TLS セッションを確立し、会社で識別される Web サイトを扱っていることを顧客に保証します。暗号化された SSL/TLS セッションは、クレジットカード番号などのネットワーク上で送信する個人情報を簡単に傍受できないようにします。 |
S/MIME 証明書 | 署名および暗号化された電子メールに使用されます。SSL/TLS クライアント証明書と同様に、クライアントのアイデンティティーは従業員などのユーザーのアイデンティティーと同じであると仮定されます。1 つの証明書は S/MIME 証明書および SSL/TLS 証明書の両方として使用できます。「署名済みおよび暗号化電子メール」を参照してください。S/MIME 証明書はシングルサインオンの一部としても使用できます。 | S/MIME 証明書と SSL/TLS 証明書を組み合わせることで、従業員の ID 認証のみを許可するため、署名済み電子メールと SSL/TLS クライアント認証は許可されますが、電子メールは暗号化されません。別の企業が S/MIME 証明書を署名して暗号化し、機密や法規制を扱う電子メールに署名して暗号化します。 |
CA 証明書 | CA を識別するために使用されます。クライアントおよびサーバーソフトウェアは CA 証明書を使用して、その他の証明書を信頼できるものを決定します。詳細は、「CA 証明書による信頼の仕組み」を参照してください。 | Mozilla Firefox に保存されている CA 証明書は、他の証明書を認証できるものを決定します。管理者は、各ユーザーの Firefox のコピーに保存されている CA 証明書を制御することで、企業のセキュリティーポリシーを実装できます。 |
オブジェクト署名証明書 | Java コード、JavaScript スクリプト、またはその他の署名付きファイルの署名者を識別するのに使用されます。 | ソフトウェア会社は、インターネット上で配布されるソフトウェアに頻繁に署名して、そのソフトウェアがその会社の合法的な製品であることをユーザーに保証します。証明書とデジタル署名を使用することで、ユーザーはダウンロードしたソフトウェアが自分のコンピューターにアクセスできる種類を識別して制御することもできます。 |
1.3.4.1. CA 署名証明書
1.3.4.2. その他の署名証明書
1.3.4.3. SSL/TLS サーバーおよびクライアント証明書
1.3.4.4. ユーザー証明書
1.3.4.5. デュアルキーペア
1.3.4.6. クロスペアの証明書
1.3.5. 証明書の内容
1.3.5.1. 証明書データの形式
1.3.5.1.1. バイナリー
- DER でエンコードされた証明書。これは、単一のバイナリーの DER でエンコードされた証明書です。
- PKCS#7 証明書チェーンオブジェクト。これは、PKCS #7 SignedData オブジェクトです。SignedData オブジェクトの唯一の重要なフィールドは証明書で、署名およびコンテンツなどは無視されます。PKCS #7 形式を使用すると、複数の証明書を一度にダウンロードできます。
- Netscape 証明書シーケンス。これは、PKCS #7 ContentInfo 構造で証明書チェーンをダウンロードする簡単な形式で、証明書のシーケンスをラップします。contentType フィールドの値は netscape-cert-sequence で、content フィールドには以下の構造があります。
CertificateSequence ::= SEQUENCE OF Certificate
この形式により、複数の証明書を同時にダウンロードできます。
1.3.5.1.2. テキスト
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
1.3.5.2. 識別名
uid=doe, cn=John Doe,o=Example Corp.,c=US
1.3.5.3. 典型的な証明書
- データセクション
- 本セクションでは、以下を説明します。
- 証明書でサポートされる X.509 標準のバージョン番号。
- 証明書のシリアル番号CA が発行するすべての証明書には、その CA が発行した証明書間で一意のシリアル番号があります。
- 使用されるアルゴリズムや鍵自体の表現など、ユーザーの公開鍵に関する情報。
- 証明書を発行した CA の DN。
- 証明書が有効である期間。たとえば、2004 年 11 月 15 日の午後 1 時から、2020 年 11 月 15 日 午後 1 時まで。
- 証明書サブジェクトの DN。サブジェクト名とも呼ばれます。たとえば、SSL/TLS クライアント証明書では、これはユーザーの DN です。
- 任意の 証明書エクステンション。クライアントまたはサーバーによって使用される追加データを提供できます。以下に例を示します。
- Netscape Certificate Type 拡張は、SSL/TLS クライアント証明書、SSL/TLS サーバー証明書、メール署名用の証明書などの証明書のタイプを示します。
- SAN (Subject Alternative Name) 拡張が、証明書を 1 つ以上のホスト名にリンクします。
証明書拡張機能は、別の目的でも使用できます。
- 署名セクション
- 本セクションでは、以下を説明します。
- 独自のデジタル署名を作成するために CA の発行に使用される暗号化アルゴリズムまたは暗号。
- 証明書内のすべてのデータを一緒にハッシュし、CA の秘密鍵で暗号化することによって取得された CA のデジタル署名。
Certificate: Data: Version: v3 (0x2) Serial Number: 3 (0x3) Signature Algorithm: PKCS #1 MD5 With RSA Encryption Issuer: OU=Example Certificate Authority, O=Example Corp, C=US Validity: Not Before: Fri Oct 17 18:36:25 1997 Not After: Sun Oct 17 18:36:25 1999 Subject: CN=Jane Doe, OU=Finance, O=Example Corp, C=US Subject Public Key Info: Algorithm: PKCS #1 RSA Encryption Public Key: Modulus: 00:ca:fa:79:98:8f:19:f8:d7:de:e4:49:80:48:e6:2a:2a:86: ed:27:40:4d:86:b3:05:c0:01:bb:50:15:c9:de:dc:85:19:22: 43:7d:45:6d:71:4e:17:3d:f0:36:4b:5b:7f:a8:51:a3:a1:00: 98:ce:7f:47:50:2c:93:36:7c:01:6e:cb:89:06:41:72:b5:e9: 73:49:38:76:ef:b6:8f:ac:49:bb:63:0f:9b:ff:16:2a:e3:0e: 9d:3b:af:ce:9a:3e:48:65:de:96:61:d5:0a:11:2a:a2:80:b0: 7d:d8:99:cb:0c:99:34:c9:ab:25:06:a8:31:ad:8c:4b:aa:54: 91:f4:15 Public Exponent: 65537 (0x10001) Extensions: Identifier: Certificate Type Critical: no Certified Usage: TLS Client Identifier: Authority Key Identifier Critical: no Key Identifier: f2:f2:06:59:90:18:47:51:f5:89:33:5a:31:7a:e6:5c:fb:36: 26:c9 Signature: Algorithm: PKCS #1 MD5 With RSA Encryption Signature: 6d:23:af:f3:d3:b6:7a:df:90:df:cd:7e:18:6c:01:69:8e:54:65:fc:06: 30:43:34:d1:63:1f:06:7d:c3:40:a8:2a:82:c1:a4:83:2a:fb:2e:8f:fb: f0:6d:ff:75:a3:78:f7:52:47:46:62:97:1d:d9:c6:11:0a:02:a2:e0:cc: 2a:75:6c:8b:b6:9b:87:00:7d:7c:84:76:79:ba:f8:b4:d2:62:58:c3:c5: b6:c1:43:ac:63:44:42:fd:af:c8:0f:2f:38:85:6d:d6:59:e8:41:42:a5: 4a:e5:26:38:ff:32:78:a1:38:f1:ed:dc:0d:31:d1:b0:6d:67:e9:46:a8: d:c4
-----BEGIN CERTIFICATE----- MIICKzCCAZSgAwIBAgIBAzANBgkqhkiG9w0BAQQFADA3MQswCQYDVQQGEwJVUzER MA8GA1UEChMITmV0c2NhcGUxFTATBgNVBAsTDFN1cHJpeWEncyBDQTAeFw05NzEw MTgwMTM2MjVaFw05OTEwMTgwMTM2MjVaMEgxCzAJBgNVBAYTAlVTMREwDwYDVQQK EwhOZXRzY2FwZTENMAsGA1UECxMEUHViczEXMBUGA1UEAxMOU3Vwcml5YSBTaGV0 dHkwgZ8wDQYJKoZIhvcNAQEFBQADgY0AMIGJAoGBAMr6eZiPGfjX3uRJgEjmKiqG 7SdATYazBcABu1AVyd7chRkiQ31FbXFOGD3wNktbf6hRo6EAmM5/R1AskzZ8AW7L iQZBcrXpc0k4du+2Q6xJu2MPm/8WKuMOnTuvzpo+SGXelmHVChEqooCwfdiZywyZ NMmrJgaoMa2MS6pUkfQVAgMBAAGjNjA0MBEGCWCGSAGG+EIBAQQEAwIAgDAfBgNV HSMEGDAWgBTy8gZZkBhHUfWJM1oxeuZc+zYmyTANBgkqhkiG9w0BAQQFAAOBgQBt I6/z07Z635DfzX4XbAFpjlRl/AYwQzTSYx8GfcNAqCqCwaSDKvsuj/vwbf91o3j3 UkdGYpcd2cYRCgKi4MwqdWyLtpuHAH18hHZ5uvi00mJYw8W2wUOsY0RC/a/IDy84 hW3WWehBUqVK5SY4/zJ4oTjx7dwNMdGwbWfpRqjd1A== -----END CERTIFICATE-----
1.3.6. CA 証明書による信頼の仕組み
1.3.6.1. CA 階層
図1.6 認証局の階層の例

1.3.6.2. 証明書チェーン
図1.7 証明書チェーンの例

- 各証明書の後に、その発行者の証明書が追加されます。
- 各証明書には、その証明書の発行者の名前 (DN) が含まれており、チェーン内の次の証明書のサブジェクト名と同じです。図1.7「証明書チェーンの例」 では、エンジニアリング CA 証明書には、その証明書を発行した CA (USA CA) の DN が含まれます。USA CA の DN はチェーン内の次の証明書のサブジェクト名でもあります。
- 各証明書は、発行者の秘密鍵で署名されます。この署名は、発行者の証明書内の公開鍵 (チェーン内の次の証明書) で検証できます。
1.3.6.3. 証明書チェーンの確認
- 証明書の有効期間は、検証者のシステムクロックによって提供される現在時刻に対してチェックされます。
- 発行者の証明書が位置しています。ソースは、クライアントまたはサーバーのローカル証明書データベース、または SSL/TLS 接続と同様に、サブジェクトが提供した証明書チェーンのいずれかになります。
- 証明書の署名は、発行者の証明書の公開鍵を使用して検証されます。
- サービスのホスト名は、SAN (Subject Alternative Name) 拡張と照合されます。証明書にそのような拡張がない場合、ホスト名はサブジェクトの CN に対して比較されます。
- システムは、証明書の基本制約要件、つまり、証明書が CA であるかどうか、および署名が許可されている子会社の数を確認します。
- 発行者の証明書が検証者の証明書データベース内の検証者によって信頼されている場合、検証はここで正常に停止します。それ以外の場合は、発行者の証明書をチェックして、証明書タイプ拡張に適切な下位 CA 表示が含まれていることを確認し、チェーン検証をこの新しい証明書からやり直します。図1.8「ルート CA への証明書チェーンの確認」 は、このプロセスの例を示しています。
図1.8 ルート CA への証明書チェーンの確認

図1.9 証明書 Chain の中間 CA の確認

図1.10 検証できない証明書チェーン

1.3.7. 証明書の状態
1.4. 証明書のライフサイクル
1.4.1. 証明書の発行
1.4.2. 証明書の有効期限および更新
- 証明書がディレクトリーに存在しているかどうかの確認
- サーバーは、認証プロセスが提示されている証明書の存在についてディレクトリーをチェックするように設定できます。管理者が証明書を取り消すと、証明書はディレクトリーから自動的に削除され、証明書が他のすべての点で有効なままであっても、その証明書を使用した後続の認証試行は失敗します。
- 証明書失効リスト (CRL)
- 失効した証明書 (CRL) は、一定間隔でディレクトリーに公開できます。CRL は認証プロセスの一部として確認できます。
- リアルタイムのステータスチェック
- 認証用に証明書が提示されるたびに、発行 CA を直接確認することもできます。この手順は、リアルタイムステータスチェックと呼ばれることもあります。
- オンライン証明書ステータスプロトコル
- OCSP (Online Certificate Status Protocol) サービスを設定して、証明書のステータスを確認できます。
1.5. キー管理
第2章 Red Hat Certificate System の概要
2.1. Certificate System サブシステムのレビュー
- Certificate Manager と呼ばれる 認証局。CA は PKI の中核で、すべての証明書を発行して取り消します。Certificate Manager は、Certificate System の中核でもあります。信頼できるサブシステムの セキュリティードメイン を確立することで、別のサブシステム間の関係を確立し、管理します。
- キーリカバリー認証局 (KRA)。証明書は、特定のキーペアと一意の鍵のペアに基づいて作成されます。秘密鍵が失われると、その鍵がアクセスに使用されたデータ (暗号化された電子メールなど) にもアクセスできないため、失われます。KRA は鍵のペアを格納するため、復元された鍵に基づいて新しい同一証明書を生成でき、秘密鍵が損失または破損してもすべての暗号化されたデータにアクセスできます。注記以前のバージョンの Certificate System では、KRA はデータリカバリーマネージャー (DRM) とも呼ばれます。コード、設定ファイルエントリー、Web パネルなどの一部のリソースは、KRA ではなく DRM という用語を使用する場合があります。
- オンライン証明書ステータスプロトコル (OCSP) レスポンダーOCSP は、証明書が有効かどうかを検証し、有効期限が切れていないかどうかを確認します。この機能は、内部 OCSP サービスがある CA からも実行できますが、外部の OCSP レスポンダーを使用すると、発行 CA の負荷が低くなります。
- トークンキーサービス (TKS)。TKS は、トークン CCID、プライベート情報、および定義済みのアルゴリズムに基づいて鍵を取得します。これらの派生キーは、TPS によりトークンのフォーマットに使用され、トークンに証明書を登録します。
- トークン処理システム (TPS)。TPS は、スマートカードなどの外部トークンと直接対話し、ローカルクライアント (Enterprise Security Client (ESC)) を使用してこれらのトークンの鍵と証明書を管理します。トークン操作がある場合には TPS に問い合わせ、TPS は必要に応じて CA、KRA、または TKS と対話し、Enterprise Security Client の方法で情報をトークンに送信します。
- スマートカードを管理する トークン管理システム または TMS 環境。これには CA、TKS、および TPS が必要です。サーバー側の鍵生成には任意の KRA が必要です。
- 通常、ソフトウェアデータベースでスマートカード以外の環境で使用される証明書を管理する従来の 非トークン管理システム または 非 TMS 環境です。少なくとも、TMS 以外の環境では CA のみが必要ですが、TMS 以外の環境では OCSP レスポンダーと KRA インスタンスも使用できます。
2.2. Certificate System サブシステムの概要
2.2.2. インスタンスインストールの要件
2.2.2.1. Directory Server インスタンスの可用性
2.2.2.2. PKI パッケージ
- 以下のベースパッケージは Certificate System のコアを形成し、ベースの Red Hat Enterprise Linux リポジトリーで利用できます。
- pki-core.el7
- pki-base
- pki-base-java
- pki-ca
- pki-javadoc
- pki-kra
- pki-server
- pki-symkey
- pki-tools
- 以下に記載するパッケージは、ベースの Red Hat Enterprise Linux サブスクリプションチャンネルでは利用 できません。これらのパッケージをインストールするには、最初に Subscription Manager を使用して Red Hat Certificate System サブスクリプションプールを割り当て、RHCS9 リポジトリーを有効にする必要があります。手順については、Red Hat Enterprise Linux 7 システム管理者ガイドの Subscription Manager の章を参照してください。
- pki-console.el7pki
- pki-console
- pki-core.el7pki
- pki-ocsp
- pki-tks
- pki-tps
- redhat-pki.el7pki
- redhat-pki
- redhat-pki-theme.el7pki
- redhat-pki-console-theme
- redhat-pki-server-theme
#
yum install redhat-pki
2.2.2.3. インスタンスのインストールと設定
- プレーンテキストの設定ファイル (
/etc/pki/default.cfg
) からデフォルトのname=value
ペアで読み取ります。 - 指定されたペアを対話的にまたは自動的に上書きし、最終結果を Python ディクショナリーとして保存します。
- 順序付けされた スクリプトレット を実行し、サブシステムおよびインスタンスインストールを実行します。
- 設定スクリプトレットは、Python ディクショナリーを JavaScript Object Notation (JSON) データオブジェクトとしてパッケージ化し、Java ベースの設定サーブレットに渡されます。
- 設定サーブレットはこのデータを使用して新しい PKI サブシステムを設定し、制御を pkispawn 実行可能ファイルに渡して、PKI 設定の最終処理を行います。最終的なデプロイメントファイルのコピーは
/var/lib/pki/instance_name/<subsystem>/registry/<subsystem>/deployment.cfg
に保存されます。
pkispawn
の man ページを参照してください。
/etc/pki/default.cfg
は、上記のプロセスの開始時に読み込まれるデフォルトのインストールと設定値を含むプレーンテキストのファイルです。これは、DEFAULT
、Tomcat
、CA
、KRA
、OCSP
、TKS
、および TPS
セクションに分割された name=value
ペアで設定されます。
-s
オプションを使用してサブシステム名を指定すると、そのサブシステムのセクションのみが読み取られます。
name=value
のペアは、[Tomcat]
セクションのペアを上書きし、[DEFAULT]
セクションのペアを上書きします。デフォルトのペアは、インタラクティブ入力か、指定された PKI インスタンス設定ファイル内のペアによってさらに上書きできます。
name=value
ペアを上書きする場合は常に、任意の場所に保存され、いつでも指定できます。これらのファイルは、pkispawn の man ページにある myconfig.txt
や、.ini
ファイル、またはより一般的には PKI インスタンス設定オーバーライドファイルとも呼ばれます。
pki_default.cfg
の man ページを参照してください。
/usr/share/java/pki/pki-certsrv.jar
を com/netscape/certsrv/system/ConfigurationRequest.class
として保存されている Java バイトコードで設定されます。サーブレットは、pkispawn を使用して設定スクリプトレットから JSON オブジェクトとして渡されるデータを処理し、com/netscape/certsrv/system/ConfigurationResponse.class
と同じファイルで提供される Java バイトコードを使用して pkispawn に戻ります。
root
権限で、コマンドラインで pkispawn コマンドを実行するだけです。
#
pkispawn
#
mkdir -p /root/pki- vim などのテキストエディターを使用して、以下の内容を含む
/root/pki/ca.cfg
という名前の設定ファイルを作成します。[DEFAULT] pki_admin_password=<password> pki_client_pkcs12_password=<password> pki_ds_password=<password>
#
pkispawn -s CA -f /root/pki/ca.cfg
pkispawn
の man ページを参照してください。
2.2.2.4. インスタンスの削除
/var/lib/pki/instance_name/<subsystem>/registry/<subsystem>/deployment.cfg
) で読み込んで、読み込んだファイルを使用して PKI サブシステムを削除してから、追加のサブシステムがない場合は PKI インスタンスを削除します。詳細は、pkidestroy
の man ページを参照してください。
#
pkidestroy
Subsystem (CA/KRA/OCSP/TKS/TPS) [CA]:
Instance [pki-tomcat]:
Begin uninstallation (Yes/No/Quit)? Yes
Log file: /var/log/pki/pki-ca-destroy.20150928183547.log
Loading deployment configuration from /var/lib/pki/pki-tomcat/ca/registry/ca/deployment.cfg.
Uninstalling CA from /var/lib/pki/pki-tomcat.
rm '/etc/systemd/system/multi-user.target.wants/pki-tomcatd.target'
Uninstallation complete.
#
pkidestroy -s CA -i pki-tomcat
Log file: /var/log/pki/pki-ca-destroy.20150928183159.log
Loading deployment configuration from /var/lib/pki/pki-tomcat/ca/registry/ca/deployment.cfg.
Uninstalling CA from /var/lib/pki/pki-tomcat.
rm '/etc/systemd/system/multi-user.target.wants/pki-tomcatd.target'
Uninstallation complete.
2.2.3. 実行管理 (systemctl)
2.2.3.1. 起動、停止、再起動、およびステータスの取得
#
systemctl start <unit-file>@instance_name.service
#
systemctl status <unit-file>@instance_name.service
#
systemctl stop <unit-file>@instance_name.service
#
systemctl restart <unit-file>@instance_name.service
pki-tomcatd
Withwatchdog
disabledpki-tomcatd-nuxwdog
Withwatchdog
enabled
watchdog
サービスの詳細は、「パスワードおよびウォッチドッグ (nuxwdog)」 および 「Certificate System の Watchdog サービスの使用」 を参照してください。
2.2.3.2. インスタンスの自動起動
systemctl
ユーティリティーは、サーバー上の各プロセスの自動起動およびシャットダウン設定を管理します。これは、システムが再起動すると、一部のサービスを自動的に再起動できることを意味します。システムユニットファイルは、サービスの起動を制御し、サービスが正しい順序で起動されるようにします。systemd
サービスと systemctl
ユーティリティーについては、『Red Hat Enterprise Linux システム管理者のガイド』 で説明されています。
systemctl
で管理できます。したがって、このユーティリティーは、インスタンスを自動的に再起動するかどうかを設定できます。Certificate System インスタンスが作成されると、システムの起動時に有効になります。これは systemctl
を使用することで変更できます。
#
systemctl disable pki-tomcatd@instance_name.service
#
systemctl enable pki-tomcatd@instance_name.service
2.2.4. プロセス管理 (pki-server および pkidaemon)
2.2.4.1. pki-server コマンドラインツール
pki-server
の man ページを参照してください。
$
pki-server [CLI options] <command> [command parameters]
$
pki-server
$
pki-server ca$
pki-server ca-audit
--help
オプションを使用します。
$
pki-server--help
$
pki-server ca-audit-event-find--help
2.2.4.2. pki-server を使用したインストール済みサブシステムの有効化および無効化
pki-server
ユーティリティーを使用します。
#
pki-server subsystem-disable -i instance_id subsystem_id
#
pki-server subsystem-enable -i instance_id subsystem_id
ca
、kra
、tks
、ocsp
または tps
) に置き換えます。
pki-tomcat
という名前のインスタンスで OCSP サブシステムを無効にするには、次のコマンドを実行します。
#
pki-server subsystem-disable -i pki-tomcat ocsp
#
pki-server subsystem-find -i instance_id
#
pki-server subsystem-find -i instance_id subsystem_id
2.2.4.3. pkidaemon コマンドラインツール
pkidaemon {start|status} instance-type [instance_name]
- pkidaemon status tomcat: システム上のすべての PKI インスタンスの PKI サブシステムのオン/オフ、ポート、URL などのステータス情報を提供します。
- pkidaemon status tomcatinstance_name: 特定のインスタンスの各 PKI サブシステムのオン/オフ、ポート、URL などのステータス情報を提供します。
- pkidaemon start tomcat instance_name.service - systemctl を内部で使用します。
pkidaemon
の man ページを参照してください。
2.2.4.4. サブシステムの Web サービス URL の検索
https://server.example.com:8443/ca/services
pkidaemon status instance_name
https://server.example.com:8443/ca/ee/ca
https://192.0.2.1:8443/ca/services https://[2001:DB8::1111]:8443/ca/services
ポート | SSL/TLS に使用 | クライアント認証に使用[a] | Web サービス | Web サービスの場所 |
---|---|---|---|---|
Certificate Manager | ||||
8080 | いいえ | エンドエンティティー | ca/ee/ca | |
8443 | はい | いいえ | エンドエンティティー | ca/ee/ca |
8443 | はい | はい | エージェント | ca/agent/ca |
8443 | はい | いいえ | サービス | ca/services |
8443 | はい | いいえ | コンソール | pkiconsole https://host:port/ca |
キーリカバリー認証局 | ||||
8080 | いいえ | エンドエンティティー[b] | kra/ee/kra | |
8443 | はい | いいえ | エンドエンティティー[b] | kra/ee/kra |
8443 | はい | はい | エージェント | kra/agent/kra |
8443 | はい | いいえ | サービス | kra/services |
8443 | はい | いいえ | コンソール | pkiconsole https://host:port/kra |
オンライン証明書ステータスマネージャー | ||||
8080 | いいえ | エンドエンティティー[c] | ocsp/ee/ocsp | |
8443 | はい | いいえ | エンドエンティティー[c] | ocsp/ee/ocsp |
8443 | はい | はい | エージェント | ocsp/agent/ocsp |
8443 | はい | いいえ | サービス | ocsp/services |
8443 | はい | いいえ | コンソール | pkiconsole https://host:port/ocsp |
トークンキーサービス | ||||
8080 | いいえ | エンドエンティティー[b] | tks/ee/tks | |
8443 | はい | いいえ | エンドエンティティー[b] | tks/ee/tks |
8443 | はい | はい | エージェント | tks/agent/tks |
8443 | はい | いいえ | サービス | tks/services |
8443 | はい | いいえ | コンソール | pkiconsole https://host:port/tks |
トークン処理システム | ||||
8080 | いいえ | 安全でないサービス | tps/tps | |
8443 | はい | 安全なサービス | tps/tps | |
8080 | いいえ | Enterprise Security Client Phone Home | tps/phoneHome | |
8443 | はい | Enterprise Security Client Phone Home | tps/phoneHome | |
8443 | はい | はい | 管理、エージェント、および Operator サービス [d] | tps/ui |
[a]
クライアント認証値が No のサービスは、クライアント認証を要求するように再設定できます。Yes または No のいずれかの値を持たないサービスは、クライアント認証を使用するように設定することはできません。
[b]
このサブシステムタイプにはエンドエンティティーポートとインターフェイスがありますが、他のエンドエンティティーサービスとは異なり、これらのエンドエンティティーサービスには Web ブラウザーからはアクセスできません。
[c]
OCSP にはエンドエンティティーポートおよびインターフェイスがありますが、他のエンドクリティーサービスも Web ブラウザーを介してアクセスすることはできません。エンドユーザー OCSP サービスには、OCSP 要求を送信するクライアントがアクセスします。
[d]
エージェント、管理者、および Operator サービスはすべて、同じ Web サービスページを介してアクセスされます。各ロールは、そのロールのメンバーにのみ表示される特定のセクションにのみアクセスできます。
|
2.2.4.5. Certificate System コンソールの起動
pkiconsole
ユーティリティーを使用して SSL/TLS ポート経由でサブシステムインスタンスに接続すると、コンソールが開きます。このユーティリティーは、以下の形式を使用します。
pkiconsole https://server.example.com:admin_port/subsystem_type
ca
、kra
、ocsp
、または tks
にすることができます。たとえば、これにより KRA コンソールが開きます。
pkiconsole https://server.example.com:8443/kra
https://192.0.2.1:8443/ca https://[2001:DB8::1111]:8443/ca
2.3. Certificate System のアーキテクチャーの概要
2.3.1. Java Application Server
server.xml
に保存されます。https://tomcat.apache.org/tomcat-8.0-doc/config/ では、Tomcat 設定の詳細情報が提供されています。
web.xml
ファイルに保存され、Java Servlet 3.1 仕様で定義されます。詳細は https://www.jcp.org/en/jsr/detail?id=340 を参照してください。
CS.cfg
に保存されます。
2.3.2. Java Security Manager

pki_security_manager=false
オプションを指定するオーバーライド設定ファイルを使用すると、Security Manager が無効になります。
# systemctl stop pki-tomcatd@instance_name.service
または (nuxwdog
ウォッチドッグを使用している場合)# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
/etc/sysconfig/instance_name
ファイルを開き、SECURITY_MANAGER="false"
を設定します。# systemctl start pki-tomcatd@instance_name.service
または (nuxwdog
ウォッチドッグを使用している場合)# systemctl start pki-tomcatd-nuxwdog@instance_name.service
/usr/share/pki/server/conf/catalina.policy /usr/share/tomcat/conf/catalina.policy /var/lib/pki/$PKI_INSTANCE_NAME/conf/pki.policy /var/lib/pki/$PKI_INSTANCE_NAME/conf/custom.policy
/var/lib/pki/instance_name/conf/catalina.policy
に保存されます。
2.3.3. インターフェイス
2.3.3.1. サーブレットインターフェイス
web.xml
ファイルで定義されます。同じファイルは各サーブレットの URL と、サーブレットにアクセスするセキュリティー要件も定義します。詳細は、「Java Application Server」を参照してください。
2.3.3.2. 管理インターフェイス

2.3.3.3. エンドエンティティーインターフェイス

2.3.3.4. Operator インターフェイス

2.3.4. REST インターフェイス
web.xml
にあります。RESTEasy の詳細は、http://resteasy.jboss.org/ を参照してください。
- CA 証明書サービス:
http://<host_name>:<port>/ca/rest/certs/
- KRA キーサービス:
http://<host_name>:<port>/kra/rest/agent/keys/
- TKS ユーザーサービス:
http://<host_name>:<port>/tks/rest/admin/users/
- TPS グループサービス:
http://<host_name>:<port>/tps/rest/admin/groups/
{ "id":"admin", "UserID":"admin", "FullName":"Administrator", "Email":"admin@example.com", ... }
- ユーザー名およびパスワード
- クライアント証明書
/usr/share/pki/ca/conf/auth-method.properties
で定義されます。
/usr/share/pki/<subsystem>/conf/acl.properties
の ACL リソースにマッピングされます。
2.3.5. JSS
2.3.6. Tomcatjss
tomcatjss
と呼ばれる単一の JAR ファイルを使用します。これは、NSS が実行するセキュリティー操作の Java インターフェイスです。Tomcatjss は、Tomcat の Java Security Services (JSS) を使用した Java Secure Socket Extension (JSSE) 実装です。
- サーバーが起動している。
- Tomcat は、Certificate System インストールにリスニングソケットを作成する必要がある場所に移動します。
server.xml
ファイルが処理されます。このファイルの設定は、Tomcatjs が実装するソケットファクトリーを使用するようシステムに指示します。- Tomcajss は要求される各ソケットについて、ソケットの作成時に含まれる属性を読み取り、処理します。結果として生成されるソケットは、それらのパラメーターによって要求されているために動作します。
- サーバーが稼働したら、Tomcat ベースの Certificate System への着信接続を待機する必要なリッスンソケットのセットがあります。
server.xml
ファイルの詳細は、「Tomcat Engine および Web サービスの設定ファイル」 を参照してください。
2.3.7. PKCS #11

2.3.7.1. NSS Soft Token (内部トークン)
/var/lib/pki/instance_name/alias
ディレクトリーにあります。
- デフォルトの内部 PKCS #11 モジュールには、2 つのトークンが含まれています。
- 暗号化、復号化、ハッシュなどのすべての暗号化操作を実行する内部暗号化サービストークン。
- 内部キーストレージトークン (証明書 DB トークン)。このトークンは、証明書および鍵を保存する証明書および鍵データベースファイルをすべて処理します。
- FIPS 140 モジュールこのモジュールは、暗号化モジュール実装用の FIPS 140 政府標準に準拠します。FIPS 140 モジュールには、暗号化操作と証明書およびキーデータベースファイルとの通信の両方を処理する単一の組み込み FIPS 140 証明書データベーストークンが含まれています。
2.3.7.2. ハードウェアセキュリティーモジュール (HSM、外部トークン)
secmod.db
データベースで追跡されます。modutil
ユーティリティーは、署名操作に使用するハードウェアアクセラレーターのインストールなど、システムへの変更時にこのファイルを修正するために使用されます。modutil
の詳細は、Mozilla Developer の Web ページで Network Security Services (NSS) を参照してください。
2.3.8. Certificate System のシリアル番号管理
2.3.8.1. シリアル番号の範囲
- 現在のシリアル番号管理は、連続したシリアル番号範囲の割り当てに基づいています。
- インスタンスは、定義されたしきい値を下回る場合に新しい範囲を要求します。
- インスタンスは、インスタンスに割り当てられたら、新たに取得した範囲に関する情報を保存します。
- インスタンスは、すべての数字が使い切られるまで古い範囲を引き続き使用し、新しい範囲に移動します。
- クローン作成されたサブシステムは、レプリケーションの競合を使用して範囲割り当てを同期します。
- マスターの現在の範囲には、クローン作成のプロセスの新しいクローンに転送されます。
- 転送範囲が定義されたしきい値を下回る場合に、新規クローンが新しい範囲を要求する可能性があります。
[CA]
セクションを追加し、必要に応じて以下の name=value
ペアをそのセクションに追記します。/etc/pki/default.cfg
にすでに存在するデフォルト値を以下の例に示します。
[CA] pki_serial_number_range_start=1 pki_serial_number_range_end=10000000 pki_request_number_range_start=1 pki_request_number_range_end=10000000 pki_replica_number_range_start=1 pki_replica_number_range_end=100
2.3.8.2. ランダムなシリアル番号管理
[CA]
セクションを追加し、そのセクションに以下の name=value
ペアを追加することによって、CA インスタンスのインストール時に選択可能です。
[CA] pki_random_serial_numbers_enable=True
2.3.9. セキュリティードメイン
2.3.10. パスワードおよびウォッチドッグ (nuxwdog)
<instance_dir>/conf/password.conf
ファイルに書き込まれます。同時に、識別文字列は、パラメーター cms.passwordlist
の一部としてメインの設定ファイル CS.cfg
に保存されます。
CS.cfg
は Red Hat Enterprise Linux により保護され、PKI 管理者のみがアクセスできます。パスワードは CS.cfg
に保存されません。
password.conf
にも記述されます。
password.conf
に配置することもできます。LDAP 公開は、公開ディレクトリーに対して新たに設定された Directory Manager パスワードが password.conf
に送信される一例です。
password.conf
ファイルを完全に削除できます。再起動時には、nuxwdog ウォッチドッグプログラムは、プロンプトが表示されたら、パラメーター cms.passwordlist
(および HSM が使用される場合は cms.tokenList
) を使用して、必要なパスワードを要求します。その後、パスワードは、サーバークラッシュからの自動リカバリーを可能にするために、カーネルキーリングの nuxwdog によりキャッシュされます。制御されていないシャットダウン (クラッシュ) が原因で、この自動リカバリー (自動サブシステム再起動) が発生します。管理者が制御したシャットダウンの場合は、管理者がパスワードを再度要求します。
2.3.11. 内部 LDAP データベース
2.3.12. SELinux (Security Enhanced Linux)
図2.1 CA SELinux ポートポリシー

- 各サブシステムインスタンスのファイルおよびディレクトリーには、特定の SELinux コンテキストのラベルが付けられます。
- 各サブシステムインスタンスのポートは、特定の SELinux コンテキストでラベル付けされます。
- すべての Certificate System プロセスは、サブシステム固有のドメイン内で制限されます。
- 各ドメインには、ドメインに承認されたアクションを定義する特定のルールがあります。
- SELinux ポリシーに指定されていないアクセスは、Certificate System インスタンスに対して拒否されます。
pkispawn
が実行されるたびに、Certificate System サブシステム、そのサブシステムに関連付けられたファイル、およびポートには、必要な SELinux コンテキストのラベルが付けられます。このコンテキストは、特定のサブシステムが pkidestroy
を使用して削除されると削除されます。
pki_tomcat_t
ドメインです。Certificate System インスタンスは Tomcat サーバーであり、pki_tomcat_t
ドメインは標準の tomcat_t
Tomcat ドメインのポリシーを拡張します。サーバー上のすべての Certificate System インスタンスが同じドメインを共有します。
unconfined_t
) で実行され、次に pki_tomcat_t
ドメインに移行します。その後、このプロセスには、pki_tomcat_log_t
というラベルが付けられたログファイルへの書き込みアクセス、pki_tomcat_etc_rw_t
というラベルが付いた設定ファイルへの読み書きアクセス、http_port_t
ポートのオープンおよび書き込み機能など、特定のアクセスパーミッションが設定されます。
2.3.13. セルフテスト
#
pki-server subsystem-enable <subsystem>
2.3.14. ログ
pki_subsystem_log_path
に指定されているすべてのディレクトリーに配置されます。 通常の監査ログは他のログタイプとともにログディレクトリーに置かれ、署名された監査ログは /var/log/pki/instance_name/subsystem_name/signedAudit
に書き込まれます。ログのデフォルトの場所を変更するには、設定を変更してください。
2.3.14.1. 監査ログ
2.3.14.2. システムログ
system
です。サーバーへの要求に関する情報 (HTTP および HTTPS のすべてのリクエスト) とサーバーからの応答を記録します。このログに記録される情報には、サーバーにアクセスしたクライアントマシンの IP アドレス (IPv4 と IPv6 の両方)、検索、追加、編集などの実行される操作、返されたエントリーの数などのアクセスの結果が含まれます。
id_number processor - [date:time] [number_of_operations] [result] servlet: message
例2.1 TKS システムログ
10439.http-13443-Processor25 - [19/May/2020:14:16:51 CDT] [11] [3] UGSubsystem: Get User Error User not found
2.3.14.3. トランザクションログ
transactions
で、サブシステムに実行された操作または送信された操作をすべて記録します。
id_number.processor - [date:time] [number_of_operations] [result] servlet: message
例2.2 トランザクションログ
11438.http-8443-Processor25 - [27/May/2020:07:56:18 CDT] [1] [1] archival reqID 4 fromAgent agentID: CA-server.example.com-8443 authenticated by noAuthManager is completed DN requested: UID=recoverykey,E=recoverykey@email.com,CN=recover key serial number: 0x3
2.3.14.4. デバッグログ
[date:time] [processor]: servlet: message
[10/Jun/2020:05:14:51][main]: Established LDAP connection using basic authentication to host localhost port 389 as cn=Directory Manager
[06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.requestowner$ value=KRA-server.example.com-8443
例2.3 CA 証明書要求ログメッセージ
[06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.profileapprovedby$ value=admin [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.cert_request$ value=MIIBozCCAZ8wggEFAgQqTfoHMIHHgAECpQ4wDDEKMAgGA1UEAxMBeKaBnzANBgkqhkiG9w0BAQEFAAOB... [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.profile$ value=true [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.cert_request_type$ value=crmf [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.requestversion$ value=1.0.0 [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.req_locale$ value=en [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.requestowner$ value=KRA-server.example.com-8443 [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.dbstatus$ value=NOT_UPDATED [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.subject$ value=uid=jsmith, e=jsmith@example.com [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.requeststatus$ value=begin [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.auth_token.user$ value=uid=KRA-server.example.com-8443,ou=People,dc=example,dc=com [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.req_key$ value=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDreuEsBWq9WuZ2MaBwtNYxvkLP^M HcN0cusY7gxLzB+XwQ/VsWEoObGldg6WwJPOcBdvLiKKfC605wFdynbEgKs0fChV^M k9HYDhmJ8hX6+PaquiHJSVNhsv5tOshZkCfMBbyxwrKd8yZ5G5I+2gE9PUznxJaM^M HTmlOqm4HwFxzy0RRQIDAQAB [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.auth_token.authmgrinstname$ value=raCertAuth [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.auth_token.uid$ value=KRA-server.example.com-8443 [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.auth_token.userid$ value=KRA-server.example.com-8443 [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.requestor_name$ value= [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.profileid$ value=caUserCert [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.auth_token.userdn$ value=uid=KRA-server.example.com-4747,ou=People,dc=example,dc=com [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.requestid$ value=20 [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.auth_token.authtime$ value=1212782378071 [06/Jun/2020:14:59:38][http-8443;-Processor24]: ProfileSubmitServlet: key=$request.req_x509info$ value=MIICIKADAgECAgEAMA0GCSqGSIb3DQEBBQUAMEAxHjAcBgNVBAoTFVJlZGJ1ZGNv^M bXB1dGVyIERvbWFpbjEeMBwGA1UEAxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4X^M DTA4MDYwNjE5NTkzOFoXDTA4MTIwMzE5NTkzOFowOzEhMB8GCSqGSIb3DQEJARYS^M anNtaXRoQGV4YW1wbGUuY29tMRYwFAYKCZImiZPyLGQBARMGanNtaXRoMIGfMA0G^M CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDreuEsBWq9WuZ2MaBwtNYxvkLPHcN0cusY^M 7gxLzB+XwQ/VsWEoObGldg6WwJPOcBdvLiKKfC605wFdynbEgKs0fChVk9HYDhmJ^M 8hX6+PaquiHJSVNhsv5tOshZkCfMBbyxwrKd8yZ5G5I+2gE9PUznxJaMHTmlOqm4^M HwFxzy0RRQIDAQABo4HFMIHCMB8GA1UdIwQYMBaAFG8gWeOJIMt+aO8VuQTMzPBU^M 78k8MEoGCCsGAQUFBwEBBD4wPDA6BggrBgEFBQcwAYYuaHR0cDovL3Rlc3Q0LnJl^M ZGJ1ZGNvbXB1dGVyLmxvY2FsOjkwODAvY2Evb2NzcDAOBgNVHQ8BAf8EBAMCBeAw^M HQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMCQGA1UdEQQdMBuBGSRyZXF1^M ZXN0LnJlcXVlc3Rvcl9lbWFpbCQ=
[07/Jul/2020:06:25:40][http-11180-Processor25]: OCSPServlet: OCSP Request: [07/Jul/2020:06:25:40][http-11180-Processor25]: OCSPServlet: MEUwQwIBADA+MDwwOjAJBgUrDgMCGgUABBSEWjCarLE6/BiSiENSsV9kHjqB3QQU
2.3.14.5. インストールログ
/var/log/pki/
ディレクトリーに、名前が pki-subsystem_name-spawn.timestamp.log
の形式で指定します。
例2.4 CA インストールログ
... 2015-07-22 20:43:13 pkispawn : INFO ... finalizing 'pki.server.deployment.scriptlets.finalization' 2015-07-22 20:43:13 pkispawn : INFO ....... cp -p /etc/sysconfig/pki/tomcat/pki-tomcat/ca/deployment.cfg /var/log/pki/pki-tomcat/ca/archive/spawn_deployment.cfg.20150722204136 2015-07-22 20:43:13 pkispawn : DEBUG ........... chmod 660 /var/log/pki/pki-tomcat/ca/archive/spawn_deployment.cfg.20150722204136 2015-07-22 20:43:13 pkispawn : DEBUG ........... chown 26445:26445 /var/log/pki/pki-tomcat/ca/archive/spawn_deployment.cfg.20150722204136 2015-07-22 20:43:13 pkispawn : INFO ....... generating manifest file called '/etc/sysconfig/pki/tomcat/pki-tomcat/ca/manifest' 2015-07-22 20:43:13 pkispawn : INFO ....... cp -p /etc/sysconfig/pki/tomcat/pki-tomcat/ca/manifest /var/log/pki/pki-tomcat/ca/archive/spawn_manifest.20150722204136 2015-07-22 20:43:13 pkispawn : DEBUG ........... chmod 660 /var/log/pki/pki-tomcat/ca/archive/spawn_manifest.20150722204136 2015-07-22 20:43:13 pkispawn : DEBUG ........... chown 26445:26445 /var/log/pki/pki-tomcat/ca/archive/spawn_manifest.20150722204136 2015-07-22 20:43:13 pkispawn : INFO ....... executing 'systemctl enable pki-tomcatd.target' 2015-07-22 20:43:13 pkispawn : INFO ....... executing 'systemctl daemon-reload' 2015-07-22 20:43:13 pkispawn : INFO ....... executing 'systemctl restart pki-tomcatd@pki-tomcat.service' 2015-07-22 20:43:14 pkispawn : INFO END spawning subsystem 'CA' of instance 'pki-tomcat' 2015-07-22 20:43:14 pkispawn : DEBUG
2.3.14.6. Tomcat のエラーとアクセスログ
- admin.timestamp
- catalina.timestamp
- catalina.out
- host-manager.timestamp
- localhost.timestamp
- localhost_access_log.timestamp
- manager.timestamp
2.3.14.7. セルフテストログ
CS.cfg
ファイルの設定を変更してのみ設定できます。このセクションのログに関する情報は、このログには関係しません。セルフテストについての詳細は、「セルフテスト」を参照してください。
2.3.14.8. journalctl
ログ
systemd
でキャプチャーされ、journalctl
ユーティリティーを介して公開されます。
# journalctl -u pki-tomcatd@instance_name.service
nuxwdog
サービスを使用している場合は、以下を実行します。
# journalctl -u pki-tomcatd-nuxwdog@instance_name.service
# journalctl -f -u pki-tomcatd@instance_name.service
nuxwdog
サービスを使用している場合は、以下を実行します。
# journalctl -f -u pki-tomcatd-nuxwdog@instance_name.service
2.3.15. インスタンスのレイアウト
/etc/pki/instance_name/server.xml
に保存されますが、CA サーブレットは /usr/share/pki/ca/webapps/ca/WEB-INF/web.xml
で定義されています。これはシステム上のすべてのサーバーインスタンスで共有されます。
2.3.15.1. Certificate System のファイルおよびディレクトリーの場所
pki-tomcat
です。true の値は、pkispawn
を使用したサブシステムの作成時に指定されます。
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat |
設定ディレクトリー | /etc/pki/pki-tomcat |
設定ファイル |
/etc/pki/pki-tomcat/server.xml
/etc/pki/pki-tomcat/password.conf
|
セキュリティーデータベース | /var/lib/pki/pki-tomcat/alias |
サブシステム証明書 |
SSL サーバー証明書
サブシステム証明書 [a]
|
ログファイル | /var/log/pki/pki-tomcat |
Web サービスファイル |
/usr/share/pki/server/webapps/ROOT - メインページ
/usr/share/pki/server/webapps/pki/admin - 管理テンプレート
/usr/share/pki/server/webapps/pki/js - JavaScript ライブラリー
|
[a]
サブシステム証明書はセキュリティードメインによって常に発行されるため、クライアント認証を必要とするドメインレベルの操作はこのサブシステム証明書をベースにします。
|
/var/lib/pki/instance_name/conf/
ディレクトリーは、/etc/pki/instance_name/
ディレクトリーへのシンボリックリンクです。
2.3.15.2. CA サブシステム情報
pki-tomcat
です。true の値は、pkispawn
を使用したサブシステムの作成時に指定されます。
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/ca |
設定ディレクトリー | /etc/pki/pki-tomcat/ca |
設定ファイル | /etc/pki/pki-tomcat/ca/CS.cfg |
サブシステム証明書 |
CA 署名証明書
OCSP 署名証明書 (CA の内部 OCSP サービス用)
監査ログ署名証明書
|
ログファイル | /var/log/pki/pki-tomcat/ca |
ログのインストール | /var/log/pki/pki-ca-spawn.YYYYMMDDhhmmss.log |
プロファイルファイル | /var/lib/pki/pki-tomcat/ca/profiles/ca |
メール通知テンプレート | /var/lib/pki/pki-tomcat/ca/emails |
Web サービスファイル |
/usr/share/pki/ca/webapps/ca/agent: エージェントサービス
/usr/share/pki/ca/webapps/ca/admin: 管理サービス
/usr/share/pki/ca/webapps/ca/ee: エンドユーザーサービス
|
2.3.15.3. KRA サブシステム情報
pki-tomcat
です。true の値は、pkispawn
を使用したサブシステムの作成時に指定されます。
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/kra |
設定ディレクトリー | /etc/pki/pki-tomcat/kra |
設定ファイル | /etc/pki/pki-tomcat/kra/CS.cfg |
サブシステム証明書 |
トランスポート証明書
ストレージ証明書
監査ログ署名証明書
|
ログファイル | /var/log/pki/pki-tomcat/kra |
ログのインストール | /var/log/pki/pki-kra-spawn.YYYYMMDDhhmmss.log |
Web サービスファイル |
/usr/share/pki/kra/webapps/kra/agent: エージェントサービス
/usr/share/pki/kra/webapps/kra/admin: 管理サービス
|
2.3.15.4. OCSP サブシステム情報
pki-tomcat
です。true の値は、pkispawn
を使用したサブシステムの作成時に指定されます。
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/ocsp |
設定ディレクトリー | /etc/pki/pki-tomcat/ocsp |
設定ファイル | /etc/pki/pki-tomcat/ocsp/CS.cfg |
サブシステム証明書 |
OCSP 署名証明書
監査ログ署名証明書
|
ログファイル | /var/log/pki/pki-tomcat/ocsp |
ログのインストール | /var/log/pki/pki-ocsp-spawn.YYYYMMDDhhmmss.log |
Web サービスファイル |
/usr/share/pki/ocsp/webapps/ocsp/agent: エージェントサービス
/usr/share/pki/ocsp/webapps/ocsp/admin: 管理サービス
|
2.3.15.5. TKS サブシステム情報
pki-tomcat
です。true の値は、pkispawn
を使用したサブシステムの作成時に指定されます。
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/tks |
設定ディレクトリー | /etc/pki/pki-tomcat/tks |
設定ファイル | /etc/pki/pki-tomcat/tks/CS.cfg |
サブシステム証明書 | 監査ログ署名証明書 |
ログファイル | /var/log/pki/pki-tomcat/tks |
ログのインストール | /var/log/pki/pki-tomcat/pki-tks-spawn.YYYYMMDDhhmmss.log |
2.3.15.6. TPS サブシステム情報
pki-tomcat
です。true の値は、pkispawn
を使用したサブシステムの作成時に指定されます。
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/tps |
設定ディレクトリー | /etc/pki/pki-tomcat/tps |
設定ファイル | /etc/pki/pki-tomcat/tps/CS.cfg |
サブシステム証明書 | 監査ログ署名証明書 |
ログファイル | /var/log/pki/pki-tomcat/tps |
ログのインストール | /var/log/pki/pki-tps-spawn.YYYYMMDDhhhmmss.log |
Web サービスファイル | /usr/share/pki/tps/webapps/tps - TPS サービス |
2.3.15.7. 共有 Certificate System サブシステムファイルの場所
ディレクトリーの場所 | コンテンツ |
---|---|
/usr/share/pki | Certificate System インスタンスの作成に使用する一般的なファイルとテンプレートが含まれます。すべてのサブシステムの共有ファイルとともに、サブディレクトリーにサブシステム固有のファイルがあります。
|
/usr/bin | Certificate System サブシステムが共有する pkispawn および pkidestroy インスタンス設定スクリプトおよびツール (Java、ネイティブ、およびセキュリティー) が含まれます。 |
/usr/share/java/pki | ローカルの Tomcat Web アプリケーションが共有し、Certificate System サブシステムで共有される Java アーカイブファイルが含まれます。 |
2.4. PKI (Certificate System あり)
2.4.1. 証明書の発行
2.4.1.1. 登録プロセス
2.4.1.1.1. ユーザーインターフェイスを使用した登録
- エンドエンティティーは、登録フォームの 1 つに情報を提供し、リクエストを送信します。エンドエンティティーから収集された情報は、収集された情報に応じてフォームでカスタマイズ可能であり、証明書に保存したり、フォームに関連付けられた認証方法に対して認証したりできます。このフォームは、Certificate Manager に送信される要求を作成します。
- 登録フォームは、リクエストの公開鍵と秘密鍵、またはデュアルキーペアの作成をトリガーします。
- エンドエンティティーは、認証タイプに応じて、リクエストの送信前に認証情報を提供します。LDAP 認証、PIN ベースの認証、または証明書ベースの認証を指定できます。
- リクエストは、エージェントの承認登録プロセスまたは自動プロセスのいずれかに送信されます。
- エンドエンティティー認証を含まないエージェント承認プロセスは、エージェントが要求を処理する必要があるエージェントサービスインターフェイスの要求キューに要求を送信します。その後、エージェントはリクエストの一部を変更したり、リクエストのステータスを変更したり、リクエストを拒否したり、リクエストを承認することができます。自動通知を設定して、リクエストがキューに表示されるたびにエージェントにメールが送信されるようにすることができます。また、自動化されたジョブを設定して、事前に設定されたスケジュールでキューの内容のリストをエージェントに送信することもできます。
- エンドエンティティー認証を含む自動化されたプロセスは、エンドエンティティーが正常に認証されるとすぐに証明書要求を処理します。
- フォームの送信時に LDAP ディレクトリーからエンドエンティティーに関する情報を収集します。証明書プロファイルベースの登録では、フォームのデフォルト値を使用して、ユーザーの LDAP ID およびパスワードを収集します。
- フォームに関連付けられた証明書プロファイルは、発行する証明書の要素を決定します。証明書プロファイルに応じて、リクエストは、要求が制約セットを満たすか、必要な情報が提供されているか、および新しい証明書の内容を決定するために評価されます。
- フォームは、ユーザーが秘密鍵をエクスポートするようにリクエストすることもできます。KRA サブシステムがこの CA で設定されている場合は、エンドエンティティーのキーが要求され、アーカイブされた要求が KRA に送信されます。このプロセスは通常、エンドエンティティーからの対話を必要としません。
- 証明書要求は、証明書プロファイルまたは認証要件を満たしていないために拒否されるか、証明書が発行されます。
- 証明書はエンドエンティティーに配信されます。
- 自動登録では、証明書は即座にユーザーに配信されます。通常、登録は HTML ページを介して行われるため、証明書は別の HTML ページの応答として返されます。
- エージェントが承認した登録では、証明書はシリアル番号またはエンドエンティティーインターフェイスのリクエスト ID で取得できます。
- 通知機能が設定されている場合は、証明書の取得先のリンクがエンドユーザーに送信されます。
- 証明書が発行または拒否されると、自動通知をエンドエンティティーに送信できます。
- 新しい証明書は Certificate Manager の内部データベースに保存されます。
- Certificate Manager に公開が設定されている場合、証明書はファイルまたは LDAP ディレクトリーに公開されます。
- 内部 OCSP サービスは、証明書ステータス要求を受け取る際に内部データベースの証明書のステータスを確認します。
2.4.1.1.2. コマンドラインを使用した登録
2.4.1.1.2.1. pki
ユーティリティーを使用した登録
- pki-cert(1) の man ページ
- 『Red Hat Certificate System 管理ガイド』の『コマンドラインインターフェイス』セクションを参照してください。
2.4.1.1.2.2. CMC を使用した登録
PKCS10Client
、CRMFPopClient
などのユーティリティーを使用して、PKCS #10 または CRMF 証明書署名要求 (CSR) を生成します。注記Key Recovery Agent (KRA) で鍵のアーカイブが有効になっている場合は、kra.transport
ファイルに設定されている Privacy Enhanced Mail (PEM) 形式の KRA のトランスポート証明書とともに、CRMFPopClient
ユーティリティーを使用します。CMCRequest
ユーティリティーを使用して、CSR を CMC 要求に変換します。CMCRequest
ユーティリティーは、設定ファイルを入力として使用します。このファイルには、CSR へのパスや CSR の形式などが含まれます。詳細および例は、CMCRequest(1) の man ページを参照してください。HttpClient
ユーティリティーを使用して、CMC 要求を CA に送信します。HttpClient
は、CMC 要求ファイルやサーブレットへのパスなどの設定を含む設定ファイルを使用します。HttpClient コマンドが成功すると、ユーティリティーは CA から CMC ステータス制御を備えた PKCS #7 チェーンを受け取ります。ユーティリティーが提供するパラメーターの詳細は、パラメーターを指定せずに HttpClient コマンドを入力します。CMCResponse
ユーティリティーを使用して、HttpClient
で生成された PKCS #7 ファイルの発行結果を確認します。リクエストが正常に行われると、CMCResponse
は証明書チェーンを読み取り可能な形式で表示します。詳細は、CMCResponse(1) の man ページを参照してください。- 新しい証明書をアプリケーションにインポートします。詳細は、証明書をインポートするアプリケーションの手順に従います。注記
HttpClient
が取得した証明書は、PKCS #7 形式になります。アプリケーションが Base64 でエンコードされた証明書のみに対応している場合は、BtoA
ユーティリティーを使用して証明書を変換します。また、一部のアプリケーションでは、PEM (Privacy Enhanced Mail) 形式の証明書にヘッダーとフッターが必要です。必要な場合は、証明書を変換した後に PEM ファイルに手動で追加します。
2.4.1.1.2.2.1. POP なしの CMC 登録
HttpClient
ユーティリティーは、EncryptedPOP
CMC ステータスを受け取ります。これは、CMCResponse コマンドにより表示されます。この場合は、設定ファイルに異なるパラメーターを指定して CMCRequest
コマンドを再び入力します。
2.4.1.1.2.2.2. 署名付き CMC 要求
- エージェントが要求に署名する場合は、プロファイルの認証方法を CMCAuth に設定します。
- ユーザーがリクエストに署名する場合は、プロファイルの認証方法を CMCUserSignedAuth に設定します。
2.4.1.1.2.2.3. 署名なしの CMC 要求
CMCUserSignedAuth
認証プラグインはプロファイルで設定されているため、共有秘密認証メカニズムと組み合わせて署名されていない CMC 要求を使用する必要があります。
自己署名 CMC 要求
とも呼ばれます。
2.4.1.1.2.2.5. 単純な CMC 要求
HttpClient
ユーティリティーの設定ファイルで以下を設定します。
servlet=/ca/ee/ca/profileSubmitCMCSimple?profileId=caECSimpleCMCUserCert
2.4.1.2. 証明書プロファイル
- X.509 バージョン 3 に準拠する証明書
- 証明書サブジェクト名と発行者名に対する Unicode サポート
- 空の証明書のサブジェクト名のサポート
- カスタマイズされたサブジェクト名コンポーネントのサポート
- カスタマイズされた拡張機能のサポート
<instance directory>/ca/profiles/ca
に保存され、その名前は <profile id>.cfg
の形式になります。適切な pkispawn 設定パラメーターを使用すると、LDAP ベースのプロファイルが可能です。
2.4.1.3. 証明書登録の認証
2.4.1.4. クロスペアの証明書
2.4.2. 証明書の更新
2.4.3. 証明書および CRL の公開
2.4.4. 証明書の取り消しとステータスの確認
2.4.4.1. 証明書の取り消し
- エンドエンティティーページ。詳細は、『Red Hat Certificate System 管理ガイド』の『証明書取り消しページ』セクションを参照してください。
- コマンドラインの
pki
ユーティリティー詳細は、pki-cert(1) の man ページを参照してください。
2.4.4.2. 証明書の状態
2.4.4.2.1. CRL
2.4.4.2.2. OCSP サービス
- CA は、証明書のステータスに対してクエリーできる OCSP レスポンダーを特定する Authority Information Access 拡張を含む証明書を発行するよう設定されます。
- CA は CRL を OCSP レスポンダーに定期的に公開します。
- OCSP レスポンダーは、CA から受け取る CRL を維持します。
- OCSP 準拠のクライアントは、検証用の OCSP レスポンダーに証明書を特定するのに必要なすべての情報が含まれるリクエストを送信します。アプリケーションは、検証する証明書の Authority Information Access 拡張の値から OCSP レスポンダーの場所を決定します。
- OCSP レスポンダーは、リクエストに処理に必要なすべての情報が含まれるかどうかを判断します。有効になっていない場合、または要求されたサービスに対して有効になっていない場合は、拒否通知が送信されます。十分な情報がある場合は、要求を処理し、証明書のステータスを示すレポートを送信します。
2.4.4.2.2.1. OCSP レスポンスの署名
- ステータスがチェックされている証明書を発行した CA。
- クライアントが信頼する公開鍵のあるレスポンダー。このようなレスポンダーは 信頼できるレスポンダー と呼ばれます。
- 証明書を取り消して CRL を公開する CA から直接発行された、特別にマークされた証明書を保持するレスポンダー。レスポンダーによるこの証明書の所持は、CA が、CA によって取り消された証明書に対して OCSP 応答を発行することをレスポンダーに許可したことを示します。このようなレスポンダーは、CA 設計されたレスポンダー または CA 承認レスポンダー と呼ばれます。
2.4.4.2.2.2. OCSP レスポンス
- Good or Verified。ステータス照会に対する肯定応答を指定します。これは、証明書が取り消されていないことを意味します。必ずしも証明書が発行されたことや、証明書の有効期間内であることを意味するわけではありません。応答拡張は、証明書のステータスに関するレスポンダーによるアサーションの追加情報を示すために使用できます。
- Revoked。永続的または一時的に、証明書が取り消されたことを指定します。
2.4.4.2.2.3. OCSP サービス
- Certificate Manager に構築された OCSP
- Online Certificate Status Manager サブシステム
2.4.5. キーのアーカイブ、リカバリー、およびローテーション
2.4.5.1. キーのアーカイブ
- クライアント側のキー生成: このメカニズムを使用すると、クライアントは CRMF 形式で CSR を生成し、登録とキーのアーカイブのために (適切な KRA セットアップを使用して) CA に要求を送信します。『Red Hat Certificate System 管理ガイド』 『のCRMFPopClient を使用した CSR の作成』 セクションを参照してください。
- サーバー側の鍵生成: このメカニズムでは、適切に装備された証明書登録プロファイルにより、PKI キーが KRA で生成され、任意で新しく発行された証明書とともにアーカイブされます。サーバー 『側の鍵生成を使用した CSR の生成 を参照して』 ください。
- キーリカバリーエージェントがキー ID で検索されると、その ID に対応するキーのみが返されます。
- ユーザー名でエージェントを検索すると、その所有者に属する保存されたすべてのキーが返されます。
- 証明書の公開鍵でエージェントを検索すると、対応する秘密鍵のみが返されます。
- トランスポートキーペアと対応する証明書。
- ストレージキーペア
図2.2 クライアント側のキー生成における鍵アーカイブプロセスの仕組み

- クライアントは CRMF リクエストを生成し、CA の登録ポータルを介して送信します。
- クライアントの秘密鍵は CRMF リクエスト内にラップされ、KRA によってだけラップできます。
- CA は、キーアーカイブオプションを使用した CRMF リクエストであることを検出し、秘密キーアーカイブのためにリクエストを KRA に転送します。
- KRA は、ユーザーの秘密鍵を復号/ラップ解除し、秘密鍵が公開鍵に対応していることを確認した後、内部 LDAP データベースに保存する前に再度暗号化/ラップします。
- 秘密鍵が正常に保存されると、KRA は、鍵が正常にアーカイブされたことを確認する CA に応答します。
- CA は、証明書情報コンテンツの作成と検証のために、登録プロファイルフレームワークにリクエストを送信します。すべてが渡されると、証明書を発行し、応答でエンドエンティティーに送り返します。
2.4.5.2. キーのリカバリー
図2.3 非同期リカバリー

pki
ユーティリティーを使用してこの動作を複製する必要があります。詳細は、pki(1) および pki-key(1) の man ページ、または CRMFPopClient --help および man CMCRequest を実行します。
pki
ユーティリティーは、これらのタイプのシークレットの保存および取得を可能にするオプションをサポートします。
2.4.5.3. KRA トランスポートのキーローテーション
- 新しい KRA トランスポートの鍵および証明書の生成
- 新しいトランスポートキーおよび証明書の KRA クローンへの転送
- 新しい KRA トランスポート証明書を使用した CA 設定の更新
- 新しいトランスポートキーおよび証明書のみを使用するように KRA 設定を更新
- 新しい KRA トランスポートキーおよび証明書の生成
- KRA トランスポート証明書を要求します。
- KRA を停止します。
# systemctl stop pki-tomcatd@pki-kra.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@pki-kra.service
- KRA NSS データベースディレクトリーに移動します。
# cd /etc/pki/pki-kra/alias
- サブディレクトリーを作成し、すべての NSS データベースファイルを保存します。以下に例を示します。
mkdir nss_db_backup cp *.db nss_db_backup
PKCS10Client
ユーティリティーを使用して新しいリクエストを作成します。以下に例を示します。# PKCS10Client -p password -d '.' -o 'req.txt' -n 'CN=KRA Transport 2 Certificate,O=example.com Security Domain'
または、certutil
ユーティリティーを使用します。以下に例を示します。# certutil -d . -R -k rsa -g 2048 -s 'CN=KRA Transport 2 Certificate,O=example.com Security Domain' -f password-file -a -o transport-certificate-request-file
- CA エンドエンティティーページの 手動データリカバリーマネージャートランスポート証明書の登録 ページで、トランスポート証明書要求を送信します。
- End-Entity 取得ページで要求ステータスをチェックして、送信した要求のエージェント承認が証明書を取得するのを待ちます。
- CA Agent Services インターフェイスを使用して KRA トランスポート証明書を承認します。
- KRA トランスポート証明書を取得します。
- KRA NSS データベースディレクトリーに移動します。
# cd /etc/pki/pki-kra/alias
- End-Entity 取得ページで要求ステータスをチェックして、送信した要求のエージェント承認が証明書を取得するのを待ちます。
- 新しい KRA トランスポート証明書が利用可能になったら、その Base64 でエンコードされた値をテキストファイル (例:
cert-serial_number.txt
ファイル) に貼り付けます。ヘッダー (-----BEGIN CERTIFICATE-----
) またはフッター (-----END CERTIFICATE-----
) を追加しないでください。
- KRA トランスポート証明書を要求します。
- KRA NSS データベースディレクトリーに移動します。
# cd /etc/pki/pki-kra/alias
- トランスポート証明書を KRA NSS データベースにインポートします。
# certutil -d . -A -n 'transportCert-serial_number cert-pki-kra KRA' -t 'u,u,u' -a -i cert-serial_number.txt
- KRA トランスポート証明書設定を更新します。
- KRA NSS データベースディレクトリーに移動します。
# cd /etc/pki/pki-kra/alias
- 新しい KRA トランスポート証明書がインポートされていることを確認します。
# certutil -d . -L # certutil -d . -L -n 'transportCert-serial_number cert-pki-kra KRA'
/var/lib/pki/pki-kra/kra/conf/CS.cfg
ファイルを開き、以下の行を追加します。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
- 新しいトランスポートキーおよび証明書の KRA クローンへの伝搬
- KRA を起動します。
# systemctl start pki-tomcatd@pki-kra.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@pki-kra.service
- クローンに伝播するために、新しいトランスポートキーと証明書を抽出します。
- KRA NSS データベースディレクトリーに移動します。
# cd /etc/pki/pki-kra/alias
- KRA を停止します。
# systemctl stop pki-tomcatd@pki-kra.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@pki-kra.service
- 新しい KRA トランスポート証明書が存在することを確認します。
# certutil -d . -L # certutil -d . -L -n 'transportCert-serial_number cert-pki-kra KRA'
- KRA の新規トランスポートキーおよび証明書をエクスポートします。
# pk12util -o transport.p12 -d . -n 'transportCert-serial_number cert-pki-kra KRA'
- エクスポートした KRA トランスポート鍵および証明書を確認します。
# pk12util -l transport.p12
- 各 KRA クローンで以下の手順を実行します。
- トランスポートキーおよび証明書を含む
transport.p12
ファイルを KRA クローンの場所にコピーします。 - クローンの NSS データベースディレクトリーに移動します。
# cd /etc/pki/pki-kra/alias
- KRA のクローンを停止します。
# systemctl stop pki-tomcatd@pki-kra.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@pki-kra.service
- クローン NSS データベースの内容を確認します。
# certutil -d . -L
- クローンの新規トランスポートキーと証明書をインポートします。
# pk12util -i transport.p12 -d .
- クローンの
/var/lib/pki/pki-kra/kra/conf/CS.cfg
ファイルに以下の行を追加します。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
- KRA のクローンを起動します。
# systemctl start pki-tomcatd@pki-kra.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@pki-kra.service
- 新しい KRA トランスポート証明書を使用した CA 設定の更新
- CA に組み込む新しい KRA トランスポート証明書をフォーマットします。
- 直前の手順で KRA トランスポート証明書を取得する際に作成した
cert-serial_number.txt
KRA トランスポート証明書ファイルを取得します。 cert-serial_number.txt
に含まれる Base64 でエンコードされた証明書を 1 行のファイルに変換します。# tr -d '\n' < cert-serial_number.txt > cert-one-line-serial_number.txt
- CA と、上記の KRA に対応するすべてのクローンに対して以下を行います。
- CA を停止します。
# systemctl stop pki-tomcatd@pki-ca.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@pki-ca.service
/var/lib/pki/pki-ca/ca/conf/CS.cfg
ファイルで、以下の行に含まれる証明書を見つけます。ca.connector.KRA.transportCert=certificate
その証明書を、cert-one-line-serial_number.txt
に含まれる証明書に置き換えます。- CA を起動します。
# systemctl start pki-tomcatd@pki-ca.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@pki-ca.service
注記CA とそのすべてのクローンが新しい KRA トランスポート証明書で更新されている間、移行を完了した CA インスタンスは新しい KRA トランスポート証明書を使用し、まだ更新されていない CA インスタンスは引き続き古い KRA トランスポート証明書を使用します。対応する KRA とそのクローンが両方のトランスポート証明書を使用するよう更新されているため、ダウンタイムは発生しません。- 新しいトランスポートキーおよび証明書のみを使用するように KRA 設定を更新
- KRA とその各クローンについて、以下を実行します。
- KRA NSS データベースディレクトリーに移動します。
# cd /etc/pki/pki-kra/alias
- KRA を停止します。
# systemctl stop pki-tomcatd@pki-kra.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@pki-kra.service
- 新しい KRA トランスポート証明書がインポートされていることを確認します。
# certutil -d . -L # certutil -d . -L -n 'transportCert-serial_number cert-pki-kra KRA'
/var/lib/pki/pki-kra/kra/conf/CS.cfg
ファイルを開き、以下の行に含まれるnickName
の値を見つけます。kra.transportUnit.nickName=transportCert cert-pki-kra KRA
nickName
の値を、以下の行に含まれるnewNickName
値に置き換えます。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
これにより、CS.cfg
ファイルに以下の行が含まれます。kra.transportUnit.nickName=transportCert-serial_number cert-pki-kra KRA
/var/lib/pki/pki-kra/kra/conf/CS.cfg
から以下の行を削除します。kra.transportUnit.newNickName=transportCert-serial_number cert-pki-kra KRA
- KRA を起動します。
# systemctl start pki-tomcatd@pki-kra.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@pki-kra.service
2.5. Certificate System を使用したスマートカードトークン管理
図2.4 TMS スマートカードの管理方法

2.5.1. トークンキーサービス (TKS)
2.5.1.1. マスターキーおよびキーセット
CS.cfg
) にエントリーセットがあります。各 TPS プロファイルには、TMS とスマートカードトークン間のセッション固有のキーのセットによってセキュリティーが保護された Secure Channel の確立を本質的に担当する、一致するキー導出プロセスの適切な TKS キーセットに登録を指示する設定が含まれています。
2.5.1.3. キー更新 (キーの切り替え)
2.5.1.4. APDU およびセキュアチャンネル
- コマンド APDU (TPS からスマートカードに送信)
- レスポンス APDU (スマートカードから TPS にレスポンスとして送信)
2.5.2. トークン処理システム (TPS)
2.5.2.1. Coolkey アプレット
2.5.2.2. トークン操作
- トークンフォーマット: フォーマット操作は、適切な Coolkey アプレットをトークンにインストールします。アプレットは、後続の暗号鍵と証明書を後で配置できるプラットフォームを提供します。
- トークンの登録: 登録操作により、必要な暗号鍵と暗号証明書でスマートカードが生成されます。この資料により、スマートカードのユーザーは、セキュアな Web サイトアクセスやセキュアなメールなどの操作に参加できます。登録には 2 つのタイプがサポートされています。これは、グローバルに設定されます。
- 内部登録: プロファイル マッピングリゾルバー で決定される TPS プロファイルで登録します。
- 外部登録: ユーザーの LDAP レコードのエントリーで、TPS プロファイルで登録を行います。
- トークンの PIN リセット: トークンの PIN リセット操作により、トークンのユーザーはトークンへのログインに使用される新しい PIN を指定でき、暗号化操作を実行できます。
- キー生成: 各 PKI 証明書は、公開鍵と秘密鍵のペアで設定されます。Red Hat Certificate System では、TPS プロファイル の設定に応じて、鍵の生成は 2 つの方法で実行できます。
- トークン側のキー生成: PKI キーペアがスマートカードトークンで生成されます。トークン側でキーペアを生成すると、キーのアーカイブが許可 されません。
- サーバー側のキー生成: PKI キーペアは TMS サーバー側で生成されます。その後、キーペアはセキュアチャネルを使用してトークンに送信されます。サーバー側で鍵のペアを生成すると、キーのアーカイブが可能になります。
- 証明書の更新: この操作により、以前登録したトークンが同じ鍵を再度使用している間にトークンに現在発行された証明書を使用できるようになります。これは、古い証明書の有効期限が切れて、新しい証明書を作成したいが、元のキーマテリアルを維持したい場合に役立ちます。
- 証明書失効リスト: TPS プロファイル設定またはトークンの状態をもとに、証明書失効リストをトリガーできます。通常、証明書を発行した CA のみがそれを取り消すことができます。つまり、CA を廃止すると、特定の証明書を取り消すことができなくなります。ただし、トークンの失効要求をリタイアした CA にルーティングしながら、登録などの他のすべての要求を新しいアクティブな CA にルーティングすることは可能です。このメカニズムは 取り消しルーティン と呼ばれます。
- トークンキーの切り替え: フォーマット操作によってトリガーされるキーの変更操作により、トークンの内部キーを、デフォルトの開発者キーセットから、トークン処理システムの開発者により制御される新しいキーセットに変更できます。開発者キーセットはテスト状況に適したものであるため、通常、実際のデプロイメントシナリオでこれを行います。
- アプレットの更新: TMS デプロイメントでは、必要に応じて Coolkey スマートカードアプレットを更新またはダウングレードできます。
2.5.2.3. TPS プロファイル
- トークンのフォーマットまたは登録を行う手順。
- 操作が正常に完了した後、終了したトークンに含まれる属性。
- TPS がユーザーの認証 LDAP データベースに接続する方法。
- このトークン操作にはユーザー認証が必要ですか。その場合に使用する認証マネージャー。
- TPS は、証明書を取得する Certificate System CA にどのように接続しますか。
- このトークンで生成された秘密鍵と公開鍵はどのように生成されているか。トークン側またはサーバー側で生成されているか。
- 秘密鍵と公開鍵を生成する際に使用する鍵のサイズ (ビット単位)。
- このトークンで証明書を生成するのに使用される証明書登録プロファイル (CA によるプロビジョニング)注記この設定により、トークンに書き込まれる証明書の最終構造が決定されます。証明書に含まれる拡張機能に基づいて、さまざまな用途に応じてさまざまな証明書を作成できます。たとえば、1 つの証明書はデータ暗号化に特化でき、別の証明書は署名操作に使用できます。
- トークンで必要となる Coolkey アプレットのバージョン
- 登録操作のためにこのトークンに配置される証明書の数
- Internal Registration: この場合、TPS プロファイル (
tokenType
) は、プロファイル Mapping Resolver で決定されます。このフィルターベースのリゾルバーは、トークンが提供するデータをすべて考慮し、ターゲットプロファイルを決定するように設定できます。 - 外部登録: 外部登録使用する場合、プロファイル (名前のみ。実際のプロファイルは、内部登録で使用されるものと同じ方法で TPS で定義されます) は、認証中に取得される各ユーザーの LDAP レコードで指定されます。これにより、TPS はユーザー情報が保存される外部登録 Directory Server からキーの登録およびリカバリー情報を取得できます。これにより、TPS 内部登録メカニズムに固有の登録、失効、および復旧ポリシーを上書きする制御が可能になります。外部登録に関連するユーザー LDAP レコード属性名は設定可能です。グループ証明書という概念が必要な場合には、外部登録が役立ちます。この場合、グループ内のすべてのユーザーには、共有証明書および鍵をダウンロードするために LDAP プロファイルに特別なレコードを設定できます。
2.5.2.4. トークンデータベース
2.5.2.4.1. トークンの状態および移行
2.5.2.4.1.1. トークンの状態
名前 | コード | ラベル |
---|---|---|
FORMATTED | 0 | フォーマット済み (初期化されていない) |
DAMAGED | 1 | 物理的に破損 |
PERM_LOST | 2 | 永続的に失われる |
SUSPENDED | 3 | 一時停止 (一時的に失われる) |
ACTIVE | 4 | アクティブ |
TERMINATED | 6 | 終了 |
UNFORMATTED | 7 | 未フォーマット |
5
付きの状態は含まれません。以前は削除された状態に属していました。
2.5.2.4.1.2. グラフィカルインターフェイスまたはコマンドラインインターフェイスを使用したトークン状態の移行完了
FORMATTED
から ACTIVE
または DAMAGED
に状態を変更できますが、FORMATTED
から UNFORMATTED
に移行することはできません。
tokendb.allowedTransitions
プロパティーに格納され、tps.operations.allowedTransitions
プロパティーコントロールは、ークン動作によってトリガ遷移を可能にしました。
/usr/share/pki/tps/conf/CS.cfg
設定ファイルに保存されます。
2.5.2.4.1.2.1. コマンドラインインターフェイスまたはグラフィカルインターフェイスを使用したトークン状態の移行
tokendb.allowedTransitions
プロパティーを使用して TPS 設定ファイルに記載されています。
tokendb.allowedTransitions=0:1,0:2,0:3,0:6,3:2,3:6,4:1,4:2,4:3,4:6,6:7
<current code>:<new code>
形式で記述されます。このコードは 表2.9「考えられるトークンの状態」 で説明されています。デフォルト設定は /usr/share/pki/tps/conf/CS.cfg
に保存されます。
遷移 | 現在の状態 | 次の状態 | 説明 |
---|---|---|---|
0:1 | FORMATTED | DAMAGED | このトークンは物理的に破損しています。 |
0:2 | FORMATTED | PERM_LOST | このトークンは永続的に失われています。 |
0:3 | FORMATTED | SUSPENDED | このトークンは一時停止されています (一時的で失われています)。 |
0:6 | FORMATTED | TERMINATED | このトークンは終了しました。 |
3:2 | SUSPENDED | PERM_LOST | この一時停止されたトークンは永続的に失われています。 |
3:6 | SUSPENDED | TERMINATED | この一時停止されたトークンは終了しています。 |
4:1 | ACTIVE | DAMAGED | このトークンは物理的に破損しています。 |
4:2 | ACTIVE | PERM_LOST | このトークンは永続的に失われています。 |
4:3 | ACTIVE | SUSPENDED | このトークンは一時停止されています (一時的で失われています)。 |
4:6 | ACTIVE | TERMINATED | このトークンは終了しました。 |
6:7 | TERMINATED | UNFORMATTED | このトークンを再利用します。 |
FORMATTED
で、SUSPENDED
となると、FORMATTED
状態にのみ戻ることができます。トークンが元々 ACTIVE
で、SUSPENDED
になると、ACTIVE
状態のみに戻ることができます。
遷移 | 現在の状態 | 次の状態 | 説明 |
---|---|---|---|
3:0 | SUSPENDED | FORMATTED | この一時停止 (一時的な損失) トークンがあります。 |
3:4 | SUSPENDED | ACTIVE | この一時停止 (一時的な損失) トークンがあります。 |
2.5.2.4.1.3. トークン操作を使用したトークン状態遷移
tokendb.allowedTransitions
プロパティーを使用して TPS 設定ファイルで説明されています。
tps.operations.allowedTransitions=0:0,0:4,4:4,4:0,7:0
<current code>:<new code>
形式で記述されます。このコードは 表2.9「考えられるトークンの状態」 で説明されています。デフォルト設定は /usr/share/pki/tps/conf/CS.cfg
に保存されます。
遷移 | 現在の状態 | 次の状態 | 説明 |
---|---|---|---|
0:0 | FORMATTED | FORMATTED | これにより、トークンの再フォーマットやトークンのアプレット/キーのアップグレードが可能になります。 |
0:4 | FORMATTED | ACTIVE | これにより、トークンを登録できます。 |
4:4 | ACTIVE | ACTIVE | これにより、アクティブなトークンを再登録できます。外部の登録に便利です。 |
4:0 | ACTIVE | FORMATTED | これにより、アクティブなトークンのフォーマットが可能になります。 |
7:0 | UNFORMATTED | FORMATTED | これにより、空白または以前に使用されたトークンのフォーマットが可能になります。 |
2.5.2.4.1.4. トークンの状態および遷移ラベル
/usr/share/pki/tps/conf/token-states.properties
設定ファイルに保存されます。デフォルトでは、ファイルの内容は以下のようになります。
# Token states UNFORMATTED = Unformatted FORMATTED = Formatted (uninitialized) ACTIVE = Active SUSPENDED = Suspended (temporarily lost) PERM_LOST = Permanently lost DAMAGED = Physically damaged TEMP_LOST_PERM_LOST = Temporarily lost then permanently lost TERMINATED = Terminated # Token state transitions FORMATTED.DAMAGED = This token has been physically damaged. FORMATTED.PERM_LOST = This token has been permanently lost. FORMATTED.SUSPENDED = This token has been suspended (temporarily lost). FORMATTED.TERMINATED = This token has been terminated. SUSPENDED.ACTIVE = This suspended (temporarily lost) token has been found. SUSPENDED.PERM_LOST = This suspended (temporarily lost) token has become permanently lost. SUSPENDED.TERMINATED = This suspended (temporarily lost) token has been terminated. SUSPENDED.FORMATTED = This suspended (temporarily lost) token has been found. ACTIVE.DAMAGED = This token has been physically damaged. ACTIVE.PERM_LOST = This token has been permanently lost. ACTIVE.SUSPENDED = This token has been suspended (temporarily lost). ACTIVE.TERMINATED = This token has been terminated. TERMINATED.UNFORMATTED = Reuse this token.
2.5.2.4.1.5. 許可されるトークンの状態遷移のカスタマイズ
/var/lib/pki/instance_name/tps/conf/CS.cfg
で以下のプロパティーを編集します。
- コマンドラインまたはグラフィカルインターフェイスを使用して実行できる移行の一覧をカスタマイズするには、
tokendb.allowedTransitions
- トークン操作を使用して許可される移行のリストをカスタマイズするには、
tps.operations.allowedTransitions
/usr/share/pki/tps/conf/CS.cfg
に保存されます。
2.5.2.4.1.6. トークンの状態と遷移ラベルのカスタマイズ
/usr/share/pki/tps/conf/token-states.properties
をインスタンスフォルダー (/var/lib/pki/instance_name/tps/conf/CS.cfg
) にコピーし、必要に応じてラベルを変更します。
token-states.properties
ファイルをインスタンスフォルダーから削除します。
2.5.2.4.1.7. トークンアクティビティーログ
アクティビティー | 説明 |
---|---|
add | トークンが追加されました。 |
format | トークンがフォーマットされました。 |
enrollment | トークンが登録されました。 |
recovery | トークンが復元されました。 |
更新 | トークンが更新されています。 |
pin_reset | トークンの PIN がリセットされました。 |
token_status_change | トークンステータスは、コマンドラインまたはグラフィカルインターフェイスを使用して変更されました。 |
token_modify | トークンが変更されました。 |
delete | トークンが削除されました。 |
cert_revocation | トークン証明書が取り消されました。 |
cert_unrevocation | トークン証明書は失効しませんでした。 |
2.5.2.4.2. トークンポリシー
RE_ENROLL=YES;RENEW=NO;FORCE_FORMAT=NO;PIN_RESET=NO;RESET_PIN_RESET_TO_NO=NO;RENEW_KEEP_OLD_ENC_CERTS=YES
2.5.2.5. マッピングリゾルバー
FilterMappingResolver
は、デフォルトで TPS で提供される唯一のマッピングリゾルバー実装です。これにより、各マッピングに マッピング のセットおよびターゲットの結果を定義できます。各マッピングにはフィルターのセットが含まれ、ここでは以下のようになります。
- 入力フィルターパラメーターがマッピング内の すべて のフィルターを渡すと、
target
の値が割り当てられます。 - 入力パラメーターでフィルターが失敗すると、そのマッピングはスキップされ、次の順番に試行されます。
- フィルターに指定された値がない場合は、常に合格します。
- フィルターに指定された値がある場合、入力パラメーターは完全に一致する必要があります。
- マッピングが定義される順序は重要です。合格した最初のマッピングは解決されたと見なされ、呼び出し元に返されます。
FilterMappingResolver
に対して実行されます。FilterMappingResolver
では、以下の入力フィルターパラメーターがサポートされます。
appletMajorVersion
- トークン上の Coolkey アプレットのメジャーバージョン。appletMinorVersion
- トークン上の Coolkey アプレットのマイナーバージョン。keySet
またはtokenType
keySet
- クライアントリクエストでエクステンションとして設定できます。拡張子が指定されている場合は、フィルターの値と一致する必要があります。keySet マッピングリゾルバーは、外部登録を使用する際に keySet 値を決定することを目的としています。複数の鍵セットがサポートされる場合は、外部登録環境で Key Set Mapping Resolver が必要になります (たとえば、スマートカードトークンベンダーごとに必要です)。keySet 値は、Secure Channel を確立する上で重要な TKS のマスターキーを特定するために必要です。ユーザーの LDAP レコードにセット tokenType (TPS プロファイル) が入力されている場合は、どのカードが最終的に登録を行うかがわからないため、keySet を事前に決定することはできません。keySetMappingResolver
は、認証前に keySet が解決できるようにすることで、問題の解決に役立ちます。tokenType
- okenType は、クライアントリクエストの拡張機能として設定できます。拡張子が指定されている場合は、フィルターの値と一致する必要があります。tokenType (TPS プロファイルとも呼ばれます) は、この時点で内部登録環境に対して決定されます。
tokenATR
- トークンの Answer to Reset (ATR) です。tokenCUID
- start および end は、このフィルターに渡すためにトークンの Card Unique ID (CUID) の範囲を定義します。
2.5.2.6. TPS ロール
- TPS 管理者: このロールは以下を許可します。
- TPS トークンの管理
- TPS 証明書およびアクティビティーの表示
- TPS ユーザーおよびグループの管理
- 一般的な TPS 設定の変更
- TPS オーセンティケーターおよびコネクターの管理
- TPS プロファイルおよびプロファイルマッピングの設定
- TPS 監査ロギングの設定
- TPS エージェント: このロールは以下を許可します。
- TPS トークンの設定
- TPS 証明書およびアクティビティーの表示
- TPS プロファイルのステータスの変更
- TPS オペレーター: このロールは以下を許可します。
- TPS トークン、証明書、およびアクティビティーの表示
2.5.4. Enterprise Security Client (ESC)
2.6. Red Hat Certificate System サービス
2.6.1. 通知
2.6.2. ジョブ
2.6.3. ログ
2.6.4. 監査
2.6.5. セルフテスト
2.6.6. ユーザー、認可、およびアクセス制御
2.6.6.1. デフォルトの管理ロール
- 管理者 は、サブシステムに対して管理または設定タスクを実行できます。
- 証明書要求の承認、トークン登録の管理、または鍵の復元など、PKI 管理タスクを実行する エージェント。
- 監査ログを表示および設定できる auditors。
pkispawn
ユーティリティーの実行時、Red Hat Certificate System インスタンスの作成中に管理者特権とエージェント特権の両方を処理する管理ユーザーが作成されます。このブートストラップ管理者は、デフォルトで caadmin
ユーザー名を使用しますが、pkispawn コマンドに渡す設定ファイルの pki_admin_uid
パラメーターで上書きできます。ブートストラップ管理者が、最初の管理者およびエージェントユーザーを作成します。この操作には、ユーザーおよびグループの管理者権限と、証明書を発行するエージェントの権限が必要です。
2.6.6.2. 組み込みサブシステムの信頼ロール
2.7. クローン
2.7.1. クローン作成について
図2.5 クローン作成の例

- DNS ラウンドロビン。複数のサーバーに負荷を分散するネットワーク輻輳を管理する機能です。
- スティッキー SSL/TLS。これにより、ユーザーがシステムに戻して、以前使用された同じホストをルーティングできるようになります。
[Tomcat]
セクションを追加し、そのセクションに次の 2 つの name=value
ペアを追加することにより、pkispawn 実行ファイルが変更され、これを許可するようになりました。
[Tomcat] pki_clone_setup_replication=False pki_clone_reindex_data=False
2.7.2. クローンの準備
p12
ファイルにエクスポートする必要があります。このコマンドは、クローンサブシステムをインストールまたは設定するのではなく、インストールの準備をします。pki-server SUBSYSTEM-clone-prepare コマンドを使用してサブシステム証明書をエクスポートする方法の例を次に示します。
例2.5 サブシステム証明書のエクスポート
[root@pki1 ~]$
pki-server ca-clone-prepare --i topology-02-CA --pkcs12-file /tmp/caclone.p12 --pkcs12-password SECret.123
-----------------------------------------------------
Added certificate "subsystemCert cert-topology-02-CA"
-----------------------------------------------------
--------------------------------------------------------
Added certificate "caSigningCert cert-topology-02-CA CA"
--------------------------------------------------------
----------------------------------------------------------
Added certificate "ocspSigningCert cert-topology-02-CA CA"
----------------------------------------------------------
-----------------------------------------------------------
Added certificate "auditSigningCert cert-topology-02-CA CA"
-----------------------------------------------------------
p12
ファイルに証明書が含まれていることを確認できます。次の例では、pki pkcs12-cert-find の出力で 4 つの証明書が返されます。
[root@pki1 ~]$
pki pkcs12-cert-find --pkcs12-file /tmp/caclone.p12 --pkcs12-password SECret.123
---------------
4 entries found
---------------
Certificate ID: 4649cef11b90c78d126874b91654de98ded54073
Serial Number: 0x4
Nickname: subsystemCert cert-topology-02-CA
Subject DN: CN=Subsystem Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Issuer DN: CN=CA Signing Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Trust Flags: u,u,u
Has Key: true
Certificate ID: a304cf107abd79fbda06d887cd279fb02cefe438
Serial Number: 0x1
Nickname: caSigningCert cert-topology-02-CA CA
Subject DN: CN=CA Signing Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Issuer DN: CN=CA Signing Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Trust Flags: CTu,Cu,Cu
Has Key: true
Certificate ID: 4a09e057c1edfee40f412551db1959831abe117d
Serial Number: 0x2
Nickname: ocspSigningCert cert-topology-02-CA CA
Subject DN: CN=CA OCSP Signing Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Issuer DN: CN=CA Signing Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Trust Flags: u,u,u
Has Key: true
Certificate ID: 3f42f88026267f90f59631d38805cc60ee4c711a
Serial Number: 0x5
Nickname: auditSigningCert cert-topology-02-CA CA
Subject DN: CN=CA Audit Signing Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Issuer DN: CN=CA Signing Certificate,OU=topology-02-CA,O=topology-02_Foobarmaster.org
Trust Flags: u,u,Pu
Has Key: true
p12
ファイルを使用して、クローンサブシステムを設定できるようになりました。
2.7.3. CA のクローン作成
begin*Number
属性および end*Number
属性で定義され、個別の範囲が要求および証明書のシリアル番号に対して定義されます。以下に例を示します。
dbs.beginRequestNumber=1 dbs.beginSerialNumber=1 dbs.enableSerialManagement=true dbs.endRequestNumber=9980000 dbs.endSerialNumber=ffe0000 dbs.replicaCloneTransferNumber=5
CS.cfg
ファイルに影響する変更が、クローンの設定にコピーされません。
2.7.4. KRA のクローン作成
2.7.5. 他のサブシステムのクローン作成
2.7.6. クローンおよびキーストア
pkispawn
設定ファイルに pki_backup_keys
パラメーターおよび pki_backup_password
パラメーターを指定して、システムキーと証明書を PKCS #12 ファイルにバックアップできます。詳細は pki_default.cfg(5) の man ページ の BACKUP PARAMETERS
セクションを参照してください。
PKCS12Export
ユーティリティーを使用して PKCS #12 ファイルに鍵を抽出できます。
pki_clone_pkcs12_password
パラメーターおよび pki_clone_pkcs12_path
パラメーターを使用して pkispawn
設定ファイルにその場所とパスワードを定義します。詳細は、pkispawn(8) man ページの Installing a Clone
セクションを参照してください。特に、PKCS#12 ファイルが pkiuser
ユーザーからアクセスできることを確認し、正しい SELinux ラベルがあることを確認します。
- SSL/TLS サーバーキーと証明書をクローンインスタンスに対して除いた、必要なすべての鍵と証明書を複製します。これらの証明書のニックネームは同じままにします。さらに、必要なすべてのルート証明書をマスターインスタンスからクローンインスタンス (チェーンやクロスペアの証明書など) にコピーします。
- トークンがネットワークベースである場合、鍵と証明書は単にトークンで利用できる必要があり、鍵と証明書はコピーする必要はありません。
- ネットワークベースのハードウェアトークンを使用する場合は、単一障害点を回避するために、ハードウェアトークンで高可用性機能が有効になっていることを確認してください。
2.7.7. LDAP とポートに関する考慮事項
- マスターが SSL/TLS を使用してデータベースに接続する場合、クローンは SSL/TLS を使用し、マスター/クローンの Directory Server データベースはレプリケーションに SSL/TLS 接続を使用します。
- マスターがデータベースへの標準接続を使用する場合、クローンは標準接続を使用する必要があり、Directory Server データベースは、暗号化されていない接続を複製に使用 できます。
- マスターがデータベースへの標準接続を使用する場合、クローンは標準接続を使用する必要があります が、複製用のマスター/クローンの Directory Server データベースに Start TLS を使用するオプションがあります。TLS は、標準ポートでセキュアな接続を開きます。注記TLS を使用するには、SSL/TLS 接続を受け入れるように Directory Server を設定する必要があります。つまり、クローンを設定する前に、サーバー証明書と CA 証明書を Directory Server にインストールし、SSL/TLS を有効にする必要があります。
2.7.8. レプリカ ID 番号
dbs.beginReplicaNumber=1 dbs.endReplicaNumber=95
2.7.9. カスタム設定およびクローン
CS.cfg
ファイルにあります。
CS.cfg
ファイルに保存されますが、このコネクター情報はクローン CA 設定に追加されません。キーアーカイブを含む証明書要求がマスター CA に送信される場合は、CA-KRA コネクター情報を使用してキーのアーカイブが KRA に転送されます。要求がクローン CA に送信される場合、KRA は認識されず、キーのアーカイブ要求は許可されません。
第3章 サポートされる標準およびプロトコル
3.1. TLS、ECC、および RSA
3.1.1. サポート対象の暗号スイート
3.1.1.1. 推奨される TLS 暗号スイート
ECC
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
RSA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
3.2. 許可されるキーアルゴリズムとそのサイズ
- 許可される RSA 鍵サイズ:
- 2048 ビット以上
- FIPS PUB 186-4 標準仕様に定義されている EC 曲線または同等です。
- nistp256
- nistp384
- nistp521
3.3. 許可されるハッシュ関数
- SHA-256
- SHA-384
- SHA-512
- SHA-256
- SHA-384
- SHA-512
3.4. IPv4 アドレスおよび IPv6 アドレス
- TPS、TKS、CA 間を含むサブシステム間の通信、およびセキュリティードメインへの参加
- TPS と Enterprise Security Client 間のトークン操作
- サブシステムロギング
- アクセス制御の手順
pki
ユーティリティー、Subject Alt Name Extension ツール、HttpClient、Bulk Issuance Tool を含む Certificate System ツールで実行される操作- クライアント通信 (
pkiconsole
ユーティリティーおよび Web サービス用の IPv6 対応ブラウザーの両方を含む) - 証明書要求名と証明書サブジェクト名 (ユーザー、サーバー、ルーターの証明書など)
- 公開
- 内部データベースおよび認証ディレクトリーでの LDAP データベースへの接続
- IPv4 アドレスは、
n.n.n.n
またはn.n.n.n,m.m.m.m
の形式にする必要があります。たとえば、128.21.39.40
または128.21.39.40,255.255.255.00
です。 - IPv6 アドレスは 128 ビット名前空間を使用します。IPv6 アドレスはコロンで区切られ、ネットマスクはピリオドで区切られます。たとえば、0:0:0:0:0:0:13.1.68.3、FF01::43、または 0:0:0:0:0:0:13.1.68.3,FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.0 です。
https://ipv6host.example.com:8443/ca/services pkiconsole https://ipv6host.example.com:8443/ca
[]
) で囲まれた IPv6 アドレスに置き換えます。以下に例を示します。
https://[00:00:00:00:123:456:789:00:]:8443/ca/services pkiconsole https://[00:00:00:00:123:456:789:00:]:8443/ca
3.5. サポートされる PKIX 形式およびプロトコル
形式またはプロトコル | RFC またはドラフト | 説明 |
---|---|---|
X.509 バージョン 1 およびバージョン 3 | 国際電気通信連合 (ITU) が推奨するデジタル証明書形式。 | |
Certificate Request Message Format (CRMF) | RFC 4211 | CA に証明書要求を送信するためのメッセージ形式。 |
証明書管理メッセージ形式 (CMMF) | メッセージ形式。エンドエンティティーから CA に証明書要求および失効リクエストを送信し、エンドエンティティーに情報を返します。CMMF は、別の標準である CMC に含まれています。 | |
CS を介した証明書管理メッセージ (CMC) | RFC 5274 | CS および PKCS #10 に基づく公開鍵認定製品への一般的なインターフェイス。これには、Diffie-Hellman 公開鍵で RSA 署名の証明書用の証明書登録プロトコルが含まれます。CMC には CRMF と CMMF が組み込まれています。 |
暗号化メッセージ構文 (CMS) | RFC 2630 | デジタル署名と暗号化に使用される PKCS #7 構文のスーパーセット。 |
PKIX 証明書および CRL プロファイル | RFC 5280 | インターネット用の公開鍵インフラストラクチャー向けに IETF により開発された標準規格です。証明書および CRL のプロファイルを指定します。 |
オンライン証明書ステータスプロトコル (OCSP) | RFC 6960 | CRL を使用せずにデジタル署名の現在のステータスを決定するプロトコルは便利です。 |
第4章 サポート対象のプラットフォーム
4.1. 一般的な要件
4.2. サーバーサポート
4.3. サポート対象の Web ブラウザー
プラットフォーム | エージェントサービス | エンドユーザーページ |
---|---|---|
Red Hat Enterprise Linux | Firefox 60 以降 [a] | Firefox 60 以降 [a] |
Windows 7 | Firefox 60 以降 [a] |
Firefox 60 以降
Internet Explorer 10 [b]
|
[a]
この Firefox バージョンは、ブラウザーからキーの生成およびアーカイブに使用される 暗号化 Web オブジェクトに対応しなくなりました。そのため、この分野では機能が限定されるはずです。
[b]
現在、Internet Explorer 11 では、Red Hat Certificate System 9.4 ではサポートされていません。この Web ブラウザーの登録コードは、Internet Explorer 11 で非推奨となった Visual Basic スクリプトにより異なります。
|
4.4. サポート対象のハードウェアセキュリティーモジュール
HSM | ファームウェア | アプライアンスソフトウェア | クライアントソフトウェア |
---|---|---|---|
nCipher nShield Connect 6000 | 2.61.2 | CipherTools-linux64-dev-12.30.00 | CipherTools-linux64-dev-12.30.00 |
Gemalto SafeNet Luna SA 1700 / 7000 (制限)
(サポートは限定的です )
| 6.24.0 | 6.2.0-15 | libcryptoki-6.2.x86_64 |
第5章 Certificate System の計画
5.1. 必要なサブシステムの決定
- 要求および発行されます。
- これは有効です。
- 期限切れになります。
- 証明書の有効期限が切れる前に従業員が退職するかどうか
- CA 署名証明書の有効期限が切れると、その証明書を使用して発行および署名されたすべての証明書も有効期限が切れます。これにより、CA 署名証明書が更新され、発行された証明書が有効に保つか、または再発行されますか ?
- 従業員がスマートカードを失ったか、またはスマートカードに残るかどうか。元の証明書キーを使用して代替証明書が発行されますか。他の証明書は一時停止または取り消されるか。一時的な証明書は許可されますか。
- 証明書の有効期限が切れると、新しい証明書を発行するか、元の証明書が更新されますか ?
5.1.1. 単一証明書マネージャーの使用
図5.1 CA のみの Certificate System


5.1.2. 紛失したキーの計画: キーのアーカイブと回復
図5.2 CA および KRA

5.1.3. 証明書要求の処理の分散
5.1.4. クライアント OCSP 要求の分散
図5.3 CA および OCSP

5.1.5. スマートカードの使用

5.2. 認証局階層の定義
5.2.1. パブリック CA への従属
5.2.2. Certificate System CA への従属
5.2.3. リンクされた CA
5.2.4. CA クローン
5.3. セキュリティードメインの計画
ou=Security Domain,dc=server.example.com-pki-ca
cn=KRAList,ou=Security Domain,o=pki-tomcat-CA objectClass: top objectClass: pkiSecurityGroup cn: KRAList
dn: cn=kra.example.com:8443,cn=KRAList,ou=Security Domain,o=pki-tomcat-CA objectClass: top objectClass: pkiSubsystem cn: kra.example.com:8443 host: server.example.com UnSecurePort: 8080 SecurePort: 8443 SecureAdminPort: 8443 SecureAgentPort: 8443 SecureEEClientAuthPort: 8443 DomainManager: false Clone: false SubsystemName: KRA kra.example.com 8443
- セキュリティードメインをホストする CA は外部認証局によって署名できます。
- 複数のセキュリティードメインを組織内に設定することができます。ただし、各サブシステムは 1 つのセキュリティードメインにのみ属できます。
- ドメイン内のサブシステムをクローンできます。サブシステムインスタンスは、システム負荷を分散し、フェイルオーバーポイントを提供します。
- セキュリティードメインは、CA と KRA との間の設定を合理化します。KRA は、管理者が証明書を手動で CA にコピーする必要がなく、KRA コネクター情報をプッシュして証明書を CA に自動的に転送できます。
- Certificate System セキュリティードメインを使用すると、オフラインの CA を設定できます。このシナリオでは、オフラインルートには独自のセキュリティードメインがあります。オンラインの下位 CA はすべて、異なるセキュリティードメインに属します。
- セキュリティードメインは、CA と OCSP の間の設定を簡素化します。OCSP は、CA が OCSP 公開を設定するために、その情報を CA にプッシュし、CA から CA 証明書チェーンを取得して、内部データベースに格納することもできます。
5.4. サブシステム証明書の要件の決定
5.4.1. インストールする証明書の決定
サブシステム | 証明書 |
---|---|
Certificate Manager |
|
OCSP |
|
KRA |
|
TKS |
|
TPS |
|
- ルート CA の新しい自己署名 CA 証明書を作成するときに新しいキーペアを生成すると、以前の CA 証明書で発行されたすべての証明書が無効になります。これは、古いキーを使用して CA によって発行または署名された証明書が機能しないことを意味します。下位 Certificate Manager、KRA、OCSP、TKS、および TPS は機能しなくなり、エージェントはエージェントインターフェイスにアクセスできなくなります。これと同じ状況は、下位 CA の CA 証明書が新しいキーペアを持つものに置き換えられた場合に発生します。その CA によって発行されたすべての証明書は無効になり、機能しなくなります。新しいキーペアから新しい証明書を作成する代わりに、既存の CA 署名証明書を更新することを検討してください。
- CA が OCSP に公開するように設定されていて、新しい CA 署名証明書または新しい CRL 署名証明書がある場合は、CA を OCSP に対して再識別する必要があります。
- KRA 用に新しいトランスポート証明書が作成された場合は、CA の設定ファイル
CS.cfg
で KRA 情報を更新する必要があります。既存のトランスポート証明書は、ca.connector.KRA.transportCert パラメーターの新しい証明書に置き換える必要があります。 - CA のクローンが作成されている場合は、マスター Certificate Manager の新しい SSL/TLS サーバー証明書を作成するときに、クローン CA の証明書データベースが新しい SSL/TLS サーバーの全証明書で更新する必要があります。
- Certificate Manager が証明書と CRL を LDAP ディレクトリーに公開するように設定されており、SSL/TLS クライアント認証に SSL/TLS サーバー証明書を使用する場合は、適切な拡張子を付けて新しい SSL/TLS サーバー証明書を要求する必要があります。証明書をインストールしたら、公開ディレクトリーが新しいサーバー証明書を使用するように設定する必要があります。
- サブシステムインスタンスに対して任意の数の SSL/TLS サーバー証明書を発行できますが、実際には 1 つの SSL/TLS 証明書のみが必要です。この証明書は、必要に応じて何度でも更新または交換できます。
5.4.2. CA 識別名の計画
cn=demoCA, o=Example Corporation, ou=Engineering, c=US
5.4.3. CA 署名証明書の有効期間の設定
5.4.4. 署名キーの種類と長さの選択
- SHA256withRSA
- SHA512withRSA
- SHA256withEC
- SHA512withEC
5.4.5. 証明書の拡張の使用
- 信用。X.500 仕様は、厳密なディレクトリー階層を使用して信頼を確立します。対照的に、インターネットおよびエクストラネットのデプロイメントには、階層的な X.500 アプローチに準拠していない分散信頼モデルが含まれることがよくあります。
- 証明書の使用。一部の組織では、証明書の使用方法を制限しています。たとえば、一部の証明書はクライアント認証のみに制限される場合があります。
- 複数の証明書証明書ユーザーが、同じサブジェクト名でキーマテリアルが異なる複数の証明書を所有していることは珍しくありません。この場合、どのキーと証明書をどの目的に使用するかを特定する必要があります。
- 代替名。目的によっては、証明書の公開鍵にもバインドされている代替サブジェクト名があると便利です。
- 追加属性。一部の組織では、ディレクトリーで情報を検索できない場合など、追加情報を証明書に保存します。
- CA に関連。証明書チェーンに中間 CA が含まれる場合は、CA 間の関係に関する情報を証明書に埋め込むと便利です。
- CRL チェック。証明書の失効ステータスをディレクトリーに対して、または元の認証局で常に確認できるとは限らないため、証明書に CRL を確認する場所に関する情報を含めると便利です。
5.4.5.1. 証明書の拡張機能の構造
Extension ::= SEQUENCE { extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING }
- 拡張のオブジェクト識別子 (OID)。この識別子は、拡張子を一意に識別します。また、値フィールドの ASN.1 タイプの値や、値が解釈される方法も決定します。拡張機能が証明書に表示されると、OID は拡張機能 ID フィールド (extnID) として示されます。また、対応する ASN.1 エンコード構造は、オクテット文字列の値 (extnValue) として示されます。
- critical というフラグまたはブール値フィールドこのフィールドに割り当てられた値 (true または false のいずれか) は、拡張子が証明書にとって重要かどうかを示します。
- 拡張機能が重要であり、拡張機能の ID に基づいて拡張機能を理解しないアプリケーションに証明書が送信された場合は、アプリケーションが証明書を拒否する必要があります。
- 拡張機能が重要ではなく、拡張機能の ID に基づいて拡張機能を理解しないアプリケーションに証明書が送信された場合、アプリケーションは拡張機能を無視して証明書を受け入れることができます。
- 拡張の値の DER エンコーディングを含む octet 文字列。
- 証明書の署名に使用されるキーである CA の公開キーを識別する Authority Key Identifier 拡張。
- サブジェクトの公開キーを識別するサブジェクトキー識別子拡張。キーは認証されています。
5.4.6. 証明書プロファイルの使用およびカスタマイズ
証明書プロファイル
証明書プロファイルパラメーターの変更
証明書プロファイルの管理
証明書プロファイルのカスタマイズガイドライン
- PKI で必要となる証明書プロファイルを決定します。発行される証明書のタイプごとに、少なくとも 1 つのプロファイルが必要です。証明書の種類ごとに複数の証明書プロファイルを用意して、特定の種類の証明書に対して異なる認証方法や異なるデフォルトや制約を設定することができます。管理インターフェイスで使用可能な証明書プロファイルはすべて、エージェントによって承認され、エンドエンティティーによって登録に使用されます。
- 使用されていない証明書プロファイルを削除します。
- 会社の証明書の特定の特性について、既存の証明書プロファイルを変更します。
- 証明書プロファイルに設定されているデフォルト、デフォルトに設定されているパラメーターの値、または証明書の内容を制御する制約を変更します。
- パラメーターの値を変更して、設定された制約を変更します。
- 認証方法を変更します。
- 入力ページのフィールドを制御する証明書プロファイルの入力を追加または削除して、入力を変更します。
- 出力を追加または削除します。
5.4.6.1. SSL サーバー証明書への SAN 拡張機能の追加
/usr/share/pki/ca/profiles/ca/caInternalAuthServerCert.cfg
ファイルの指示に従い、pkispawn
ユーティリティーに提供されている設定ファイルに次のパラメーターを追加します。
pki_san_inject
- このパラメーターの値を
True
に設定します。 pki_san_for_server_cert
- 必要な SAN 拡張機能のリストをコンマで区切って指定します。
pki_san_inject=True pki_san_for_server_cert=intca01.example.com,intca02.example.com,intca.example.com
5.4.7. 認証方法の計画
- エージェントの承認 登録では、承認のためにエンドエンティティーがエージェントに送信されます。エージェントは証明書要求を承認します。
- 自動 登録では、エンドエンティティー要求はプラグインを使用して認証され、証明書要求が処理されます。エージェントは登録プロセスに関与していません。
- CMC 登録 では、サードパーティーのアプリケーションが、エージェントによって署名されてから自動的に処理される要求を作成できます。
- エンドエンティティーは登録のリクエストを送信します。リクエストの送信に使用されるフォームは、認証および登録のメソッドを識別します。すべての HTML フォームはプロファイルにより動的に生成され、適切な認証方法をフォームと自動的に関連付けます。
- 認証方法がエージェント承認の登録である場合、要求は CA エージェントの要求キューに送信されます。キューの要求に対する自動通知が設定されている場合は、新しい要求が受信された適切なエージェントにメールが送信されます。エージェントは、そのフォームに対して許可される要求とそのプロファイル制約を修正できます。承認されると、要求は Certificate Manager に設定された証明書プロファイルに合格する必要があり、合格すると証明書が発行されます。証明書が発行されると、内部データベースに保存され、シリアル番号または要求 ID によってエンドエンティティーページのエンドエンティティーによって取得できます。
- 認証方法が自動化されている場合、エンドエンティティーは、LDAP ユーザー名やパスワードなど、ユーザーを認証するために必要な情報とともに要求を送信します。ユーザーが正常に認証されると、リクエストはエージェントのキューに送信されずに処理されます。要求が Certificate Manager の証明書プロファイル設定に合格すると、証明書が発行され、内部データベースに保管されます。HTML フォームを介して即座に終了エンティティーに配信されます。
5.4.8. 証明書および CRL の公開
- 証明書がディレクトリーに公開されている場合、証明書が発行されるすべてのユーザーまたはサーバーに、LDAP ディレクトリーに対応するエントリーがある必要があります。
- CRL がディレクトリーに公開されている場合は、CRL を発行した CA のエントリーに公開する必要があります。
- SSL/TLS の場合、ディレクトリーサービスは SSL/TLS で設定する必要があり、任意で、Certificate Manager が証明書ベースの認証を使用できるように設定する必要があります。
- ディレクトリー管理者は、LDAP ディレクトリーへの DN (エントリー名) とパスワードベースの認証を制御するための適切なアクセス制御ルールを設定する必要があります。
5.4.9. CA 署名証明書の更新または再発行
- CA 証明書を 更新 するには、古い CA 証明書と同じサブジェクト名と公開鍵および秘密鍵の内容を使用し、有効期間を延長した新しい CA 証明書を発行する必要があります。古い CA 証明書の有効期限が切れる前に、新しい CA 証明書がすべてのユーザーに配布される限り、証明書を更新すると、古い CA 証明書で発行された証明書は、有効期間の全期間にわたって機能し続けることができます。
- CA 証明書を 再発行すること には、新しい名前、公開鍵と秘密鍵の内容、および有効期限を持つ新しい CA 証明書を発行することが含まれます。これにより、CA 証明書の更新に関連するいくつかの問題が回避されますが、管理者とユーザーの両方が実装するためにより多くの作業が必要になります。有効期限が切れていないものも含め、古い CA によって発行されたすべての証明書は、新しい CA によって更新する必要があります。
5.5. ネットワークおよび物理セキュリティーの計画
5.5.1. ファイアウォールの考慮事項
- 機密サブシステムを不正アクセスから保護
- ファイアウォール外部のその他のサブシステムおよびクライアントへの適切なアクセスを許可する
5.5.2. 物理セキュリティーと場所を考慮事項
5.5.3. ポートの計画
- 認証を必要としないエンドエンティティーサービスのセキュアではない HTTP ポート
- 認証を必要とするエンドエンティティーサービス、エージェントサービス、管理コンソール、および管理サービス用の安全な HTTP ポート
- Tomcat Server Management ポート
- Tomcat AJP コネクターポート
https://server.example.com:8443/ca/ee/ca
pkiconsole https://server.example.com:8443/ca
server.xml
ファイルで定義します。ポートを使用しない場合は、そのファイルで無効にできます。以下に例を示します。
<Service name="Catalina">
<!--Connector port="8080"
... /--> unused standard port
<Connector port="8443" ... />
services
という名前のファイルで維持されます。Red Hat Enterprise Linux では、現在 SELinux コンテキストを持っているすべてのポートを一覧表示する semanage port -l コマンドを実行して、ポートが SELinux によって割り当てられていないことを確認することも役立ちます。
5.6. Certificate System サブシステムのキーおよび証明書を保存するトークン
cert8.db
) および キーデータベース (key3.db
) と呼ばれるファイルのペアで、Certificate System がキーペアと証明書を生成および保存するために使用します。Certificate System は、最初に内部トークンを使用するときに、ホストマシンのファイルシステムにこれらのファイルを自動的に生成します。これらのファイルは、キーペアの生成に内部トークンが選択されている場合、Certificate System サブシステムの設定時に作成されます。
/var/lib/pki/instance_name/alias
ディレクトリーにあります。
- サブシステムのすべてのシステムキーは、同じトークンで生成する必要があります。
- サブシステムは空の HSM スロットにインストールする必要があります。HSM スロットが以前に他のキーを格納するために使用されていた場合は、HSM ベンダーのユーティリティーを使用してスロットの内容を削除します。Certificate System は、デフォルトのニックネームを持つスロットで証明書および鍵を作成できます。適切にクリーンアップされない場合、これらのオブジェクトの名前は以前のインスタンスと共存する可能性があります。
- 高速 SSL/TLS 接続。多数の同時登録またはサービス要求に対応するには、速度が重要です。
- 秘密鍵のハードウェア保護これらのデバイスは、ハードウェアトークンから秘密鍵をコピーまたは削除できないようにすることで、スマートカードのように動作します。これは、オンラインの Certificate Manager のアクティブな攻撃から鍵の盗難に対する予防措置として重要です。
secmod.db
データベースに自動的に追加されます。
5.7. PKI の計画に関するチェックリスト
- 問: いくつのセキュリティードメインが作成され、どのサブシステムインスタンスが各ドメインに配置されますか。
- 問: 各サブシステムに割り当てるポート。単一の SSL/TLS ポートが必要ですか。それともセキュリティーを強化するためにポートを分離する方がよいでしょうか。
- 問: ファイアウォールの内側に配置するサブシステムは何ですか。これらのファイアウォールで保護されたサブシステムにアクセスするために必要なクライアントまたは他のサブシステムと、アクセスが許可される方法LDAP データベースにファイアウォールへのアクセスが許可されているか。
- 問: 物理的にセキュア化する必要があるサブシステムアクセスが付与される方法と、アクセスを誰に付与するか。
- 問: 全エージェントと管理者の物理的な場所サブシステムの物理的な場所。管理者またはエージェントは、サブシステムサービスに適時どのようにアクセスしますか。各地理的な場所またはタイムゾーンにサブシステムが必要ですか。
- 問: インストールが必要なサブシステムの数
- 問: サブシステムのクローンを作成する必要がありますか。その場合、キーのマテリアルを安全に保管する方法は何ですか。
- 問: サブシステムの証明書とキーは、Certificate System の内部ソフトウェアトークンまたは外部ハードウェアトークンに保存されますか。
- 問: CA 署名証明書の要件Certificate System で、有効期間などの属性を制御する必要があるか。CA 証明書が配布される方法
- 問: 発行する証明書の種類どのような特性が必要であり、それらの特性に使用できるプロファイル設定は何ですか。証明書に必要な制限
- 問: 証明書要求を承認するための要件。要求側が自身を認証する方法と、要求を承認するのに必要なプロセスの種類。
- 問: 多くの外部クライアントが証明書のステータスを検証する必要があるか。Certificate Manager の内部 OCSP が負荷を処理しているか。
- 問: PKI が代替キーを許可するか ?キーアーカイブとリカバリーが必要になりますか。
- 問: 組織はスマートカードを使用しますか ?その場合は、スマートカードが置き忘れられ、キーのアーカイブとリカバリーが必要になった場合、一時的なスマートカードは許可されますか。
- 問: 証明書および CRL を公開する場所パブリッシュが機能するには、受信側でどのような設定が必要ですか。どのような種類の証明書または CRL を公開する必要があり、どのくらいの頻度で公開する必要がありますか。
5.8. 任意のサードパーティーサービス
5.8.1. ロードバランサー
5.8.2. バックアップハードウェアおよびソフトウェア
パート II. Red Hat Certificate System のインストール
第6章 インストールの前提条件および準備
6.1. Red Hat Enterprise Linux のインストール
# sysctl crypto.fips_enabled
6.2. SELinux を使用したシステムのセキュリティー保護
6.2.1. SELinux が Enforcing モードで実行していることの確認
# getenforce
6.3. ファイアウォールの設定
サービス
|
ポート
|
プロトコル
|
---|---|---|
HTTP
|
8080
|
TCP
|
HTTPS
|
8443
|
TCP
|
Tomcat 管理
|
8005
|
TCP
|
pkispawn
ユーティリティーを使用して Certificate System を設定すると、ポート番号をカスタマイズできます。上記のデフォルトとは異なるポートを使用する場合は、「ファイアウォールで必要なポートを開く」の説明に従ってファイアウォールで対応して開きます。ポートの詳細は、「ポートの計画」を参照してください。
6.3.1. ファイアウォールで必要なポートを開く
firewalld
サービスが実行中である必要があります。# systemctl status firewalld
firewalld
を起動し、システム起動時に自動的に起動するように設定するには、次のコマンドを実行します。# systemctl start firewalld # systemctl enable firewalld
firewall-cmd
ユーティリティーを使用して必要なポートを開きます。たとえば、デフォルトのファイアウォールゾーンで Certificate System のデフォルトポートを開くには、次のコマンドを実行します。# firewall-cmd --permanent --add-port={8080/tcp,8443/tcp,8009/tcp,8005/tcp}
firewall-cmd
を使用してシステム上のポートを開く方法の詳細については 『Red Hat Enterprise Linux セキュリティーガイド』 またはfirewall-cmd(1) man ページを参照してください。- firewall-cmd 設定を再度読み込んで、変更が即座に反映されるようにします。
# firewall-cmd --reload
6.4. ハードウェアセキュリティーモジュール
6.4.1. HSM 用の SELinux の設定
- nCipher nShield
- HSM をインストールし、Certificate System をインストールする前に、以下を行います。
/opt/nfast/
ディレクトリーのファイルのコンテキストをリセットします。# restorecon -R /opt/nfast/
- nfast ソフトウェアを再起動します。
# /opt/nfast/sbin/init.d-ncipher restart
- Gemalto Safenet LunaSA HSM
- Certificate System をインストールする前に、SELinux 関連のアクションは必要ありません。
6.4.2. HSM での FIPS モードの有効化
- nCipher HSM
- nCipher HSM では、FIPS モードが Security World を生成する場合にのみ有効にできます。これは後で変更することはできません。Security World を生成するにはさまざまな方法がありますが、常に new-world コマンドを使用することが推奨されます。FIPS 準拠の Security World を生成する方法は、nCipher HSM ベンダーのドキュメントを参照してください。
- LunaSA HSM
- 同様に、Luna HSM で FIPS モードを有効にするには、初期設定時に行う必要があります。これは、このポリシーを変更すると、セキュリティー対策として HSM がゼロになるためです。詳細は、Luna HSM ベンダーのドキュメントを参照してください。
6.4.3. FIPS モードが HSM で有効になっているかどうかの確認
6.4.3.1. FIPS モードが nCipher HSM で有効にされているかどうかの確認
# /opt/nfast/bin/nfkminfo
StrictFIPS140
が state フラグに一覧表示されると、FIPS モードが有効になります。ただし、新しいバージョンでは、新しい mode
の行を確認して fips1402level3
を検索することが推奨されます。すべてのケースで、nfkminfo
出力には hkfips
キーも存在しているはずです。
6.4.3.2. FIPS モードが Luna SA HSM で有効にされているかどうかの確認
- lunash 管理コンソールを開きます。
- hsm show コマンドを使用して、出力に The HSM is in FIPS 140-2 approved operation mode. の文字が含まれていることを確認します。
lunash:> hsm show ... FIPS 140-2 Operation: ===================== The HSM is in FIPS 140-2 approved operation mode. ...
6.4.4. HSM を使用した Certificate System のインストールの準備
pkispawn
ユーティリティーに渡す設定ファイルで以下のパラメーターを使用します。
... [DEFAULT] ########################## # Provide HSM parameters # ########################## pki_hsm_enable=True pki_hsm_libfile=hsm_libfile pki_hsm_modulename=hsm_modulename pki_token_name=hsm_token_name pki_token_password=pki_token_password ######################################## # Provide PKI-specific HSM token names # ######################################## pki_audit_signing_token=hsm_token_name pki_ssl_server_token=hsm_token_name pki_subsystem_token=hsm_token_name ...
pki_hsm_libfile
パラメーターおよびpki_token_name
パラメーターの値は、特定の HSM インストールにより異なります。これらの値により、pkispawn
ユーティリティーで HSM をセットアップし、Certificate System が接続できるようになります。pki_token_password
の値は、特定の HSM トークンのパスワードによって異なります。パスワードは、HSM で新しいキーを作成するためのpkispawn
ユーティリティーの読み取りおよび書き込み権限を付与します。pki_hsm_modulename
の値は、HSM を識別するため、後続の pkispawn 操作で使用される名前です。文字列は、任意のものとして設定できる識別子です。これにより、pkispawn
および Certificate System は、後の操作で HSM および設定情報を名前で参照できます。
6.4.4.1. NCipher HSM パラメーター
pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast
pki_hsm_modulename
の値を任意の値に設定することができることに注意してください。上記の値は推奨値です。
例6.1 トークン名の特定
root
ユーザーで以下のコマンドを実行します。
[root@example911 ~]# /opt/nfast/bin/nfkminfo
World
generation 2
...~snip~...
Cardset
name "NHSM6000-OCS"
k-out-of-n 1/4
flags NotPersistent PINRecoveryRequired(enabled) !RemoteEnabled
timeout none
...~snip~...
Cardset
セクションの name
フィールドの値は、トークン名を一覧表示します。
pki_token_name=NHSM6000-OCS
6.4.4.2. SafeNet / Luna SA HSM パラメーター
pki_hsm_libfile=/usr/safenet/lunaclient/lib/libCryptoki2_64.so pki_hsm_modulename=lunasa
pki_hsm_modulename
の値を任意の値に設定することができることに注意してください。上記の値は推奨値です。
例6.2 トークン名の特定
root
ユーザーで以下のコマンドを実行します。
# /usr/safenet/lunaclient/bin/vtl verify
The following Luna SA Slots/Partitions were found:
Slot Serial # Label
==== ================ =====
0 1209461834772 lunasaQE
label
列の値は、トークン名を表示します。
pki_token_name=lunasaQE
6.4.5. ハードウェアセキュリティーモジュールでのキーのバックアップ
.p12
ファイルにエクスポートすることができません。このようなインスタンスをバックアップする必要がある場合には、HSM の製造元に連絡してサポートしてください。
6.5. Red Hat Directory Server のインストール
6.5.1. Certificate System 用の Directory Server インスタンスの準備
- Directory Server を提供するサブスクリプションがホストに登録されていることを確認してください。
- Directory Server リポジトリーを有効にします。
#
subscription-manager repos --enable=dirsrv-10-for-rhel-7-x86_64-rpms
- Directory Server および openldap-clients パッケージをインストールします。
#
dnf module install redhat-ds
#
dnf install openldap-clients
- Directory Server インスタンスを設定します。
- DS 設定ファイルを生成します (例:
/tmp/ds-setup.inf
)。$
dscreate create-template /tmp/ds-setup.inf
- DS 設定ファイルを次のようにカスタマイズします。
$ sed -i \ -e "s/;instance_name = .*/instance_name = localhost/g" \ -e "s/;root_password = .*/root_password = Secret.123/g" \ -e "s/;suffix = .*/suffix = dc=example,dc=com/g" \ -e "s/;create_suffix_entry = .*/create_suffix_entry = True/g" \ -e "s/;self_sign_cert = .*/self_sign_cert = False/g" \ /tmp/ds-setup.inf
setup
設定ファイルを指定して dscreate コマンドを使用してインスタンスを作成します。#
dscreate from-file /tmp/ds-setup.inf
詳細な手順は、『Red Hat Directory Server インストールガイド』を参照してください。
6.5.2. Certificate System の設定の準備
pkispawn
ユーティリティーに渡す設定ファイルで次のパラメーターを使用します。
pki_ds_password
は関連なくなります。
pki_ds_database=back_end_database_name pki_ds_hostname=host_name pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=path_to_CA_or_self-signed_certificate pki_ds_password=password pki_ds_ldaps_port=port pki_ds_bind_dn=cn=Directory Manager
pki_ds_database
パラメーターの値は、pkispawn
ユーティリティーによって使用される名前で、Directory Server インスタンスに対応するサブシステムデータベースを作成します。
pki_ds_hostname
パラメーターの値は、Directory Server インスタンスのインストール場所によって異なります。これは、「Certificate System 用の Directory Server インスタンスの準備」 で使用される値によって異なります。
pki_ds_secure_connection_ca_pem_file
: Directory Server の CA 証明書のエクスポートされたコピーを含むファイルのファイル名を含む完全修飾パスを設定します。このファイルが先に存在していないと、pkispawn
は使用できません。pki_ds_ldaps_port
: Directory Server がリッスンしているセキュアな LDAPS ポートの値を設定します。デフォルトは 636 です。
6.5.3. 一時的な証明書の置き換え
- 新しい Directory Server サーバー証明書を取得します。CA が署名した新規証明書の要求を送信します。CMC メソッドを使用して新しい Directory Server 証明書を取得するには、『Red Hat Certificate System 管理ガイド』 の 『システム証明書およびサーバー証明書の取得』 を参照してください。上記のセクションで、TLS サーバー証明書の作成に関するガイダンスに従ってください。証明書を作成したら、Directory Server 証明書データベースにインポートし直す必要があります。
- NSS データベースにアクセスする前に、Directory Server インスタンスを停止します。
# systemctl stop dirsrv@instance_name
- 古い Directory Server 証明書を削除します。
# certutil -F -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "DS Certificate"
- 先ほどダウンロードした CA 証明書をインポートします。
# PKICertImport -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "CA Certificate" -t "CT,C,C" -a -i ca.crt -u L
- 先にダウンロードした新しい Directory Server 証明書をインポートします。
# PKICertImport -d /etc/dirsrv/slapd-instance_name -f /etc/dirsrv/slapd-instance_name/password.txt -n "DS Certificate" -t ",," -a -i ds.crt -u V
「HSM への証明書のインポート」 も併せて参照してください。 - Directory Server インスタンスを停止します。
# systemctl start dirsrv@instance_name
- PKI CA から古い Directory Server 証明書を削除します。
- Certificate System インスタンスを停止します。
# systemctl stop pki-tomcatd@instance_name.service
- 証明書を削除します。
# certutil -D -d /var/lib/pki/instance_name/alias/ -n "DS Certificate"
- Certificate System インスタンスを起動します。
# systemctl start pki-tomcatd@instance_name.service
- 新しい Directory Server 証明書が、NSS データベースにインストールされている CA で署名されていることを確認します。
- Directory Server 証明書の表示
$ certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" Issuer: "CN=CA Signing Certificate,O=EXAMPLE" Subject: "CN=server.example.com"
- 古い Directory Server 証明書が PKI NSS データベースに存在しなくなったことを確認します。
$ certutil -L -d /var/lib/pki/instance_name/alias
- Certificate System が、新しい証明書を使用して Directory Server に接続できることを確認します。
$ pki cert-find
6.5.4. TLS クライアント認証の有効化
pkispawn
は、すでに内部ディレクトリーサーバー上にpkidbuser
を自動的に作成しており、そこにはアウトバウンド TLS クライアント認証に使用される CS インスタンスのサブシステム証明書 (たとえばsubsystemCert cert-pki-ca
) がユーザーエントリーに格納されています。したがって、TLS クライアント認証用に別の LDAP ユーザーまたは別の証明書を作成する必要はありません。/etc/dirsrv/slapd-instance_name/certmap.conf
のコンテンツを作成する場合は、以下の形式を使用します。certmap rhcs <certificate issuer DN> rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
以下に例を示します。certmap rhcs CN=CA Signing Certificate,OU=pki-tomcat-ca,O=pki-tomcat-ca-SD rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
- 設定後に、Directory Server を再起動します。
<instance directory>/<subsystem type>/conf/CS.cfg
にある RHCS インスタンスの CS.cfg
ファイルを編集する必要があります。たとえば、/var/lib/pki/instance_name/ca/conf/CS.cfg
です。
CS.cfg
で、RHCS インスタンスのサブシステム証明書のニックネームを internaldb.ldapauth.clientCertNickname
に追加し、未使用のエントリーを 2 つ削除します。
internaldb.ldapauth.bindDN internaldb.ldapauth.bindPWPrompt
internaldb._000=## internaldb._001=## Internal Database internaldb._002=## internaldb.basedn=o=pki-tomcat-ca-SD internaldb.database=pki-tomcat-ca internaldb.maxConns=15 internaldb.minConns=3 internaldb.ldapauth.authtype=SslClientAuth internaldb.ldapauth.clientCertNickname=HSM-A:subsystemCert pki-tomcat-ca internaldb.ldapconn.host=example.com internaldb.ldapconn.port=11636 internaldb.ldapconn.secureConn=true
internaldb.basedn
パラメーターおよび internaldb.database
パラメーターを設定する必要があります。
internaldb.ldapauth.clientCertNickname
の値は、NSS DB で LDAP に対して認証するには、TLS クライアント証明書のニックネームと一致させる必要があります。
6.6. Red Hat サブスクリプションの添付および Certificate System パッケージリポジトリーの有効化
- Red Hat サブスクリプションをシステムに割り当てます。システムがすでに登録されているか、Certificate Server サブスクリプションが割り当てられている場合は、この手順をスキップしてください。
- システムを Red Hat サブスクリプション管理サービスに登録する
#
subscription-manager register --auto-attach
Username: admin@example.com Password: The system has been registered with id: 566629db-a4ec-43e1-aa02-9cbaa6177c3f Installed Product Current Status: Product Name: Red Hat Enterprise Linux Server Status: Subscribed--auto-attach
オプションを使用して、オペレーティングシステムのサブスクリプションを自動的に適用します。 - 利用可能なサブスクリプションをリストし、Red Hat Certificate System を提供するプール ID をメモします。以下に例を示します。
#
subscription-manager list --available --all
... Subscription Name: Red Hat Enterprise Linux Developer Suite Provides: ... Red Hat Certificate System ... Pool ID: 7aba89677a6a38fc0bba7dac673f7993 Available: 1 ...サブスクリプションが多数ある場合は、コマンドの出力が非常に長くなることがあります。必要に応じて、出力をファイルにリダイレクトできます。#
subscription-manager list --available --all > /root/subscriptions.txt
- 前の手順でプール ID を使用して、Certificate System のサブスクリプションをシステムに割り当てます。
#
subscription-manager attach --pool=7aba89677a6a38fc0bba7dac673f7993
Successfully attached a subscription for: Red Hat Enterprise Linux Developer Suite
- Certificate Server リポジトリーを有効にします。
#
subscription-manager repos --enable=rhel-7-server-rhcmsys-9-rpms
Repository 'rhel-7-server-rhcmsys-9-rpms' is enabled for this system.
subscription-manager
ユーティリティーを使用して有効にできるのは、Red Hat 承認済みのリポジトリーのみです。
6.7. Certificate System のオペレーティングシステムのユーザーおよびグループ
pkiuser
アカウントと対応する pkiuser
グループは自動的に作成されます。Certificate System は、このアカウントとグループを使用してサービスを起動します。
第7章 Certificate System のインストールおよび設定
- 認証局 (CA)
- キーリカバリー認証局 (KRA)
- OCSP (Online Certificate Status Protocol) レスポンダーの使用
- トークンキーサービス (TKS)
- トークン処理システム (TPS)
7.1. サブシステムの設定順序
- 他の公開鍵インフラストラクチャー (PKI) サブシステムをインストールする前に、セキュリティードメインとして実行されている少なくとも 1 つの CA が必要です。
- CA の設定後に OCSP をインストールします。
- KRA サブシステムおよび TKS サブシステムは、CA および OCSP の設定後にいつでもインストールできます。
- TPS サブシステムは CA および TKS に依存し、任意で KRA サブシステムおよび OCSP サブシステムに依存します。
7.2. Certificate System パッケージ
- pki-ca: 認証局 (CA) サブシステムを提供します。
- pki-kra: Key Recovery Authority (KRA) サブシステムを提供します。
- pki-ocsp: OCSP (Online Certificate Status Protocol) レスポンダーを提供します。
- pki-tks: Token Key Service (TKS) を提供します。
- pki-tps: Token Processing Service (TPS) を提供します。
- pki-console および redhat-pki-console-theme: Java ベースの Red Hat PKI コンソールを提供します。両方のパッケージをインストールする必要があります。
- pki-server および redhat-pki-server-theme: Web ベースの Certificate System インターフェイスを提供します。両方のパッケージをインストールする必要があります。pki-ca、pki-kra、pki-ocsp、pki-tks、pki-tps のパッケージのいずれかをインストールすると、このパッケージは依存関係としてインストールされます。
例7.1 Certificate System パッケージのインストール
- CA サブシステムとオプションの Web インターフェイスをインストールするには、次のように入力します。
# yum install pki-ca redhat-pki-server-theme
その他のサブシステムでは、pki-ca のパッケージ名を、インストールするサブシステムの 1 つに置き換えます。 - オプションの PKI コンソールが必要な場合は、以下を行います。
# yum install pki-console redhat-pki-console-theme
- または、すべての Certificate System サブシステムパッケージとコンポーネントを自動的にインストールします。
# yum install redhat-pki
7.2.1. Certificate System パッケージの更新
- 「Certificate System の製品バージョンの特定」 の手順に従って、製品バージョンを確認します。
- # yum update を実行します。上記のコマンドは、RHCS パッケージを含むシステム全体を更新します。注記PKI インフラストラクチャーをオフラインにして更新をインストールできるメンテナンスウィンドウをスケジュールすることが推奨します。重要Certificate System を更新するには、PKI インフラストラクチャーを再起動する必要があります。
- 次に、「Certificate System の製品バージョンの特定」 でバージョンを再度確認します。バージョン番号は、更新が正常にインストールされていることを確認する必要があります。
yum update --downloadonly
/var/cache/yum/
ディレクトリーに保存されます。最新バージョンであれば、 yum update は後でパッケージを使用します。
7.2.2. Certificate System の製品バージョンの特定
/usr/share/pki/CS_SERVER_VERSION
ファイルに保存されます。バージョンを表示するには、以下を実行します。
# cat /usr/share/pki/CS_SERVER_VERSION Red Hat Certificate System 9.4 (Batch Update 3)
- http://host_name:port_number/ca/admin/ca/getStatus
- http://host_name:port_number/kra/admin/kra/getStatus
- http://host_name:port_number/ocsp/admin/ocsp/getStatus
- http://host_name:port_number/tks/admin/tks/getStatus
- http://host_name:port_number/tps/admin/tps/getStatus
7.3. pkispawn ユーティリティーの概要
/etc/pki/default.cfg
ファイルからデフォルト値を読み取ります。詳細は、pki_default.cfg(5) の man ページを参照してください。重要/etc/pki/default.cfg
ファイルは編集しないでください。代わりに、設定ファイルを作成し、デフォルトを上書きして、pkispawn
ユーティリティーに渡します。設定ファイルの使用方法は、「2 ステップインストール」を参照してください。- 設定モードに応じて、パスワードやその他のデプロイメント固有の情報を使用します。
- インタラクティブモード: セットアップ中、ユーザーは設定時に個々の設定を要求します。このモードは、単純なデプロイメントに使用します。
- バッチモード: ユーザーは提供する設定ファイルから値が読み込まれます。設定ファイルで設定されていないパラメーターは、デフォルト値を使用します。
- 要求された PKI サブシステムのインストールを実行します。
- 設定に基づいて設定を行う Java サーブレットに設定を渡します。
pkispawn
ユーティリティーを使用してインストールします。
- ルート CA。詳細は、「ルート認証局の設定」 を参照してください。
- 下位 CA またはその他のサブシステム。詳細は、「追加のサブシステムの設定」 を参照してください。
pkispawn
ユーティリティーを使用してルート CA を設定する方法は 「ルート認証局の設定」 を参照してください。下位 CA または非 CA サブシステムの設定は、「外部 CA でのサブシステムの設定」を参照してください。
7.4. ルート認証局の設定
- 設定ファイルベースのインストール:この方法は高度なカスタマイズに使用します。このインストール方法は、デフォルトのインストールパラメーターを上書きする設定ファイルを使用します。1 つの手順または 2 つの手順で、設定ファイルを使用して Certificate System をインストールできます。詳細および例は、以下を参照してください。
- man ページの pkispawn(8) (単一ステップのインストールについて)
- 「2 ステップインストール」 (2 ステップインストール用)
- 対話型インストール::
# pkispawn -s CA
必要最小限の設定オプションのみを設定する場合は、対話型インストーラーを使用してください。
7.5. インストール後の設定
7.6. 追加のサブシステムの設定
前提条件
サブシステムのインストール
- 設定ファイルベースのインストール:この方法は高度なカスタマイズに使用します。このインストール方法は、デフォルトのインストールパラメーターを上書きする設定ファイルを使用します。1 つの手順または 2 つの手順で、設定ファイルを使用して Certificate System をインストールできます。詳細および例は、以下を参照してください。
- man ページの pkispawn(8) (単一ステップのインストールについて)
- 「2 ステップインストール」 (2 ステップインストール用)
- 対話型インストール::必要最小限の設定オプションのみを設定する場合は、対話型インストーラーを使用してください。以下に例を示します。
# pkispawn -s subsystem
subsystem は、KRA
、OCSP
、TKS
またはTPS
のいずれかに置き換えます。対話型インストーラーは、下位 CA のインストールをサポートしません。下位 CA をインストールするには、2 ステップのインストールを使用します。「2 ステップインストール」 を参照してください。
7.7. 2 ステップインストール
pkispawn
ユーティリティーを使用すると、2 つの手順でサブシステムのインストールを実行できます。
7.7.1. 2 ステップインストールを使用するタイミング
- セキュリティーの強化。
- サブシステム証明書のカスタマイズ。
- 既存の Certificate System に接続する新しい Certificate System インスタンスをインストールする場合に、
/etc/pki/instance_name/server.xml
ファイルのsslRangeCiphers
パラメーターの暗号リストをカスタマイズ。 - FIPS モードで CA クローン、KRA、OCSP、TKS、および TPS をインストールします。
- FIPS モードでハードウェアセキュリティーモジュール (HSM) を使用した Certificate System のインストール
7.7.2. 2 ステップインストールの 2 つの主要部分
- インストールこのステップでは、
pkispawn
は、/usr/share/pki/
ディレクトリーから、インスタンス固有のディレクトリー/etc/pki/instance_name/
に設定ファイルをコピーします。さらに、pkispawn
は、デプロイメント設定ファイルで定義されている値に基づいて設定を行います。インストールのこの部分には、以下のサブステップが含まれます。 - 設定このステップでは、
pkispawn
インスタンス固有の/etc/pki/instance_name/
ディレクトリーの設定ファイルに基づいてインストールを続行します。インストールのこの部分には、以下のサブステップが含まれます。
7.7.3. インストールの最初ステップ用の設定ファイルの作成
/root/config.txt
などの設定用のテキストファイルを作成し、これを以下の設定で入力します。
サブシステムに依存しない設定
- Certificate System
admin
ユーザー、PKCS #12 ファイル、および Directory Server のパスワードを設定します。[DEFAULT] pki_admin_password=password pki_client_pkcs12_password=password pki_ds_password=password
- 同じホストで実行している Directory Server への LDAPS 接続を使用するには、設定ファイルの
[DEFAULT]
セクションに以下のパラメーターを追加します。pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=path_to_CA_or_self-signed_certificate
注記セキュリティー上の理由から、Red Hat は、Directory Server への暗号化された接続を使用することを推奨します。Directory Server で自己署名証明書を使用する場合は、以下のコマンドを使用して Directory Server の Network Security Services (NSS) データベースからエクスポートします。# certutil -L -d /etc/dirsrv/slapd-instance_name/ \ -n "server-cert" -a -o /root/ds.crt
~/.dogtag/instance_name/subsystem/alias
クライアントデータベースを削除します。セキュリティー上の理由から、Red Hat は、設定ファイルの pki_client_database_purge
パラメーターを有効にしないことを推奨します。このパラメーターを手動で True に設定した場合、Certificate System は、インストール後にクライアントデータベースを削除しません。
CA 設定
- セキュリティーを強化するには、設定ファイルに以下が設定された
[CA]
を追加して、ランダムなシリアル番号を有効にします。[CA] pki_random_serial_numbers_enable=true
- 必要に応じて、
[CA]
セクションに以下のパラメーターを設定して、admin
ユーザーのデータを指定します。これは、インストール時に自動的に作成されます。pki_admin_nickname=caadmin pki_admin_name=CA administrator account pki_admin_password=password pki_admin_uid=caadmin pki_admin_email=caadmin@example.com
Certificate System は、このアカウントに管理者権限を割り当てます。インストール後にこのアカウントを使用して、Certificate System を管理し、さらにユーザーアカウントを作成します。 - Certificate System が一意のニックネームを生成できるようにするには、
[DEFAULT]
セクションで次のパラメーターを設定します。pki_instance_name=instance_name pki_security_domain_name=example.com Security Domain pki_host=server.example.com
重要ネットワーク共有ハードウェアセキュリティーモジュール (HSM) を使用して Certificate System をインストールする場合は、一意の証明書のニックネームを使用する必要があります。 - 必要に応じて、証明書の生成時に、RSA ではなく Elliptic Curve Cryptography (ECC) を使用するには、以下を実行します。
[DEFAULT]
セクションに以下のパラメーターを追加します。pki_admin_key_algorithm=SHA256withEC pki_admin_key_size=nistp256 pki_admin_key_type=ecc pki_sslserver_key_algorithm=SHA256withEC pki_sslserver_key_size=nistp256 pki_sslserver_key_type=ecc pki_subsystem_key_algorithm=SHA256withEC pki_subsystem_key_size=nistp256 pki_subsystem_key_type=ecc
[CA]
セクションに以下のパラメーターを追加します。pki_ca_signing_key_algorithm=SHA256withEC pki_ca_signing_key_size=nistp256 pki_ca_signing_key_type=ecc pki_ca_signing_signing_algorithm=SHA256withEC pki_ocsp_signing_key_algorithm=SHA256withEC pki_ocsp_signing_key_size=nistp256 pki_ocsp_signing_key_type=ecc pki_ocsp_signing_signing_algorithm=SHA256withEC
[CA]
セクションに以下のパラメーターを追加して、ECC プロファイルで RSA プロファイルを上書きします。pki_source_admincert_profile=/usr/share/pki/ca/conf/eccAdminCert.profile pki_source_servercert_profile=/usr/share/pki/ca/conf/eccServerCert.profile pki_source_subsystemcert_profile=/usr/share/pki/ca/conf/eccSubsystemCert.profile
他のサブシステムの設定
- 以下のエントリーを設定ファイルの
[DEFAULT]
セクションに追加します。pki_client_database_password=password
- TPS をインストールしている場合は、以下を行います。
- 次のセクションに次のセクションを追加します。
[TPS] pki_authdb_basedn=basedn_of_the_TPS_authentication_database
- 必要に応じて、TPS が共有 CA インスタンスにすでにインストールされている KRA を利用してサーバー側のキー生成を使用するように設定するには、
[TPS]
セクションに次のエントリーを追加します。pki_enable_server_side_keygen=True
7.7.4. インストール手順の起動
# pkispawn -f /root/config.txt -s subsystem --skip-configuration
CA
、KRA
、OCSP
、TKS
または TPS
のいずれかに置き換えます。
7.7.5. インストール手順間の設定のカスタマイズ
7.7.5.1. 証明書プロファイルの設定
7.7.5.2. 署名監査ログの有効化
7.7.5.3. 暗号リストの更新
- Certificate System インスタンスのセキュリティーを保護するには
- Certificate System インスタンスをインストールし、特定の暗号のみをサポートする既存のサイトに追加するには
RSA 暗号化のデフォルトの FIPS モードが有効になっている暗号
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA256
ECC 暗号化のデフォルトの FIPS モードが有効になっている暗号
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA256
FIPS モードが有効になっているシステムで HSM を実行する際に必要な RSA 暗号
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
7.7.5.4. PKI コンソールタイムアウトの設定
7.7.5.5. KRA の暗号化モードへの設定
7.7.5.6. OCSP の有効化
7.7.5.7. リクエスト番号とシリアル番号の範囲の設定
7.7.6. 設定手順の開始
# pkispawn -f /root/config.txt -s subsystem --skip-installation
CA
、KRA
、OCSP
、TKS
または TPS
のいずれかに置き換えます。
pkispawn
ユーティリティーにインストールの概要が表示されます。以下に例を示します。
================================================================ INSTALLATION SUMMARY ================================================================ Administrator's username: caadmin Administrator's PKCS #12 file: /root/.dogtag/instance_name/ca_admin_cert.p12 To check the status of the subsystem: systemctl status pki-tomcatd@instance_name.service To restart the subsystem: systemctl restart pki-tomcatd@instance_name.service The URL for the subsystem is: https://server.example.com:8443/ca/ PKI instances will be enabled upon system boot ================================================================
7.7.7. インストール後の設定
7.8. 外部 CA でのサブシステムの設定
7.8.1. 内部 CA と外部 CA の相違点
pkispawn
ユーティリティーがサブシステム証明書署名要求 (CSR) を以前にインストールされた Certificate System に送信すると、上記の証明書が pkispawn
で受信されて使用され、その CSR が送られる CA は Internal CA
と呼ばれます。
External CA
は以下のいずれかになります。
- Certificate System の下位 CA の署名証明書を発行する RedHat Certificate System 以外の CA。
- CSR の直接送信を許可しない Red Hat Certificate System CA がインストールされていました。たとえば、ご使用の環境で、下位 CA、KRA、OCSP、TKS、または TPS からの CSR を必要とする場合、これは PKCS #10 以外の形式である必要があります。
7.8.2. 外部 CA を使用したサブシステムのインストール
外部 CA インストール用の設定ファイルの準備
- 既存の Certificate System インストールに統合されていて、外部 CA により署名された証明書を使用するサブシステムをインストールする場合は、以下を行います。
- サブシステムの設定ファイルを作成します。「インストールの最初ステップ用の設定ファイルの作成」を参照してください。
- 以下の設定を設定ファイルに追加します。
- CA インストールの場合:
pki_external=True pki_external_step_two=False pki_ca_signing_csr_path=path/to/ca_signing.csr pki_ca_signing_cert_path=path/to/ca_signing.crt
- KRA インストールの場合:
pki_external=True pki_external_step_two=False pki_storage_csr_path=/home/user_name/kra_storage.csr pki_transport_csr_path=/home/user_name/kra_transport.csr pki_subsystem_csr_path=/home/user_name/subsystem.csr pki_sslserver_csr_path=/home/user_name/sslserver.csr pki_audit_signing_csr_path=/home/user_name/kra_audit_signing.csr pki_admin_csr_path=/home/user_name/kra_admin.csr
- OCSP インストールの場合:
pki_external=True pki_external_step_two=False pki_ocsp_signing_csr_path=/home/user_name/ocsp_signing.csr pki_subsystem_csr_path=/home/user_name/subsystem.csr pki_sslserver_csr_path=/home/user_name/sslserver.csr pki_audit_signing_csr_path=/home/user_name/ocsp_audit_signing.csr pki_admin_csr_path=/home/user_name/ocsp_admin.csr
- 既存の Certificate System インストールに統合されていないスタンドアロンの KRA または OCSP をインストールする場合は、「スタンドアロン KRA または OCSP の設定」に記載されている手順を実行します。
外部 CA を使用したサブシステムのインストールの開始
pkispawn
ユーティリティーを使用してインストールを開始します。# pkispawn -f /root/config.txt -s subsystem
subsystem は、インストールするサブシステム (CA
、KRA
またはOCSP
) に置き換えます。このステップでは、セットアップでは、設定で指定されたファイルに CSR が保管されます。- 外部 CA に CSR を送信します。CA が対応する証明書を発行した後に続行します。特定の環境では、外部 CA が Certificate System インスタンスでもある場合は、PKCS#10 形式の CSR を、CA に送信する前に ESP 形式に変換する必要があります。証明書の発行に関する詳細は、『Red Hat Certificate System 管理ガイド』『UMC を使用した証明書の発行』セクションを参照してください。
- オプションで、インストールをカスタマイズします。詳細は、「インストール手順間の設定のカスタマイズ」 を参照してください。
- 外部 CA が証明書を発行したら、デプロイメント設定ファイルを編集します。
pki_external_step_two
を True に設定します。pki_external_step_two=True
- インストールするサブシステムに応じて、以下のパラメーターを追加します。
- CA の場合は、証明書ファイルへのパスを設定します。以下に例を示します。
pki_ca_signing_cert_path=/home/user_name/ca_signing.crt
指定したファイルに証明書チェーンを含む証明書が含まれていない場合は、さらに証明書チェーンファイルへのパスとニックネームを指定します。以下に例を示します。pki_cert_chain_path=/home/user_name/cert_chain.p7b pki_cert_chain_nickname=CA Signing Certificate
- KRA の場合には、証明書ファイルへのパスを設定します。以下に例を示します。
pki_storage_cert_path=/home/user_name/kra_storage.crt pki_transport_cert_path=/home/user_name/kra_transport.crt pki_subsystem_cert_path=/home/user_name/subsystem.crt pki_sslserver_cert_path=/home/user_namesslserver.crt pki_audit_signing_cert_path=/home/user_name/kra_audit_signing.crt pki_admin_cert_path=/home/user_name/kra_admin.crt
指定したファイルに証明書チェーンを含む証明書が含まれていない場合は、署名証明書ファイルと証明書チェーンファイルへのパスと、そのニックネームを指定します。以下に例を示します。pki_ca_signing_nickname=CA Signing Certificate pki_ca_signing_cert_path=/home/user_name/ca_signing.crt pki_cert_chain_nickname=External Certificate Chain pki_cert_chain_path=/home/user_name/cert_chain.p7b
- OCSP の場合には、証明書ファイルへのパスを設定します。以下に例を示します。
pki_ocsp_signing_cert_path=/home/user_name/ocsp_signing.crt pki_subsystem_cert_path=/home/user_name/subsystem.crt pki_sslserver_cert_path=/home/user_name/sslserver.crt pki_audit_signing_cert_path=/home/user_name/ocsp_audit_signing.crt pki_admin_cert_path=/home/user_name/ocsp_admin.crt
指定したファイルに証明書チェーンを含む証明書が含まれていない場合は、署名証明書ファイルと証明書チェーンファイルへのパスと、そのニックネームを指定します。以下に例を示します。pki_ca_signing_nickname=CA Signing Certificate pki_ca_signing_cert_path=/home/user_name/ca_signing.crt pki_cert_chain_nickname=External Certificate Chain pki_cert_chain_path=/home/user_name/cert_chain.p7b
- 必要に応じて、設定ファイルをカスタマイズします。例については、「インストール手順間の設定のカスタマイズ」を参照してください。
- 設定手順を開始します。
# pkispawn -f /root/config.txt -s subsystem
subsystem は、インストールするサブシステム (CA
、KRA
またはOCSP
) に置き換えます。
7.8.3. インストール後の設定
7.9. スタンドアロン KRA または OCSP の設定
- 以下の内容で、
/root/config.txt
などの設定ファイルを作成します。[DEFAULT] pki_admin_password=password pki_client_database_password=password pki_client_pkcs12_password=password pki_ds_password=password pki_token_password=password pki_client_database_purge=False pki_security_domain_name=EXAMPLE pki_standalone=True pki_external_step_two=False
- スタンドアロンの KRA の場合は、設定ファイルに以下のセクションを追加します。
[KRA] pki_admin_email=kraadmin@example.com pki_ds_base_dn=dc=kra,dc=example,dc=com pki_ds_database=kra pki_admin_nickname=kraadmin pki_audit_signing_nickname=kra_audit_signing pki_sslserver_nickname=sslserver pki_storage_nickname=kra_storage pki_subsystem_nickname=subsystem pki_transport_nickname=kra_transport pki_standalone=True
- スタンドアロン OCSP の場合は、設定ファイルに以下のセクションを追加します。
[OCSP] pki_admin_email=ocspadmin@example.com pki_ds_base_dn=dc=ocsp,dc=example,dc=com pki_ds_database=ocsp pki_admin_nickname=ocspadmin pki_audit_signing_nickname=ocsp_audit_signing pki_ocsp_signing_nickname=ocsp_signing pki_sslserver_nickname=sslserver pki_subsystem_nickname=subsystem pki_standalone=True
- 同じホストで実行している Directory Server への LDAPS 接続を使用するには、設定ファイルの
DEFAULT
セクションに以下のパラメーターを追加します。pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=path_to_CA_or_self-signed_certificate
注記セキュリティー上の理由から、Red Hat は、Directory Server への暗号化された接続を使用することを推奨します。Directory Server で自己署名証明書を使用する場合は、以下のコマンドを使用して Directory Server の Network Security Services (NSS) データベースからエクスポートします。# certutil -L -d /etc/dirsrv/slapd-instance_name/ \ -n "server-cert" -a -o /root/ds.crt
- 「外部 CA を使用したサブシステムのインストールの開始」 に記載されている手順に進みます。
7.10. インストール後のタスク
pkispawn
ユーティリティーを使用したインストールが完了したら、サイトの設定に応じて、さらに設定をカスタマイズすることができます。詳細は、パートIII「Certificate System の設定」で説明してください。
7.10.1. RHCS の日付/時刻の設定
7.10.2. Directory Server (CA) での一時的な自己署名証明書の置き換え
7.10.3. 内部 LDAP サーバーの TLS クライアント認証の有効化
7.10.4. セッションタイムアウトの設定
7.10.5. CRL または証明書の発行
7.10.6. 証明書登録プロファイル (CA) の設定
7.10.7. アクセスバナーの有効化
7.10.8. Watchdog サービスの有効化
7.10.9. CMC 登録および失効 (CA) の設定
- CMC Shared Token Feature の有効化に関する詳細は、「CMC 共有シークレット機能の有効化」を参照してください。
PopLinkWittness
機能を有効にする方法は、「PopLinkWittnessV2
機能の有効化」 を参照してください。- Web ユーザーインターフェイスの
CMCRevoke
を有効にする方法は、「Web ユーザーインターフェイスの CMCRevoke の有効化」 を参照してください。
7.10.10. Java コンソールの TLS クライアント認証
pkiconsole
要件の設定」を参照してください。
7.10.11. ロールユーザーの作成
7.10.12. Bootstrap ユーザーの削除
7.10.13. マルチロールサポートの無効化
7.10.14. KRA の設定
7.10.14.1. KRA (Key Recovery Authority) に複数のエージェント承認の要件の追加
7.10.14.2. KRA 暗号化設定の設定
7.10.15. ユーザーインターフェイスを使用するようにユーザーを設定
第8章 サブシステムセキュリティーデータベース用のハードウェアセキュリティーモジュールの使用
8.1. HSM を使用した Certificate System のインストール
pkispawn
ユーティリティーに渡す設定ファイルで以下のパラメーターを使用します。
[DEFAULT] ########################## # Provide HSM parameters # ########################## pki_hsm_enable=True pki_hsm_libfile=hsm_libfile pki_hsm_modulename=hsm_modulename pki_token_name=hsm_token_name pki_token_password=pki_token_password ######################################## # Provide PKI-specific HSM token names # ######################################## pki_audit_signing_token=hsm_token_name pki_ssl_server_token=hsm_token_name pki_subsystem_token=hsm_token_name
8.2. サブシステムでのハードウェアセキュリティーモジュールの使用
secmod.db
データベースに自動的に追加されます。
8.2.1. HSM での FIPS モードの有効化
- nCipher HSM
- nCipher HSM では、FIPS モードが Security World を生成する場合にのみ有効にできます。これは後で変更することはできません。Security World を生成するにはさまざまな方法がありますが、常に new-world コマンドを使用することが推奨されます。FIPS 準拠の Security World を生成する方法は、nCipher HSM ベンダーのドキュメントを参照してください。
- LunaSA HSM
- 同様に、Luna HSM で FIPS モードを有効にするには、初期設定時に行う必要があります。これは、このポリシーを変更すると、セキュリティー対策として HSM がゼロになるためです。詳細は、Luna HSM ベンダーのドキュメントを参照してください。
8.2.2. FIPS モードが HSM で有効になっているかどうかの確認
8.2.2.1. FIPS モードが nCipher HSM で有効にされているかどうかの確認
# /opt/nfast/bin/nfkminfo
StrictFIPS140
が state フラグに一覧表示されると、FIPS モードが有効になります。ただし、新しいバージョンでは、新しい mode
の行を確認して fips1402level3
を検索することが推奨されます。すべてのケースで、nfkminfo
出力には hkfips
キーも存在しているはずです。
8.2.2.2. FIPS モードが Luna SA HSM で有効にされているかどうかの確認
- lunash 管理コンソールを開きます。
- hsm show コマンドを使用して、出力に The HSM is in FIPS 140-2 approved operation mode. の文字が含まれていることを確認します。
lunash:> hsm show ... FIPS 140-2 Operation: ===================== The HSM is in FIPS 140-2 approved operation mode. ...
8.2.3. サブシステムの HSM エントリーの追加および管理
/var/lib/pki/instance_name/conf/password.conf
ファイルに追加されます。
hardware-HSM_token_name=HSM_token_password
8.2.4. HSM 用の SELinux の設定
- nCipher nShield
- HSM をインストールし、Certificate System をインストールする前に、以下を行います。
/opt/nfast/
ディレクトリーのファイルのコンテキストをリセットします。# restorecon -R /opt/nfast/
- nfast ソフトウェアを再起動します。
# /opt/nfast/sbin/init.d-ncipher restart
- Gemalto Safenet LunaSA HSM
- Certificate System をインストールする前に、SELinux 関連のアクションは必要ありません。
8.2.5. nCipher nShield HSM を使用したサブシステムのインストール
- 特定のデプロイメントに対応するオーバーライドファイルを準備します。以下の
default_hms.txt
ファイルは、このような上書きファイルの例になります。注記このファイルは、nCipher HSM 上書き設定ファイルのサンプルとしてのみ提供されます。その他の多くの値は、デフォルトのハッシュアルゴリズムを含む上書きできます。また、pkispawn コマンドラインで指定されたサブシステムの呼び出しに応じて、[CA] セクション、[KRA] セクション、[OCSP] セクション、[TKS] セクション、または [TPS] セクションの 1 つだけが使用されます。例8.1 nCipher HSM で使用するオーバーライドファイルのサンプル
############################################################################### ############################################################################### ############################################################################### ## ## ## EXAMPLE: Configuration File used to override '/etc/pki/default.cfg' ## ## when using an nCipher Hardware Security Module (HSM): ## ## ## ## ## ## # modutil -dbdir . -list ## ## ## ## Listing of PKCS #11 Modules ## ## ----------------------------------------------------------- ## ## 1. NSS Internal PKCS #11 Module ## ## slots: 2 slots attached ## ## status: loaded ## ## ## ## slot: NSS Internal Cryptographic Services ## ## token: NSS Generic Crypto Services ## ## ## ## slot: NSS User Private Key and Certificate Services ## ## token: NSS Certificate DB ## ## ## ## 2. nfast ## ## library name: /opt/nfast/toolkits/pkcs11/libcknfast.so ## ## slots: 2 slots attached ## ## status: loaded ## ## ## ## slot: <serial_number> Rt1 ## ## token: accelerator ## ## ## ## slot: <serial_number> Rt1 slot 0 ## ## token: <HSM_token_name> ## ## ----------------------------------------------------------- ## ## ## ## ## ## Based on the example above, substitute all password values, ## ## as well as the following values: ## ## ## ## <hsm_libfile>=/opt/nfast/toolkits/pkcs11/libcknfast.so ## ## <hsm_modulename>=nfast ## ## <hsm_token_name>=NHSM6000 ## ## ## ############################################################################### ############################################################################### ############################################################################### [DEFAULT] ########################## # Provide HSM parameters # ########################## pki_hsm_enable=True pki_hsm_libfile=<hsm_libfile> pki_hsm_modulename=<hsm_modulename> pki_token_name=<hsm_token_name> pki_token_password=<pki_token_password> ######################################## # Provide PKI-specific HSM token names # ######################################## pki_audit_signing_token=<hsm_token_name> pki_ssl_server_token=<hsm_token_name> pki_subsystem_token=<hsm_token_name> ################################## # Provide PKI-specific passwords # ################################## pki_admin_password=<pki_admin_password> pki_client_pkcs12_password=<pki_client_pkcs12_password> pki_ds_password=<pki_ds_password> ##################################### # Provide non-CA-specific passwords # ##################################### pki_client_database_password=<pki_client_database_password> ############################################################### # ONLY required if specifying a non-default PKI instance name # ############################################################### #pki_instance_name=<pki_instance_name> ############################################################## # ONLY required if specifying non-default PKI instance ports # ############################################################## #pki_http_port=<pki_http_port> #pki_https_port=<pki_https_port> ###################################################################### # ONLY required if specifying non-default 389 Directory Server ports # ###################################################################### #pki_ds_ldap_port=<pki_ds_ldap_port> #pki_ds_ldaps_port=<pki_ds_ldaps_port> ###################################################################### # ONLY required if PKI is using a Security Domain on a remote system # ###################################################################### #pki_ca_hostname=<pki_ca_hostname> #pki_issuing_ca_hostname=<pki_issuing_ca_hostname> #pki_issuing_ca_https_port=<pki_issuing_ca_https_port> #pki_security_domain_hostname=<pki_security_domain_hostname> #pki_security_domain_https_port=<pki_security_domain_https_port> ########################################################### # ONLY required for PKI using an existing Security Domain # ########################################################### # NOTE: pki_security_domain_password == pki_admin_password # of CA Security Domain Instance #pki_security_domain_password=<pki_admin_password> [Tomcat] ############################################################## # ONLY required if specifying non-default PKI instance ports # ############################################################## #pki_ajp_port=<pki_ajp_port> #pki_tomcat_server_port=<pki_tomcat_server_port> [CA] ####################################### # Provide CA-specific HSM token names # ####################################### pki_ca_signing_token=<hsm_token_name> pki_ocsp_signing_token=<hsm_token_name> ########################################################################### # ONLY required if 389 Directory Server for CA resides on a remote system # ########################################################################### #pki_ds_hostname=<389 hostname> [KRA] ######################################## # Provide KRA-specific HSM token names # ######################################## pki_storage_token=<hsm_token_name> pki_transport_token=<hsm_token_name> ############################################################################ # ONLY required if 389 Directory Server for KRA resides on a remote system # ############################################################################ #pki_ds_hostname=<389 hostname> [OCSP] ######################################### # Provide OCSP-specific HSM token names # ######################################### pki_ocsp_signing_token=<hsm_token_name> ############################################################################# # ONLY required if 389 Directory Server for OCSP resides on a remote system # ############################################################################# #pki_ds_hostname=<389 hostname> [TKS] ######################################## # Provide TKS-specific HSM token names # ######################################## ############################################################################ # ONLY required if 389 Directory Server for TKS resides on a remote system # ############################################################################ #pki_ds_hostname=<389 hostname> [TPS] ################################### # Provide TPS-specific parameters # ################################### pki_authdb_basedn=<dnsdomainname where hostname.b.c.d is dc=b,dc=c,dc=d> ######################################## # Provide TPS-specific HSM token names # ######################################## ############################################################################ # ONLY required if 389 Directory Server for TPS resides on a remote system # ############################################################################ #pki_ds_hostname=<389 hostname> ########################################################## # ONLY required if TPS requires a CA on a remote machine # ########################################################## #pki_ca_uri=https://<pki_ca_hostname>:<pki_ca_https_port> ####################################### # ONLY required if TPS requires a KRA # ####################################### #pki_enable_server_side_keygen=True ########################################################### # ONLY required if TPS requires a KRA on a remote machine # ########################################################### #pki_kra_uri=https://<pki_kra_hostname>:<pki_kra_https_port> ########################################################### # ONLY required if TPS requires a TKS on a remote machine # ########################################################### #pki_tks_uri=https://<pki_tks_hostname>:<pki_tks_https_port>
- 「2 ステップインストール」に記載されているように、設定ファイルを使用します。
# pkispawn -s CA -f ./
default_hsm.txt
-vvv# pkispawn -s KRA -f ./
default_hsm.txt
-vvv# pkispawn -s OCSP -f ./
default_hsm.txt
-vvv# pkispawn -s TKS -f ./
default_hsm.txt
-vvv# pkispawn -s TPS -f ./
default_hsm.txt
-vvv
8.2.6. Gemalto Safenet LunaSA HSM を使用したサブシステムのインストール
例8.2 LunaSA オーバーライドファイルヘッダーの例
############################################################################### ############################################################################### ############################################################################### ## ## ## EXAMPLE: Configuration File used to override '/etc/pki/default.cfg' ## ## when using a LunaSA Hardware Security Module (HSM): ## ## ## ## ## ## # modutil -dbdir . -list ## ## ## ## Listing of PKCS #11 Modules ## ## ----------------------------------------------------------- ## ## 1. NSS Internal PKCS #11 Module ## ## slots: 2 slots attached ## ## status: loaded ## ## ## ## slot: NSS Internal Cryptographic Services ## ## token: NSS Generic Crypto Services ## ## ## ## slot: NSS User Private Key and Certificate Services ## ## token: NSS Certificate DB ## ## ## ## 2. lunasa ## ## library name: /usr/safenet/lunaclient/lib/libCryptoki2_64.so ## ## slots: 4 slots attached ## ## status: loaded ## ## ## ## slot: LunaNet Slot ## ## token: dev-intca ## ## ## ## slot: Luna UHD Slot ## ## token: ## ## ## ## slot: Luna UHD Slot ## ## token: ## ## ## ## slot: Luna UHD Slot ## ## token: ## ## ----------------------------------------------------------- ## ## ## ## ## ## Based on the example above, substitute all password values, ## ## as well as the following values: ## ## ## ## <hsm_libfile>=/usr/safenet/lunaclient/lib/libCryptoki2_64.so ## ## <hsm_modulename>=lunasa ## ## <hsm_token_name>=dev-intca ## ## ## ############################################################################### ############################################################################### ###############################################################################
8.3. ハードウェアセキュリティーモジュールでのキーのバックアップ
.p12
ファイルにエクスポートすることができません。このようなインスタンスをバックアップする必要がある場合には、HSM の製造元に連絡してサポートしてください。
8.4. HSM を使用したクローンサブシステムのインストール
pki_backup_keys
を True に設定して pki_backup_password
オプションの定義値と一緒にインストールするか、または PKCS12Export ツールを使用して鍵をエクスポートすることで、マスターサブシステムのインストール中に生成されます。
pkispawn
ユーティリティーを実行する前に、master サブシステムのキーへのアクセスを提供する必要があります。
[Tomcat]
セクションからオプションを示しています。
pki_clone
=Truepki_clone_pkcs12_password
=Secret123pki_clone_pkcs12_path
=<path_to_pkcs12_file>pki_clone_replicate_schema
=True (デフォルト値)pki_clone_uri
=https://<master_ca_host_name>:<master_ca_https_port>
pki_clone
=Truepki_clone_replicate_schema
=True (デフォルト値)pki_clone_uri
=https://<master_ca_host_name>:<master_ca_https_port>
8.5. トークンの表示
- インスタンスの
alias
ディレクトリーに移動します。以下に例を示します。# cd /var/lib/pki/pki-tomcat/alias
- インストールされている PKCS #11 モジュールに関する情報と、modutil ツールを使用して、対応するトークンに関する情報を表示します。
# modutil -dbdir . -nocertdb -list
8.6. トークンの検出
alias
ディレクトリーを参照します。これは、Certificate System パッケージのインストール後に利用できる Certificate System ツールです。
# TokenInfo /var/lib/pki/pki-tomcat/alias
8.7. フェイルオーバーと耐障害性
8.7.1. nCipher nShield HSM
8.7.1.1. フェイルオーバー
8.7.1.2. 耐障害性
8.7.2. Gemalto Safenet LunaSA HSM
8.7.2.1. フェイルオーバー
第9章 ECC システム証明書を使用するインスタンスのインストール
enforcing
モードから permissive
モードに変更する必要があります。それ以外の場合は、ECC モジュールを必要とするサブシステム操作は失敗します。
9.1. サードパーティーの ECC モジュールの読み込み
9.2. HSM での ECC の使用
- 製造元の指示に従って HSM をセットアップします。複数のホストが HSM を共有している場合は、必要に応じて、サイトポリシーで許可されている場合は、すべてのホストが同じパーティションにアクセスできることを確認してください。
pkispawn
ユーティリティー設定ファイルに必要なパラメーターを定義し、pkispawn
を実行します。たとえば、設定ファイルがecc.inf
の場合に、Certificate System が ECC CA を作成するように設定するには、次を行います。ecc.inf
を編集して、適切な設定を指定します。設定ファイルの例は、pkispawn(8) の man ページを参照してください。ecc.inf
に対してpkispawn
を実行します。$ script -c 'pkispawn -s CA -f /root/pki/ecc.inf -vvv'
第10章 サブシステムのクローン作成
10.1. ソフトウェアデータベースからのサブシステムキーのバックアップ
PKCS12Export
ユーティリティーを使用してサブシステムインスタンスの内部ソフトウェアデータベースからキーを抽出することができます。以下に例を示します。
PKCS12Export -debug -d /var/lib/pki/instance_name/alias -w p12pwd.txt -p internal.txt -o master.p12
10.2. CA のクローン作成
- マスター CA を設定し、キーのバックアップを作成します。
- マスター CA の
CS.cfg
ファイルで、ca.listenToCloneModifications
パラメーターを追加して、マスター CA がレプリケーションデータベースの変更を監視できるようにします。ca.listenToCloneModifications=true
- クローンサブシステムインスタンスを作成します。CA サブシステムのクローン作成時に
pkispawn
で必要な設定ファイルの例は、pkispawn(8) の man ページのInstalling a CA clone
セクションおよびInstalling a CA clone on the same host
セクションを参照してください。 - クローンが使用する Directory Server インスタンスを再起動します。
# systemctl restart pki-tomcatd@kra-clone-ds-instance.service
注記Directory Server を再起動すると、更新されたスキーマが再読み込みされます。これは、パフォーマンスを適切に行うために必要です。 - クローンインスタンスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
- クローン作成された CA から証明書を要求します。
- 要求を承認します。
- ブラウザーに証明書をダウンロードします。
- 証明書を取り消します。
- マスター CA の CRL で取り消された証明書を確認します。マスター Certificate Manager のエージェントサービスページで、Update Certificate Revocation List をクリックします。リストで CRL を検索します。CRL には、クローン作成された Certificate Manager が失効した証明書が表示されます。証明書がリストにない場合は、ログを確認して問題を解決します。
10.3. クローン後の CA-KRA コネクター情報の更新
- マスタークローンマシンで、マスター CA の
CS.cfg
ファイルを開き、新しい KRA コネクターのca.connector.KRA.*
行をすべてコピーします。[root@master ~]# vim /var/lib/pki/instance_name/ca/conf/CS.cfg
- クローン CA インスタンスを停止します。以下に例を示します。
[root@clone-ca ~]# systemctl stop pki-tomcatd@instance_name.service
- クローン CA の
CS.cfg
ファイルを開きます。[root@clone-ca ~]# vim /var/lib/pki/instance_name/ca/conf/CS.cfg
- 新しい KRA インスタンスまたはクローンのコネクター情報をコピーします。
ca.connector.KRA.enable=true ca.connector.KRA.host=server-kra.example.com ca.connector.KRA.local=false ca.connector.KRA.nickName=subsystemCert cert-pki-ca ca.connector.KRA.port=10444 ca.connector.KRA.timeout=30 ca.connector.KRA.transportCert=MIIDbD...ZR0Y2zA== ca.connector.KRA.uri=/kra/agent/kra/connector
- クローン CA を起動します。
[root@clone-ca ~]# systemctl start pki-tomcatd@instance_name.service
10.4. OCSP サブシステムのクローン作成
- マスター OCSP を設定し、キーをバックアップします。
- マスター OCSP の
CS.cfg
ファイルで、OCSP.Responder.store.defStore.refreshInSec パラメーターを 21600 以外の番号に設定します。21600 はクローンの設定になります。# vim /etc/instance_name/CS.cfg OCSP.Responder.store.defStore.refreshInSec=15000
pkispawn
ユーティリティーを使用して、クローンサブシステムインスタンスを作成します。OCSP サブシステムのクローン時にpkispawn
で必要な設定ファイルの例は、pkispawn(8) の man ページを参照してください。- クローンが使用する Directory Server インスタンスを再起動します。
# systemctl dirsrv@instance_name.service
注記Directory Server を再起動すると、更新されたスキーマが再読み込みされます。これは、パフォーマンスを適切に行うために必要です。 - クローンインスタンスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
- CRL がマスター OCSP に公開されるように、マスター CA で OCSP 公開を設定します。
- CRL が正常に公開されたら、エージェントページのマスターおよびクローン作成された OCSP の List Certificate Authority リンクの両方を確認します。リストは同一でなければなりません。
- OCSPClient ツールを使用して、マスターおよびクローン作成された Online Certificate Status Manager に OCSP 要求を送信します。このツールは、両方のマネージャーから同じ OCSP 応答を受け取る必要があります。
10.5. KRA サブシステムのクローン作成
- master サブシステムを設定し、キーをバックアップします。
pkispawn
ユーティリティーを使用して、クローンサブシステムインスタンスを作成します。KRA サブシステムのクローン時にpkispawn
で必要な設定ファイルの例は、pkispawn(8) の man ページのInstalling a KRA or TPS clone
セクションを参照してください。- クローンが使用する Directory Server インスタンスを再起動します。
# systemctl dirsrv@instance_name.service
注記Directory Server を再起動すると、更新されたスキーマが再読み込みされます。これは、パフォーマンスを適切に行うために必要です。 - クローンインスタンスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
- KRA エージェントのページに移動します。
- List Requests をクリックします。
- リクエストタイプおよびステータスの Show all requests の表示を選択します。
- クローン作成された KRA とマスター KRA の結果を比較します。結果は同一であることが見なされます。
10.6. TKS サブシステムのクローン作成
- master サブシステムを設定し、キーをバックアップします。
pkispawn
ユーティリティーを使用して、クローンサブシステムインスタンスを作成します。TKS サブシステムのクローン時にpkispawn
で必要な設定ファイルの例は、pkispawn(8) の man ページのInstalling a KRA or TKS clone
セクションを参照してください。- クローンインスタンスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
10.7. マスターとクローンの変換
10.7.1. CA クローンおよびマスターの変換
- マスター CA が実行中の場合は停止します。
- 既存のマスター CA 設定ディレクトリーを開きます。
# cd /var/lib/pki/instance_name/ca/conf
- マスターの
CS.cfg
ファイルを編集し、CRL およびメンテナンススレッド設定をクローンとして設定します。- データベースメンテナンススレッドの制御を無効にします。
ca.certStatusUpdateInterval=0
- データベースのレプリケーション変更の監視を無効にします。
ca.listenToCloneModifications=false
- CRL キャッシュのメンテナンスを無効にします。
ca.crl.IssuingPointId.enableCRLCache=false
- CRL 生成を無効にします。
ca.crl.IssuingPointId.enableCRLUpdates=false
- CRL 要求を新規マスターにリダイレクトするように CA を設定します。
master.ca.agent.host=new_master_hostname master.ca.agent.port=new_master_port
- クローン作成された CA サーバーを停止します。
# systemctl stop pki-tomcatd@instance_name.service
- クローン CA の設定ディレクトリーを開きます。
# cd /etc/instance_name
CS.cfg
ファイルを編集して、クローンを新規マスターとして設定します。ca.crl.
接頭辞で開始する各行を削除します。ca.crl.
で始まる各行を、以前のマスター CACS.cfg
ファイルから、クローン作成された CA のCS.cfg
ファイルにコピーします。- データベースメンテナンススレッドの制御を有効にします。マスター CA のデフォルト値は
600
です。ca.certStatusUpdateInterval=600
- データベースのレプリケーションのモニタリングを有効にします。
ca.listenToCloneModifications=true
- CRL キャッシュのメンテナンスを有効にします。
ca.crl.IssuingPointId.enableCRLCache=true
- CRL 生成を有効にします。
ca.crl.IssuingPointId.enableCRLUpdates=true
- CRL 生成要求のリダイレクト設定を無効にします。
master.ca.agent.host=hostname master.ca.agent.port=port number
- 新規マスター CA サーバーを起動します。
# systemctl start pki-tomcatd@instance_name.service
10.7.2. OCSP クローンの変換
- OCSP マスターが稼働している場合は停止します。
- 既存のマスター OCSP 設定ディレクトリーを開きます。
# cd /etc/instance_name
CS.cfg
を編集し、OCSP.Responder.store.defStore.refreshInSec パラメーターを 21600 にリセットします。OCSP.Responder.store.defStore.refreshInSec=21600
- オンラインのクローン作成された OCSP サーバーを停止します。
# systemctl stop pki-tomcatd@instance_name.service
- クローン作成された OCSP レスポンダーの設定ディレクトリーを開きます。
# cd /etc/instance_name
CS.cfg
ファイルを開き、OCSP.Responder.store.defStore.refreshInSec パラメーターを削除するか、その値をゼロ以外の数字に変更します。OCSP.Responder.store.defStore.refreshInSec=15000
- 新規マスター OCSP レスポンダーサーバーを起動します。
# systemctl start pki-tomcatd@instance_name.service
10.8. 再キーが設定された CA のクローン作成
CS.cfg
設定ファイルに格納されている CA 秘密鍵 ID をチェックし、証明書データベースの鍵が変更されても、これらの鍵 ID は更新されません。
CertUtil::createSelfSignedCert() - CA private key is null!
CS.cfg
ファイルで、秘密鍵 ID をすべて検索します。# grep privkey.id /var/lib/pki/instance_name/ca/conf/CS.cfg cloning.signing.privkey.id =-4d798441aa7230910d4e1c39fa132ea228d5d1bc cloning.ocsp_signing.privkey.id =-3e23e743e0ddd88f2a7c6f69fa9f9bcebef1a60 cloning.subsystem.privkey.id =-c3c1b3b4e8f5dd6d2bdefd07581c0b15529536 cloning.sslserver.privkey.id =3023d30245804a4fab42be209ebb0dc683423a8f cloning.audit_signing.privkey.id=2fe35d9d46b373efabe9ef01b8436667a70df096
- NSS データベースに保存されている現在の秘密鍵 ID をすべて出力し、それを
CS.cfg
ファイルに保存されている秘密鍵 ID と比較します。# certutil -K -d alias certutil: Checking token "NSS Certificate DB" in slot "NSS User Private Key and Certificate Services" Enter Password or Pin for "NSS Certificate DB": < 0> rsa a7b0944b7b8397729a4c8c9af3a9c2b96f49c6f3 caSigningCert cert-ca4-test-master < 1> rsa 6006094af3e5d02aaa91426594ca66cb53e73ac0 ocspSigningCert cert-ca4-test-master < 2> rsa d684da39bf4f2789a3fc9d42204596f4578ad2d9 subsystemCert cert-ca4-test-master < 3> rsa a8edd7c2b5c94f13144cacd99624578ae30b7e43 sslserverCert cert-ca4-test1 < 4> rsa 2fe35d9d46b373efabe9ef01b8436667a70df096 auditSigningCert cert-ca4-test1
この例では、監査署名キーのみが同じで、他は変更になりました。 - ステップ 2 でキーを取得し、これらを署名なし値 (certutil を返すもの) から署名済み Java BigInteger (Certificate System データベースに格納) に変換します。これは、calculator または 例10.1「certutil から BigInteger 変換プログラム」 でスクリプトを使用して実行できます。
- 新しいキーの値を
CS.cfg
ファイルにコピーします。# vim /var/lib/pki/instance_name/ca/conf/CS.cfg cloning.signing.privkey.id =-584f6bb4847c688d65b373650c563d4690b6390d cloning.ocsp_signing.privkey.id =6006094af3e5d02aaa91426594ca66cb53e73ac0 cloning.subsystem.privkey.id =-297b25c640b0d8765c0362bddfba690ba8752d27 cloning.sslserver.privkey.id =-5712283d4a36b0ecebb3532669dba8751cf481bd cloning.audit_signing.privkey.id=2fe35d9d46b373efabe9ef01b8436667a70df096
- 「CA のクローン作成」の説明に従って CA のクローンを作成します。
例10.1 certutil から BigInteger 変換プログラム
Test.java
などの .java
ファイルとして保存します。
import java.math.BigInteger; public class Test { public static byte[] hexStringToByteArray(String s) { int len = s.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i+1), 16)); } return data; } public static void main(String[] args) { byte[] bytes = hexStringToByteArray(args[0]); BigInteger big = new BigInteger (bytes); System.out.println("Result is ==> " + big.toString(16)); } }
# javac Test.java
第11章 その他のインストールオプション
11.1. 軽量サブ CA
11.1.1. 軽量サブ CA の設定
11.1.2. 軽量サブ CA の作成の無効化
# ldapmodify -D "cn=Directory Manager" -W -x -h server.example.com dn: cn=aclResources,o=instance_name changetype: modify delete: resourceACLS resourceACLS: certServer.ca.authorities:create,modify:allow (create,modify) group="Administrators":Administrators may create and modify lightweight authorities delete: resourceACLS resourceACLS: certServer.ca.authorities:delete:allow (delete) group="Administrators":Administrators may delete lightweight authorities
11.1.3. 軽量サブ CA の作成の再有効化
# ldapmodify -D "cn=Directory Manager" -W -x -h server.example.com dn: cn=aclResources,o=instance_name changetype: modify add: resourceACLS resourceACLS: certServer.ca.authorities:create,modify:allow (create,modify) group="Administrators":Administrators may create and modify lightweight authorities resourceACLS: certServer.ca.authorities:delete:allow (delete) group="Administrators":Administrators may delete lightweight authorities
11.2. サブシステムの IPv6 の有効化
op=var_set name=ca_host value=IPv6 address
- Red Hat Certificate System パッケージをインストールします。
/etc/hosts
ファイルに IPv4 アドレスおよび IPv6 アドレスを設定します。以下に例を示します。vim /etc/hosts 192.0.0.0 server.example.com IPv4 address 3ffe:1234:2222:2000:202:55ff:fe67:f527 server6.example.com IPv6 address
- 次に、環境変数をエクスポートして、サーバーの IPv6 アドレスを使用します。以下に例を示します。
export PKI_HOSTNAME=server6.example.com
- pkispawn を実行して、新規インスタンスを作成します。
CS.cfg
ファイル内のサーバーのホスト名の値は、IPv6 アドレスに設定されます。
11.3. LDAP ベースの登録プロファイルの有効化
[CA]
セクションに pki_profile_in_ldap=True
オプションを指定します。
/var/lib/pki/instance_name/ca/profiles/ca/
にそのまま表示されますが、無視されます。
CS.cfg
で以下を変更します。
subsystem.1.class=com.netscape.cmscore.profile.LDAPProfileSubsystem
11.4. TLS 暗号のカスタマイズ
第12章 インストールとクローン作成のトラブルシューティング
- 12.1. インストール
- 12.2. Java コンソール
12.1. インストール
journal
ログを確認します。
journalctl -u pki-tomcatd@instance_name.service
/var/log/pki/instance_name/subsystem_type/debug
でデバッグログファイルを調べます。
catalina.out
ファイルに返されます。
Oct 29, 2010 4:15:44 PM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-9080 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:243) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:408) Caused by: java.lang.UnsatisfiedLinkError: jss4
libnss3.so
が必要です。以下のコマンドでこれを確認します。
ldd /usr/lib64/libjss4.so
libnss3.so
が見つからない場合は、/etc/sysconfig/instance_name
設定ファイルで正しいクラスパスを設定します。次に、systemctl restart pki-tomcatd@instance_name.service コマンドを使用して CA を再起動します。
pkispawn
インタラクティブインストールモードを使用します。
/etc/pki/default.cfg
ファイルへの差異リンクを表す設定ファイルが必要です。pkispawn(8) および pki_default.cfg(5) の man ページを参照してください。
pkispawn
を使用して設定する方法がわかりません。
pkispawn
を使用して設定できません。ただし、pkispawn
で使用する証明書プロファイルを編集してルート CA 証明書を生成する方法はあります。
pkispawn を
実行して新しい CA インスタンスを作成する 前に 行う必要があります。
pkispawn
が使用する元の CA 証明書プロファイルをバックアップします。cp -p /usr/share/pki/ca/conf/caCert.profile /usr/share/pki/ca/conf/caCert.profile.orig
- 設定ウィザードが使用する CA 証明書プロファイルを開きます。
vim /usr/share/pki/ca/conf/caCert.profile
- Validity Default の有効期限を任意の値にリセットします。たとえば、期間を 2 年に変更するには、次のコマンドを実行します。
2.default.class=com.netscape.cms.profile.def.ValidityDefault 2.default.name=Validity Default 2.default.params.range=7200
- プロファイルに新しいデフォルトエントリーを作成し、これをリストに追加して、エクステンションを追加します。たとえば、基本的な制約拡張を追加するには、デフォルトを追加します (この例ではデフォルトの #9)。
9.default.class=com.netscape.cms.profile.def.BasicConstraintsExtDefault 9.default.name=Basic Constraint Extension Constraint 9.default.params.basicConstraintsCritical=true 9.default.params.basicConstraintsIsCA=true 9.default.params.basicConstraintsPathLen=2
次に、新しいデフォルトを使用するデフォルトのリストにデフォルトの番号を追加します。list=2,4,5,6,7,8,
9
- 新規プロファイルを設定したら、
pkispawn
を実行して新規 CA インスタンスを作成し、設定ウィザードに移動します。
journal
、system
、および debug
ログファイルでインスタンスに対して、発生したエラーを確認します。これは、いくつかの一般的なエラーを示していますが、他の方法は多数あります。
エラー #1: LDAP データベースは実行していない
journal
ファイルで、例外が発生することはありません。
java.io.IOException: CS server is not ready to serve. com.netscape.cms.servlet.base.CMSServlet.service(CMSServlet.java:409) javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
5558.main - [29/Oct/2010:11:13:40 PDT] [8] [3] In Ldap (bound) connection pool to host ca1 port 389, Cannot connect to LDAP server. Error: netscape.ldap.LDAPException: failed to connect to server ldap://ca1.example.com:389 (91)
debug
ログは以下のようになります。
[29/Oct/2010:11:39:10][main]: CMS:Caught EBaseException Internal Database Error encountered: Could not connect to LDAP server host ca1 port 389 Error netscape.ldap.LDAPException: failed to connect to server ldap://ca1:389 (91) at com.netscape.cmscore.dbs.DBSubsystem.init(DBSubsystem.java:262)
エラー #2: VPN がアクセスをブロックしている
journal
ログファイルには、HTTP 500 エラーが発生する一連の接続エラーが表示されます。
May 26, 2010 7:09:48 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet services threw exception java.io.IOException: CS server is not ready to serve. at com.netscape.cms.servlet.base.CMSServlet.service(CMSServlet.java:441) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:542) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Thread.java:636)
12.2. Java コンソール
server.xml
の設定が間違っている) か、管理者インターフェイスにアクセスするために間違ったポートが付与されたかのいずれかです。
NSS Cipher Supported '0xff04' java.io.IOException: SocketException cannot read on socket at org.mozilla.jss.ssl.SSLSocket.read(SSLSocket.java:1006) at org.mozilla.jss.ssl.SSLInputStream.read(SSLInputStream.java:70) at com.netscape.admin.certsrv.misc.HttpInputStream.fill(HttpInputStream.java:303) at com.netscape.admin.certsrv.misc.HttpInputStream.readLine(HttpInputStream.java:224) at com.netscape.admin.certsrv.connection.JSSConnection.readHeader(JSSConnection.java:439) at com.netscape.admin.certsrv.connection.JSSConnection.initReadResponse(JSSConnection.java:430) at com.netscape.admin.certsrv.connection.JSSConnection.sendRequest(JSSConnection.java:344) at com.netscape.admin.certsrv.connection.AdminConnection.processRequest(AdminConnection.java:714) at com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.java:623) at com.netscape.admin.certsrv.connection.AdminConnection.sendRequest(AdminConnection.java:590) at com.netscape.admin.certsrv.connection.AdminConnection.authType(AdminConnection.java:323) at com.netscape.admin.certsrv.CMSServerInfo.getAuthType(CMSServerInfo.java:113) at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.java:499) at com.netscape.admin.certsrv.CMSAdmin.run(CMSAdmin.java:548) at com.netscape.admin.certsrv.Console.main(Console.java:1655)
/usr/bin/pkiconsole
ファイルを開き、以下の行を追加します。
============================================ ${JAVA} ${JAVA_OPTIONS} -cp ${CP} -Djava.util.prefs.systemRoot=/tmp/.java -Djava.util.prefs.userRoot=/tmp/java com.netscape.admin.certsrv.Console -s instanceID -D 9:all -a $1 ---------- note: "-D 9:all" is for verbose output on the console. ============================================
パート III. Certificate System の設定
第13章 Certificate System の設定ファイル
CS.cfg
ファイルです。本章では、CS.cfg
ファイルの編集に関する基本情報およびそのルールについて説明します。この章では、パスワードや Web サービスファイルなど、サブシステムで使用されるその他の便利な設定ファイルについても説明します。
13.1. Certificate System サブシステムのファイルおよびディレクトリーの場所
13.1.1. インスタンス固有の情報
ポートタイプ | ポート番号 | 注記 |
---|---|---|
セキュアなポート | 8443 | HTTPS 経由でエンドユーザー、エージェント、および管理者により PKI サービスにアクセスするために使用される主要なポート。 |
セキュアなポート | 8080 | HTTP を介した一部のエンドエンティティー機能のために、安全ではないサーバーにアクセスするために使用されます。たとえば、すでに署名されているため暗号化する必要のない CRL を提供するために使用されます。 |
AJP ポート | 8009 | フロントエンドの Apache プロキシーサーバーから AJP 接続を介してサーバーにアクセスするために使用されます。HTTPS ポートにリダイレクトします。 |
Tomcat ポート | 8005 | Web サーバーによって使用されます。 |
13.1.2. CA サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/ca/ |
設定ディレクトリー | /var/lib/pki/pki-tomcat/ca/conf/[a] |
設定ファイル | /var/lib/pki/pki-tomcat/ca/conf/CS.cfg |
サブシステム証明書 | CA 署名証明書 |
OCSP 署名証明書 (CA の内部 OCSP サービス用) | |
TLS サーバー証明書 | |
監査ログ署名証明書 | |
サブシステム証明書[b] | |
セキュリティーデータベース | /var/lib/pki/pki-tomcat/alias/[c] |
ログファイル | /var/log/pki/pki-tomcat/ca/logs/[d] |
ログのインストール | /var/log/pki/pki-ca-spawn.date.log |
ログのアンインストール | /var/log/pki/pki-ca-destroy.date.log |
監査ログ | /var/log/pki/pki-tomcat/ca/signedAudit/ |
プロファイルファイル | /var/lib/pki/pki-tomcat/ca/profiles/ca/ |
メール通知テンプレート | /var/lib/pki/pki-tomcat/ca/emails/ |
Web サービスファイル | エージェントサービス: /var/lib/pki/pki-tomcat/ca/webapps/ca/agent/ |
管理サービス: /var/lib/pki/pki-tomcat/ca/webapps/ca/admin/ | |
エンドユーザーサービス: /var/lib/pki/pki-tomcat/ca/webapps/ca/ee/ | |
[a]
/etc/pki/pki-tomcat/ca/ のエイリアス
[b]
サブシステム証明書はセキュリティードメインによって常に発行されるため、クライアント認証を必要とするドメインレベルの操作はこのサブシステム証明書をベースにします。
[c]
すべてのサブシステム証明書がインスタンスセキュリティーデータベースに保存されることに注意してください。
[d]
/var/lib/pki/pki-tomcat/ca へのエイリアス
|
13.1.3. KRA サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/kra/ |
設定ディレクトリー | /var/lib/pki/pki-tomcat/kra/conf/[a] |
設定ファイル | /var/lib/pki/pki-tomcat/kra/conf/CS.cfg |
サブシステム証明書 | トランスポート証明書 |
ストレージ証明書 | |
TLS サーバー証明書 | |
監査ログ署名証明書 | |
サブシステム証明書[b] | |
セキュリティーデータベース | /var/lib/pki/pki-tomcat/alias/[c] |
ログファイル | /var/lib/pki/pki-tomcat/kra/logs/ |
ログのインストール | /var/log/pki/pki-kra-spawn-date.log |
ログのアンインストール | /var/log/pki/pki-kra-destroy-date.log |
監査ログ | /var/log/pki/pki-tomcat/kra/signedAudit/ |
Web サービスファイル | エージェントサービス: /var/lib/pki/pki-tomcat/kra/webapps/kra/agent/ |
管理サービス: /var/lib/pki/pki-tomcat/kra/webapps/kra/admin/ | |
[a]
/etc/pki/pki-tomcat/kra/ にリンク
[b]
サブシステム証明書はセキュリティードメインによって常に発行されるため、クライアント認証を必要とするドメインレベルの操作はこのサブシステム証明書をベースにします。
[c]
すべてのサブシステム証明書がインスタンスセキュリティーデータベースに保存されることに注意してください。
|
13.1.4. OCSP サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/ocsp/ |
設定ディレクトリー | /var/lib/pki/pki-tomcat/ocsp/conf/[a] |
設定ファイル | /var/lib/pki/pki-tomcat/ocsp/conf/CS.cfg |
サブシステム証明書 | トランスポート証明書 |
ストレージ証明書 | |
TLS サーバー証明書 | |
監査ログ署名証明書 | |
サブシステム証明書[b] | |
セキュリティーデータベース | /var/lib/pki/pki-tomcat/alias/[c] |
ログファイル | /var/lib/pki/pki-tomcat/ocsp/logs/ |
ログのインストール | /var/log/pki/pki-ocsp-spawn-date.log |
ログのアンインストール | /var/log/pki/pki-ocsp-destroy-date.log |
監査ログ | /var/log/pki/pki-tomcat/ocsp/signedAudit/ |
Web サービスファイル | エージェントサービス: /var/lib/pki/pki-tomcat/ocsp/webapps/ocsp/agent/ |
管理サービス: /var/lib/pki/pki-tomcat/ocsp/webapps/ocsp/admin/ | |
[a]
/etc/pki/pki-tomcat/ocsp/ へのリンク
[b]
サブシステム証明書はセキュリティードメインによって常に発行されるため、クライアント認証を必要とするドメインレベルの操作はこのサブシステム証明書をベースにします。
[c]
すべてのサブシステム証明書がインスタンスセキュリティーデータベースに保存されることに注意してください。
|
13.1.5. TKS サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/tks/ |
設定ディレクトリー | /var/lib/pki/pki-tomcat/tks/conf/[a] |
設定ファイル | /var/lib/pki/pki-tomcat/tks/conf/CS.cfg |
サブシステム証明書 | トランスポート証明書 |
ストレージ証明書 | |
TLS サーバー証明書 | |
監査ログ署名証明書 | |
サブシステム証明書[b] | |
セキュリティーデータベース | /var/lib/pki/pki-tomcat/alias/[c] |
ログファイル | /var/lib/pki/pki-tomcat/tks/logs/ |
ログのインストール | /var/log/pki/pki-tks-spawn-date.log |
ログのアンインストール | /var/log/pki/pki-tks-destroy-date.log |
監査ログ | /var/log/pki/pki-tomcat/tks/signedAudit/ |
Web サービスファイル | エージェントサービス: /var/lib/pki/pki-tomcat/tks/webapps/tks/agent/ |
管理サービス: /var/lib/pki/pki-tomcat/tks/webapps/tks/admin/ | |
[a]
/etc/pki/pki-tomcat/tks/ にリンク
[b]
サブシステム証明書はセキュリティードメインによって常に発行されるため、クライアント認証を必要とするドメインレベルの操作はこのサブシステム証明書をベースにします。
[c]
すべてのサブシステム証明書がインスタンスセキュリティーデータベースに保存されることに注意してください。
|
13.1.6. TPS サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /var/lib/pki/pki-tomcat/tps |
設定ディレクトリー | /var/lib/pki/pki-tomcat/tps/conf/[a] |
設定ファイル | /var/lib/pki/pki-tomcat/tps/conf/CS.cfg |
サブシステム証明書 | トランスポート証明書 |
ストレージ証明書 | |
TLS サーバー証明書 | |
監査ログ署名証明書 | |
サブシステム証明書[b] | |
セキュリティーデータベース | /var/lib/pki/pki-tomcat/alias/[c] |
ログファイル | /var/lib/pki/pki-tomcat/tps/logs/ |
ログのインストール | /var/log/pki/pki-tps-spawn-date.log |
ログのアンインストール | /var/log/pki/pki-tps-destroy-date.log |
監査ログ | /var/log/pki/pki-tomcat/tps/signedAudit/ |
Web サービスファイル | エージェントサービス: /var/lib/pki/pki-tomcat/tps/webapps/tps/agent/ |
管理サービス: /var/lib/pki/pki-tomcat/tps/webapps/tps/admin/ | |
[a]
/etc/pki/pki-tomcat/tps/ にリンク
[b]
サブシステム証明書はセキュリティードメインによって常に発行されるため、クライアント認証を必要とするドメインレベルの操作はこのサブシステム証明書をベースにします。
[c]
すべてのサブシステム証明書がインスタンスセキュリティーデータベースに保存されることに注意してください。
|
13.1.7. 共有 Certificate System サブシステムファイルの場所
ディレクトリーの場所 | コンテンツ | |||||
---|---|---|---|---|---|---|
/var/lib/instance_name | ユーザー固有のディレクトリーの場所およびカスタマイズされた設定ファイル、プロファイル、証明書データベース、Web ファイル、およびサブシステムインスタンスの他のファイルの場所であるメインインスタンスディレクトリーが含まれます。 | |||||
/usr/share/java/pki | Certificate System サブシステムによって共有される Java アーカイブファイルが含まれます。すべてのサブシステムの共有ファイルとともに、サブディレクトリーにサブシステム固有のファイルがあります。
| |||||
/usr/share/pki | Certificate System インスタンスの作成に使用する一般的なファイルとテンプレートが含まれます。すべてのサブシステムの共有ファイルとともに、サブディレクトリーにサブシステム固有のファイルがあります。
| |||||
/usr/bin | Certificate System サブシステムが共有する pkispawn および pkidestroy インスタンス設定スクリプトおよびツール (Java、ネイティブ、およびセキュリティー) が含まれます。 | |||||
/var/lib/tomcat5/common/lib | ローカルの Tomcat Web アプリケーションで共有される Java アーカイブファイルへのリンクが含まれ、Certificate System サブシステムによって共有されます。TPS サブシステムが使用していない。 | |||||
/var/lib/tomcat5/server/lib | ローカルの Tomcat Web サーバーによって使用される Java アーカイブファイルへのリンクが含まれ、Certificate System サブシステムによって共有されます。TPS サブシステムが使用していない。 | |||||
/usr/shared/pki | Tomcat サーバーおよび Certificate System インスタンスが使用するアプリケーションが使用する Java アーカイブファイルが含まれます。TPS サブシステムが使用していない。 | |||||
| TPS サブシステムによって使用される Apache モジュールが含まれます。CA、KRA、OCSP、または TKS サブシステムでは使用されません。 | |||||
| TPS サブシステムが使用する Mozilla LDAP SDK ツール。CA、KRA、OCSP、または TKS サブシステムでは使用されません。 |
13.2. CS.cfg ファイル
CS.cfg
ファイルに保存されます。
CS.cfg
(ASCII ファイル) が作成され、サブシステムの初回インストール時に適切な設定パラメーターが入力されます。インスタンスの機能の変更方法は、サブシステムコンソールで変更することが推奨されます。これが推奨される方法です。管理コンソールで行った変更は、設定ファイルに反映されます。
13.2.1. CS.cfg ファイルの検索
CS.cfg
があります。各サブシステムインスタンスのファイルの内容は、サブシステムの設定方法、追加の設定および設定 (新規プロファイルの追加、セルフテストの有効化など)、サブシステムのタイプによって異なります。
CS.cfg
ファイルは、インスタンスの設定ディレクトリーにあります。
/var/lib/pki/instance_name/subsystem_type/conf
/var/lib/pki/instance_name/ca/conf
13.2.2. 設定ファイルの編集
CS.cfg
ファイルを変更するには、以下の手順に従います。
- サブシステムインスタンスを停止します。
# systemctl stop pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
設定ファイルは、インスタンスの起動時にキャッシュに保存されます。コンソールを介してインスタンスに加えた変更は、ファイルのキャッシュバージョンに変更されます。サーバーが停止または再起動されると、キャッシュに保存されている設定ファイルがディスクに書き込まれます。設定ファイルを編集する前にサーバーを停止すると、サーバーが停止するとキャッシュバージョンの変更が上書きされます。 /var/lib/pki/instance_name/subsystem_type/conf
ディレクトリーを開きます。- テキストエディターで
CS.cfg
ファイルを開きます。 - ファイル内のパラメーターを編集して、変更を保存します。
- サブシステムインスタンスを開始します。
# systemctl start pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@instance_name.service
13.2.3. CS.cfg 設定ファイルの概要
CS.cfg
があります。パラメーターと特定の設定はサブシステムのタイプによって異なりますが、一般的に CS.cfg
ファイルはサブシステムインスタンスの以下の部分を定義します。
- 名前、ポート割り当て、インスタンスディレクトリー、ホスト名などの基本サブシステムインスタンス情報
- ログ
- インスタンスのユーザーディレクトリー (authorization) に対して認証するプラグインおよびメソッド
- インスタンスが属するセキュリティードメイン
- サブシステム証明書
- サブシステムインスタンスによって使用される他のサブシステム
- サブシステムによって使用されるデータベースタイプおよびインスタンス
- TKS のキープロファイル、CA の証明書プロファイル、KRA のキーリカバリーに必要なエージェントなどの PKI 関連タスクの設定
CS.cfg
ファイルは、基本的な parameter=value 形式です。
#comment parameter=value
CS.cfg
ファイルでは、パラメーターブロックの多くに pound (#) 文字でコメントアウトされた記述的なコメントがあります。コメント、空白行、不明なパラメーター、またはスペルミスのパラメーターはサーバーによって無視されます。
例13.1 CS.cfg ファイルのログ設定
log.instance.System._000=## log.instance.System._001=## System Logging log.instance.System._002=## log.instance.System.bufferSize=512 log.instance.System.enable=true log.instance.System.expirationTime=0 log.instance.System.fileName=/var/lib/pki-ca/logs/system log.instance.System.flushInterval=5 log.instance.System.level=3 log.instance.System.maxFileSize=2000 log.instance.System.pluginName=file log.instance.System.rolloverInterval=2592000 log.instance.System.type=system
例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
- ローカライズする必要のある値は、UTF8 文字である必要があります。
CS.cfg
ファイルは、パラメーター値のスラッシュ (/) をサポートします。値にバックスラッシュ (\) が必要な場合は、スラッシュでエスケープする必要があります。つまり、2 つのバックスラッシュを続けて使用する必要があります。
CS.cfg
ファイル設定およびパラメーターのスナップショットです。これらは、完全な参考資料や CS.cfg
ファイルパラメーターの例ではありません。また、各サブシステム設定ファイルで利用可能なパラメーターと使用されるパラメーターは異なりますが、類似しています。
13.2.3.1. サブシステムの基本設定
例13.3 CA の基本インスタンスパラメーター: pkispawn ファイル ca.cfg
[DEFAULT] pki_admin_password=Secret.123 pki_client_pkcs12_password=Secret.123 pki_ds_password=Secret.123 # Optionally keep client databases pki_client_database_purge=False # Separated CA instance name and ports pki_instance_name=pki-ca pki_http_port=18080 pki_https_port=18443 # This Separated CA instance will be its own security domain pki_security_domain_https_port=18443 [Tomcat] # Separated CA Tomcat ports pki_ajp_port=18009 pki_tomcat_server_port=18005
CS.cfg
ファイルに 含まれ ますが、CS.cfg
には 設定 されません。サーバー設定が server.xml
ファイルに設定されます。
CS.cfg
および server.xml
のポートは、稼働中の RHCS インスタンスと一致している必要があります。
13.2.3.2. ログ設定
CS.cfg
ファイルに独自の設定エントリーがあります。
log.instance.Transactions._000=## log.instance.Transactions._001=## Transaction Logging log.instance.Transactions._002=## log.instance.Transactions.bufferSize=512 log.instance.Transactions.enable=true log.instance.Transactions.expirationTime=0 log.instance.Transactions.fileName=/var/log/pki/pki-tomcat/ca/logs/transactions log.instance.Transactions.flushInterval=5 log.instance.Transactions.level=1 log.instance.Transactions.maxFileSize=2000 log.instance.Transactions.pluginName=file log.instance.Transactions.rolloverInterval=2592000 log.instance.Transactions.type=transaction
13.2.3.3. 認証および認可の設定
CS.cfg
ファイルには、ユーザーがサブシステムインスタンス (認証) にアクセスする方法や、認証された各ユーザーの承認 (認証) されるアクションを設定します。
SharedSecret
という名前の JAVA プラグインをインスタンス化する SharedToken
という名前の認証インスタンスを示しています。
auths.impl.SharedToken.class=com.netscape.cms.authentication.SharedSecret auths.instance.SharedToken.pluginName=SharedToken auths.instance.SharedToken.dnpattern= auths.instance.SharedToken.ldap.basedn=ou=People,dc=example,dc=org auths.instance.SharedToken.ldap.ldapauth.authtype=BasicAuth auths.instance.SharedToken.ldap.ldapauth.bindDN=cn=Directory Manager auths.instance.SharedToken.ldap.ldapauth.bindPWPrompt=Rule SharedToken auths.instance.SharedToken.ldap.ldapauth.clientCertNickname= auths.instance.SharedToken.ldap.ldapconn.host=server.example.com auths.instance.SharedToken.ldap.ldapconn.port=636 auths.instance.SharedToken.ldap.ldapconn.secureConn=true auths.instance.SharedToken.ldap.ldapconn.version=3 auths.instance.SharedToken.ldap.maxConns= auths.instance.SharedToken.ldap.minConns= auths.instance.SharedToken.ldapByteAttributes= auths.instance.SharedToken.ldapStringAttributes= auths.instance.SharedToken.shrTokAttr=shrTok
authz.impl.DirAclAuthz.class=com.netscape.cms.authorization.DirAclAuthz authz.instance.DirAclAuthz.ldap=internaldb authz.instance.DirAclAuthz.pluginName=DirAclAuthz authz.instance.DirAclAuthz.ldap._000=## authz.instance.DirAclAuthz.ldap._001=## Internal Database authz.instance.DirAclAuthz.ldap._002=## authz.instance.DirAclAuthz.ldap.basedn=dc=server.example.com-pki-ca authz.instance.DirAclAuthz.ldap.database=server.example.com-pki-ca authz.instance.DirAclAuthz.ldap.maxConns=15 authz.instance.DirAclAuthz.ldap.minConns=3 authz.instance.DirAclAuthz.ldap.ldapauth.authtype=SslClientAuth authz.instance.DirAclAuthz.ldap.ldapauth.bindDN=cn=Directory Manager authz.instance.DirAclAuthz.ldap.ldapauth.bindPWPrompt=Internal LDAP Database authz.instance.DirAclAuthz.ldap.ldapauth.clientCertNickname= authz.instance.DirAclAuthz.ldap.ldapconn.host=localhost authz.instance.DirAclAuthz.ldap.ldapconn.port=11636 authz.instance.DirAclAuthz.ldap.ldapconn.secureConn=true authz.instance.DirAclAuthz.ldap.multipleSuffix.enable=false
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
13.2.3.5. 必要なサブシステムの設定
conn.ca1.clientNickname=subsystemCert cert-pki-tps conn.ca1.hostadminport=server.example.com:8443 conn.ca1.hostagentport=server.example.com:8443 conn.ca1.hostport=server.example.com:9443 conn.ca1.keepAlive=true conn.ca1.retryConnect=3 conn.ca1.servlet.enrollment=/ca/ee/ca/profileSubmitSSLClient conn.ca1.servlet.renewal=/ca/ee/ca/profileSubmitSSLClient conn.ca1.servlet.revoke=/ca/subsystem/ca/doRevoke conn.ca1.servlet.unrevoke=/ca/subsystem/ca/doUnrevoke conn.ca1.timeout=100
13.2.3.6. データベース設定
internaldb._000=## internaldb._000=## internaldb._001=## Internal Database internaldb._002=## internaldb.basedn=o=pki-tomcat-ca-SD internaldb.database=pki-tomcat-ca internaldb.maxConns=15 internaldb.minConns=3 internaldb.ldapauth.authtype=SslClientAuth internaldb.ldapauth.clientCertNickname=HSM-A:subsystemCert pki-tomcat-ca internaldb.ldapconn.host=example.com internaldb.ldapconn.port=11636 internaldb.ldapconn.secureConn=true internaldb.multipleSuffix.enable=false
13.2.3.7. キューの有効化および設定
図13.1 公開キューの有効化

13.2.3.7.1. CS.cfg ファイルを編集して、Queue の有効化と設定
CS.cfg
ファイルを編集してパブリッシュキューを有効にすると、管理者はパブリッシュ操作に使用するスレッドの数やキューページサイズなど、パブリッシュする他のオプションを設定できます。
- 設定ファイルを編集できるように CA サーバーを停止します。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
- CA の
CS.cfg
ファイルを開きます。# vim /var/lib/pki/instance_name/ca/conf/CS.cfg
ca.publish.queue.enable
を true に設定します。パラメーターが存在しない場合は、パラメーターで行を追加します。ca.publish.queue.enable=true
- その他の関連するパブリッシュキューパラメーターを設定します。
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.enable
を false に設定し、ca.publish.queue.maxNumberOfThreads
を 0 に設定すると、公開キューと、発行した証明書の公開に別のスレッドが使用されます。 - CA サーバーを起動します。
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
13.2.3.8. PKI タスクの設定
CS.cfg
ファイルは、すべてのサブシステムに PKI タスクを設定するのに使用されます。パラメーターは、重複のないサブシステムごとに異なります。
kra.noOfRequiredRecoveryAgents=1
CS.cfg
ファイルを確認して、PKI タスク設定について理解してください。ファイル内のコメントは、さまざまなパラメーターが何であるかを学習するための適切なガイドです。
- CA 設定ファイルには、すべての証明書プロファイルおよびポリシー設定と、CRL を生成するルールがリスト表示されます。
- TPS は、さまざまなトークン操作を設定します。
- TKS は、さまざまな鍵タイプからの鍵を取得するプロファイルをリスト表示します。
- OCSP は、さまざまな鍵セットの鍵情報を設定します。
13.2.3.9. CA 発行証明書の DN 属性の変更
属性 | 値のタイプ | オブジェクト識別子 |
---|---|---|
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 |
X500Name.NEW_ATTRNAME.oid=n.n.n.n X500Name.NEW_ATTRNAME.class=string_to_DER_value_converter_class
- 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
13.2.3.9.1. 新規属性またはカスタム属性の追加
- Certificate Manager を停止します。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
/var/lib/pki/cs_instance/conf/
ディレクトリーを開きます。- 設定ファイル
CS.cfg
を開きます。 - 設定ファイルに新しい属性を追加します。たとえば、DirectoryString である MYATTR1、IA5String である MYATTR2、PrintableString である MYATTR3 の 3 つのプロプライエタリー属性を追加するには、設定ファイルの最後に以下の行を追加します。
X500Name.attr.MYATTR1.oid=1.2.3.4.5.6 X500Name.attr.MYATTR1.class=netscape.security.x509.DirStrConverter X500Name.attr.MYATTR2.oid=11.22.33.44.55.66 X500Name.attr.MYATTR2.class=netscape.security.x509.IA5StringConverter X500Name.attr.MYATTR3.oid=111.222.333.444.555.666 X500Name.attr.MYATTR3.class=netscape.security.x509.PrintableConverter
- 変更を保存して、ファイルを閉じます。
- Certificate Manager を再起動します。
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
- 登録ページを再読み込みして変更を確認します。フォームに新しい属性が表示されるはずです。
- 新しい属性が有効になっていることを確認するには、手動登録フォームを使用して証明書を要求します。新しい属性に値を入力します。これにより、証明書のサブジェクト名に表示されることを確認できます。たとえば、以下の値を入力して、新しい属性の値を入力し、サブジェクト名で確認します。
MYATTR1: a_value MYATTR2: a.Value MYATTR3: aValue cn: John Doe o: Example Corporation
- エージェントサービスページを開き、要求を承認します。
- 証明書の発行時に、発行先名を確認します。証明書には、サブジェクト名に新しい属性値が表示されるはずです。
13.2.3.9.2. DER エンコード順序の変更
X500Name.directoryStringEncodingOrder=encoding_list_separated_by_commas
- PrintableString
- IA5String
- UniversalString
- BMPString
- UTF8String
X500Name.directoryStringEncodingOrder=PrintableString,BMPString
- Certificate Manager を停止します。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
/var/lib/pki/cs_instance/conf/
ディレクトリーを開きます。CS.cfg
設定ファイルを開きます。- 設定ファイルにエンコーディング順序を追加します。たとえば、PrintableString と UniversalString の 2 つのエンコーディング値を指定し、エンコーディング順序が最初に PrintableString、次に UniversalString を指定するには、設定ファイルの最後に以下の行を追加します。
X500Name.directoryStringEncodingOrder=PrintableString,UniversalString
- 変更を保存して、ファイルを閉じます。
- Certificate Manager を開始します。
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
- エンコーディングの順序が有効であることを確認するには、手動登録フォームを使用して証明書を登録します。cn には John_Doe を使用します。
- エージェントサービスページを開き、要求を承認します。
- 証明書が発行されたら、dumpasn1 ツールを使用して証明書のエンコーディングを検証します。サブジェクト名の cn コンポーネントは、UniversalString としてエンコードする必要があります。
- cn に John Smith を使用して新しい要求を作成して提出します。サブジェクト名の cn コンポーネントは、PrintableString としてエンコードする必要があります。
13.2.3.10. 異なる証明書を使用するように CA を設定して CRL を署名
- Certificate Manager の CRL 署名証明書を要求します。または、次のようなキーペアを生成できるツールを使用します。たとえば、certutil ツールを使用してキーペアを生成し、キーペアの証明書を要求し、Certificate Manager の証明書データベースに証明書をインストールします。certutil ツールの詳細は http://www.mozilla.org/projects/security/pki/nss/tools/ を参照してください。
- 証明書要求を作成したら、Certificate Manager エンドページを介して証明書を送信し、Manual OCSP Manager Signing Certificate registration プロファイルなどの適切なプロファイルを選択します。このページには、次の形式の URL が含まれます。
https://hostname:port/ca/ee/ca
- 要求が送信されたら、エージェントサービスページにログインします。
- 必要な拡張機能について要求を確認します。CRL 署名証明書には、crlSigning ビットが設定された キー使用法 拡張が含まれている必要があります。
- 要求を承認します。
- CRL 署名証明書が生成されたら、コンソールの システムキーおよび証明書 を使用して、Certificate Manager のデータベースに証明書をインストールします。
- Certificate Manager を停止します。
# systemctl stop pki-tomcatd@instance_name.service
- Certificate Manager の設定を更新して、新しいキーペアと証明書を認識します。
- Certificate Manager インスタンス設定ディレクトリーに移動します。
# cd
/var/lib/pki/instance-name/ca/conf/
CS.cfg
ファイルを開き、以下の行を追加します。ca.crl_signing.cacertnickname=nickname cert-instance_ID ca.crl_signing.defaultSigningAlgorithm=signing_algorithm ca.crl_signing.tokenname=token_name
ニックネーム は、CRL 署名証明書に割り当てられた名前です。instance_ID は、Certificate Manager インスタンスの名前です。インストールされた CA が RSA ベースの CA の場合には、signing_algorithm は SHA256withRSA、SHA384withRSA または SHA512withRSA になります。インストールされている CA が EC ベースの CA の場合、signing_algorithm は SHA256withEC、SHA384withEC、SHA512withEC になります。token_name は、キーペアの生成に使用されるトークンの名前と証明書です。内部/ソフトウェアトークンを使用する場合は、内部キーストレージトークン を値として使用します。たとえば、エントリーは以下のようになります。ca.crl_signing.cacertnickname=crlSigningCert cert-pki-ca ca.crl_signing.defaultSigningAlgorithm=SHAMD512withRSA ca.crl_signing.tokenname=Internal Key Storage Token
- 変更を保存して、ファイルを閉じます。
- Certificate Manager を再起動します。
# systemctl restart pki-tomcatd@instance_name.service
これで、Certificate Manager は CRL 署名証明書を使用して、生成した CRL に署名できるようになりました。
13.2.3.11. CS.cfg のキャッシュからの CRL 生成の設定
- 認証局サーバーを停止します。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
- CA 設定ディレクトリーを開きます。
# cd /var/lib/instance_name/conf/
CS.cfg
ファイルを編集して、enableCRLCache
パラメーターおよびenableCacheRecovery
パラメーターを true に設定します。ca.crl.MasterCRL.enableCRLCache=true ca.crl.MasterCRL.enableCacheRecovery=true
- CA サーバーを起動します。
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
13.2.3.12. CS.cfg での CRL の更新間隔の設定
ca.crl.MasterCRL.updateSchema=3 ca.crl.MasterCRL.enableDailyUpdates=true ca.crl.MasterCRL.enableUpdateInterval=true ca.crl.MasterCRL.autoUpdateInterval=240 ca.crl.MasterCRL.dailyUpdates=1:00 ca.crl.MasterCRL.nextUpdateGracePeriod=0
CS.cfg
ファイルで完全な CRL および delta CRL の設定を行うには、パラメーターを編集する必要があります。
パラメーター | 説明 | 許可される値 |
---|---|---|
updateSchema | 完全な CRL ごとに生成されるデルタ CRL 数の比率を設定します。 | 整数値 |
enableDailyUpdates | 設定された時間に基づいて CRL 更新の設定を有効または無効にします。 | true または false |
enableUpdateInterval | 設定された間隔に基づいて CRL 更新の設定を有効または無効にします。 | true または false |
dailyUpdates | CRL の更新時間を設定します。 | コンマ区切りの時間リスト |
autoUpdateInterval | CRL を更新する間隔を分単位で設定します。 | 整数値 |
nextUpdateGracePeriod | CRL の有効期間に分単位を追加し、公開またはレプリケーション期間全体で CRL が有効である状態にする期間を追加します。 | 整数値 |
refreshInSec | クローン OCSP のスレッドの周期を秒単位で設定して、LDAP で CRL の更新を確認します。 | 整数値 |
手順13.1 CS.cfg での CRL 更新間隔の設定方法
- 認証局サーバーを停止します。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
- CA 設定ディレクトリーに移動します。
# cd /var/lib/instance_name/conf/
CS.cfg
ファイルを編集し、次の行を追加して更新間隔を設定します。ca.crl.MasterCRL.updateSchema=3
デフォルトの間隔は 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
このフィールドは、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
- 環境に応じて以下のパラメーターを設定します。
- OCSP サブシステムなしで CA を実行する場合は、以下を設定します。
ca.crl.MasterCRL.nextUpdateGracePeriod=0
- OCSP サブシステムで CA を実行する場合は、以下を設定します。
ca.crl.MasterCRL.nextUpdateGracePeriod=time_in_minutes
ca.crl.MasterCRL.nextUpdateGracePeriod
パラメーターは時間 (分単位) を定義します。この値は、CA が新しい CRL を OCSP に伝播するのに十分な大きさである必要があります。パラメーターをゼロ以外の値に設定する必要があります。お使いの環境に OCSP クローンが追加されている場合は、以下も設定します。ocsp.store.defStore.refreshInSec=time_in_seconds
ocsp.store.defStore.refreshInSec
パラメーターは、マスター OCSP インスタンスからの LDAP レプリケーション更新を使用して、クローン OCSP インスタンスが CRL 更新に通知する頻度を秒単位で設定します。
パラメーターの詳細は、表13.9「CRL 拡張間隔パラメーター」を参照してください。 - CA サーバーを起動します。
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
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
dailyUpdates
値を 1 つだけ受け入れます。
dailyUpdates
の値と再同期され、スケジュールのドリフトを防ぐことができます。
13.2.3.13. サブシステムのアクセス制御設定の変更
CS.cfg
の authz.evaluateOrder
パラメーターを変更します。
authz.evaluateOrder=deny,allow
web.xml
ファイル (基本 ACL) から評価することも、LDAP データベースを確認すると、より複雑な ACL にアクセスすることもできます。authz.sourceType
パラメーターは、使用する承認のタイプを特定します。
authz.sourceType=web.xml
CS.cfg
ファイルの編集後には、更新された設定を読み込むためにサブシステムを常に再起動します。
13.2.3.14. リクエスト番号とシリアル番号の範囲の設定
/etc/pki/instance_name/subsystem/CS.cfg
ファイルで、リクエストおよびシリアル番号に Certificate System が使用する範囲を指定できます。
dbs.beginRequestNumber=1001001007001 dbs.endRequestNumber=11001001007000 dbs.requestIncrement=10000000000000 dbs.requestLowWaterMark=2000000000000 dbs.requestCloneTransferNumber=10000 dbs.requestDN=ou=ca, ou=requests dbs.requestRangeDN=ou=requests, ou=ranges dbs.beginSerialNumber=1001001007001 dbs.endSerialNumber=11001001007000 dbs.serialIncrement=10000000000000 dbs.serialLowWaterMark=2000000000000 dbs.serialCloneTransferNumber=10000 dbs.serialDN=ou=certificateRepository, ou=ca dbs.serialRangeDN=ou=certificateRepository, ou=ranges dbs.beginReplicaNumber=1 dbs.endReplicaNumber=100 dbs.replicaIncrement=100 dbs.replicaLowWaterMark=20 dbs.replicaCloneTransferNumber=5 dbs.replicaDN=ou=replica dbs.replicaRangeDN=ou=replica, ou=ranges dbs.ldap=internaldb dbs.newSchemaEntryAdded=true
BigInteger
の値をサポートします。
13.2.3.15. TLS クライアント証明書認証を使用するための pkiconsole
要件の設定
CS.cfg
ファイルを編集し、authType
パラメーターを検索して、以下のように設定します。
authType=sslclientauth
13.3. システムパスワードの管理
password.conf
ファイルは、システムパスワードをプレーンテキストで保存します。ただし、一部の管理者は、パスワードファイルを完全に削除して、nuxwdog
が各パスワードの手動入力を要求し、予定外のシャットダウンの場合は自動再起動を保存することを希望します。
password.conf
ファイルを確認します。ファイルが存在する場合は、それらのパスワードを使用して内部 LDAP データベースなどの他のサービスに接続します。そのファイルが存在しない場合は、ウォッチドッグデーモンは、PKI サーバーが起動するのに必要なすべてのパスワードを要求します。
password.conf
ファイルが存在する場合、サブシステムでは必要なパスワードがすべて存在し、適切にフォーマットされたことを前提としています。パスワードが欠落しているか、フォーマットが間違っていると、システムは正しく起動できません。
CS.cfg
ファイルの cms.passwordlist
パラメーターに一覧表示されます。
cms.passwordlist=internaldb,replicationdb,CA LDAP Publishing cms.password.ignore.publishing.failure=true
cms.password.ignore.publishing.failure
パラメーターを使用すると、LDAP 公開ディレクトリーのいずれかへの接続に失敗しても、CA サブシステムが正常に起動できるようになります。
- internal (NSS データベースの場合)
- internaldb (内部 LDAP データベースの場合)
- replicationdb (レプリケーションパスワードの場合)
- パブリッシュ用に外部 LDAP データベースにアクセスするためのパスワード (CA のみ)注記パブリッシャーが
password.conf
ファイルの削除後に設定されている場合は、password.conf
ファイルに書き込まれません。nuxwdog
が設定されていない場合、サーバーは、次回インスタンスを再起動したときに新しい公開パスワードを要求するプロンプトにアクセスできません。 - 外部のハードウェアトークンのパスワード
- internal (NSS データベースの場合)
- tokendbpass (内部 LDAP データベースの場合)
- 外部のハードウェアトークンのパスワード
password.conf
ファイル (デフォルト)- nuxwdog (watchdog)
13.3.1. password.conf ファイルの設定
nuxwdog
ウォッチドッグを使用する必要があります。完全なコンプライアンスに必要なため、nuxwdog
を有効にするには 「Certificate System の Watchdog サービスの使用」 を参照してください。
conf/
ディレクトリーにプレーンテキストファイル password.conf
に保存されます。したがって、テキストエディターを使用して変更できます。
- 内部データベースへのアクセスおよび更新に Certificate System インスタンスによって使用されるバインドパスワード。
- HSM のパスワード。
- 認証ディレクトリーにアクセスするために Certificate System インスタンスによって使用されるバインドパスワード (CMC Shared Token の場合)。
- LDAP 公開ディレクトリーにアクセスして更新するためにサブシステムによって使用されるバインドパスワード。これは、証明書および CRL を LDAP 準拠のディレクトリーに公開するように設定されている場合にのみ必要です。
- サブシステムがレプリケーションデータベースにアクセスするために使用するバインドパスワード。
- TPS インスタンスでは、トークンデータベースへのアクセスおよび更新に使用されるバインドパスワード。
password.conf
ファイルには、サブシステムの秘密鍵を開くのに必要なトークンパスワードも含まれます。
CS.cfg
ファイルに設定されています。
passwordFile=/var/lib/pki/instance_name/conf/password.conf
password.conf
ファイルのパスワードエントリーの形式は、以下のとおりです。
name=password
internal=413691159497
hardware-name=password
hardware-NHSM6000=MyHSM$S8cret
password.conf
ファイルの内容の例:
internal=376577078151 internaldb=secret12 replicationdb=1535106826 hardware-NHSM6000=MyHSM$S8cret
13.3.2. Certificate System の Watchdog サービスの使用
- サーバーの起動時に関連するパスワードを要求し、そのメッセージをキャッシュします。
- クラッシュが原因でサーバーが自動的に再起動される場合に、キャッシュされたパスワードを使用します。
13.3.2.1. Watchdog サービスの有効化
- このホストで Shared Secret 機能を使用する場合は、「CMC 共有シークレット機能の有効化」 の説明に従って Shared Secret 機能を有効にします。
/var/lib/pki/instance_name/conf/
ディレクトリーからserver.xml
およびpassword.conf
ファイルをバックアップします。以下に例を示します。# cp -p /var/lib/pki/instance_name/conf/server.xml /root/ # cp -p /var/lib/pki/instance_name/conf/password.conf /root/
- Certificate System インスタンスのサービスを停止し、無効にします。
# systemctl stop pki-tomcatd@instance_name.service # systemctl disable pki-tomcatd@instance_name.service
- Hardware Security Module (HSM) を使用する場合は、ウォッチドッグサービスを有効にして、ハードウェアトークンのパスワードを入力するようにします。
- ハードウェアトークンの名前を表示します。
# egrep "^hardware-" /var/lib/pki/instance_name/conf/password.conf hardware-HSM_token_name=password
上記の例で強調表示された文字列は、ハードウェアトークン名です。 /var/lib/pki/instance_name/conf/ca/CS.cfg
ファイルにcms.tokenList
パラメーターを追加して、ハードウェアトークンの名前に設定します。以下に例を示します。cms.tokenList=HMS_token_name
- インスタンスのウォッチドッグ設定を有効にします。
# pki-server instance-nuxwdog-enable instance_name
または、すべてのインスタンスでウォッチドッグを有効にします。# pki-server nuxwdog-enable
詳細は、pki-server-nuxwdog(8) の man ページを参照してください。 - デフォルトでは、
nuxwdog
は、/etc/sysconfig/pki-tomcat
ファイルのTOMCAT_USER
変数で設定したユーザーとしてサーバーを起動します。必要に応じて、ユーザーおよびグループを変更する場合は、次のコマンドを実行します。- インスタンスの watchdog
systemd
ユニットファイルを、/etc/systemd/system/
ディレクトリーにコピーします。# cp -p /usr/lib/systemd/system/instance_name-nuxwdog@.service /etc/systemd/system/
注記/etc/systemd/system/
ディレクトリーのユニットファイルの優先度は高く、更新中は置き換えられません。 /etc/pki/instance_name/nuxwdog.conf
ファイルの[Service]
セクションに以下のエントリーを追加します。User new_user_name
systemd
設定をリロードします。# systemctl daemon-reload
- ウォッチドッグを使用する Certificate System サービスを有効にします。
# systemctl enable pki-tomcatd-nuxwdog@instance_name.service
- 必要に応じて、「Certificate System の Watchdog が有効になっていることの確認」を参照してください。
- Certificate System インスタンスを起動するには、以下のコマンドを実行してプロンプトを入力します。
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
13.3.2.2. Watchdog が有効になっている Certificate System の起動および停止
13.3.2.3. Certificate System の Watchdog が有効になっていることの確認
- pki-tomcatd-nuxwdog サービスが有効になっていることを確認します。
# systemctl is-enabled pki-tomcatd-nuxwdog@instance_name.service enabled
- pki-tomcatd サービスが無効になっていることを確認します。
# systemctl is-disabled pki-tomcatd@instance_name.service disabled
/etc/pki/instance_name/server.xml
ファイルで以下を行います。passwordFile
パラメーターがCS.cfg
ファイルを参照することを確認します。以下に例を示します。passwordFile="/var/lib/pki/instance_name/ca/CS.cfg"
passwordClass
パラメーターがcom.netscape.cms.tomcat.NuxwdogPasswordStore
に設定されていることを確認します。passwordClass="com.netscape.cms.tomcat.NuxwdogPasswordStore"
13.3.2.4. Watchdog サービスの無効化
- ウォッチドッグを使用する Certificate System インスタンスのサービスを停止して無効にします。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service # systemctl disable pki-tomcatd-nuxwdog@instance_name.service
- インスタンスのウォッチドッグなしで通常のサービスを有効にします。
# pki-server instance-nuxwdog-disable instance_name
- インスタンスのウォッチドッグ設定を無効にします。
# systemctl enable pki-tomcatd@instance_name.service
詳細は、pki-server-nuxwdog(8) の man ページを参照してください。 password.conf
ファイルを元の場所に復元します。以下に例を示します。# cp /root/password.conf.bak /var/lib/pki/instance_name/conf/password.conf
- Certificate System インスタンスを起動します。
# systemctl start pki-tomcatd@instance_name.service
13.4. Tomcat Engine および Web サービスの設定ファイル
/var/lib/pki/instance_name/conf/server.xml
で Tomcat エンジンの設定を指定します。/usr/share/pki/subsystem_type/webapps/WEB-INF/web.xml
は、このインスタンスが提供する Web サービスの設定を指定します。
13.4.1. Tomcatjss
pki-tomcat/conf
ディレクトリーにある server.xml
ファイルの以下の設定は、Tomcatjss が Certificate System エコシステム全体にどのように適合するかを説明するために使用できます。シークレットポートの Connector エントリーの一部を以下に示します。
<Connector name="Secure" # Info about the socket itself port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" sslProtocol="SSL" scheme="https" secure="true" connectionTimeout="80000" maxHttpHeaderSize="8192" acceptCount="100" maxThreads="150" minSpareThreads="25" enableLookups="false" disableUploadTimeout="true" # Points to our tomcat jss implementation sslImplementationName="org.apache.tomcat.util.net.jss.JSSImplementation" # OCSP responder configuration can be enabled here enableOCSP="true" ocspCacheSize="1000" ocspMinCacheEntryDuration="60" ocspMaxCacheEntryDuration="120" ocspTimeout="10" # A collection of cipher related settings that make sure connections are secure. strictCiphers="true" # The "clientAuth" parameter configures the client authentication scheme # for this server socket. If you set "clientAuth" to "want", the client # authentication certificate is optional. Alternatively, set the # parameter to "required" to configure that the certificate is is mandatory. clientAuth="want" sslVersionRangeStream="tls1_1:tls1_2" sslVersionRangeDatagram="tls1_1:tls1_2" sslRangeCiphers="+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,+TLS_DHE_RSA_WITH_AES_128_CBC_SHA,+TLS_DHE_RSA_WITH_AES_256_CBC_SHA,+TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,+TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 serverCertNickFile="/var/lib/pki/pki-tomcat/conf/serverCertNick.conf" passwordFile="/var/lib/pki/pki-tomcat/conf/password.conf" passwordClass="org.apache.tomcat.util.net.jss.PlainPasswordFile" certdbDir="/var/lib/pki/pki-tomcat/alias" />
server.xml
設定ファイルに、この Connector 設定要素として、この Connector オブジェクトの sslImplementation
プロパティーにプラグインできる tomcatjss 実装へのポインターが含まれるこの Connector 設定要素があります。
13.4.1.1. TLS 暗号の設定
server.xml
ファイルで設定した TLS 暗号は、Red Hat Certificate システムがクライアントおよびサーバーとして機能する際にシステム全体のデフォルトを提供します。これには、サーバーとして機能する場合 (たとえば、Tomcat から HTTPS 接続を提供する場合) およびクライアントとして機能する場合 (たとえば、LDAP サーバーと通信する場合または別の Certificate System インスタンスと通信する場合) が含まれます。
/var/lib/pki/instance_name/conf/server.xml
ファイルにあります。以下のパラメーターは、提供される暗号を制御します。
strictCiphers
を true に設定すると、sslRangeCiphers
に + 記号が付いた暗号のみが有効になります。strictCiphers="true"
デフォルト値 (true) を変更しないでください。sslVersionRangeStream
およびsslVersionRangeDatagram
は、サーバーがサポートする TLS バージョンを設定します。パラメーターのデフォルト値は以下のとおりです。sslVersionRangeStream="tls1_1:tls1_2" sslVersionRangeDatagram="tls1_1:tls1_2"
パラメーターのデフォルト値は変更しないでください。sslRangeCiphers
は、有効または無効にする暗号を設定します。+ 記号の付いた暗号は有効になり、- 記号の付いた暗号は無効になります。RSA 暗号を以下のように設定します。sslRangeCiphers="+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,+TLS_DHE_RSA_WITH_AES_128_CBC_SHA,+TLS_DHE_RSA_WITH_AES_256_CBC_SHA,+TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,+TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
EC 暗号を以下のように設定します。sslRangeCiphers="+TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,+TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,+TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,+TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,+TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
許可される暗号のリストは、「TLS、ECC、および RSA」を参照してください。- RSA で FIPS モードが有効になっているシステムに LunaSA または nCipher の Hardware Security Module (HSM) のいずれかを使用した Certificate System をインストールする場合は、FIPS モードの HSM ではサポートされていないため、以下の暗号を無効にします。
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
13.4.1.1.1. クライアント TLS 暗号の設定
ca.connector.KRA.clientCiphers=your selected cipher list
ca.connector.KRA.clientCiphers=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
tps.connector.ca id.clientCiphers=your selected cipher list tps.connector.kra id.clientCiphers=your selected cipher list tps.connector.tks id.clientCiphers=your selected cipher list
tps.connector.ca1.clientCiphers=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
13.4.1.2. CA での自動失効チェックの有効化
revocationChecking.enabled
パラメーターで、自動失効チェックが有効になります。
revocationChecking.validityInterval
) のみ有効になります。CA がキャッシュにある証明書の状態を再検証する方法がない場合は、有効期間外であっても、以前キャッシュされていた状態が有効とみなされる猶予間隔 (revocationChecking.unknownStateInterval
) があります。
revocationChecking.bufferSize
) に保持されます。バッファー設定がない場合やゼロに設定されている場合は、バッファーは保持されません。つまり、失効チェックの結果はキャッシュされません。この場合、失効チェックはすべて CA 内部データベースに対して直接実行されます。
CS.cfg
設定ファイルにはパラメーター jss.ocspcheck.enable が含まれています。このパラメーターは、Certificate Manager が OCSP を使用して、SSL/TLS クライアントまたはサーバー認証の一部として受信する証明書の失効状態を検証するかどうかを設定します。このパラメーターの値を true に変更すると、Certificate Manager は証明書の Authority Information Access 拡張を読み取り、拡張に指定された OCSP レスポンダーから証明書の失効状態を検証します。
- サブシステムインスタンスを停止します。
# systemctl stop pki-tomcatd@instance_name.service
CS.cfg
ファイルを開きます。# vim
/var/lib/pki/instance-name/ca/conf/CS.cfg
- 失効関連のパラメーターを編集します。
auths.revocationChecking.bufferSize=50 auths.revocationChecking.ca=ca auths.revocationChecking.enabled=true auths.revocationChecking.unknownStateInterval=0 auths.revocationChecking.validityInterval=120
revocationChecking.ca
。OCSP 応答、CA または OCSP レスポンダーを提供するサービスを設定します。revocationChecking.enabled
。失効チェックを設定します。true は、チェックを有効にします。false は チェックを無効にします。デフォルトでは、この機能は有効になっています。revocationChecking.bufferSize
。サーバーがキャッシュで維持する必要のある、最後に確認された証明書の合計数を設定します。たとえば、バッファーサイズが 2 の場合、サーバーはキャッシュでチェックされた最後の 2 つの証明書を保持します。デフォルトでは、サーバーは最後の 50 個の証明書をキャッシュします。revocationChecking.unknownStateInterval
。サーバーが失効ステータスを確認する頻度を設定します。デフォルトの間隔は 0 秒です。unknownStateInterval は、CA に証明書のステータスを確認する手段がない (情報へのアクセスが許可されていない) 場合に、キャッシュ結果が true であると見なされる猶予期間です。revocationChecking.validityInterval
。キャッシュされた証明書が有効とみなされる期間を設定します。間隔を選択するときは慎重に行ってください。たとえば、有効期間が 60 秒の場合、サーバーは 1 分ごとにキャッシュ内の証明書を破棄し、ソースから証明書を取得しようとします。Certificate Manager は内部データベースを使用して、証明書の失効ステータスを取得して確認します。デフォルトの有効期間は 120 秒 (2 分) です。
- Certificate System インスタンスを起動します。
# systemctl start pki-tomcatd@instance_name.service
13.4.1.3. サブシステムの証明書失効チェックの有効化
server.xml
ファイルを編集して、すべてのサブシステムに対して OCSP チェックを有効にできます。エージェントインターフェイスと管理インターフェイスは別々に設定されるため、この設定で両方のセクションを編集する必要があります。
- 証明書ステータスの確認に使用される OCSP または CA の OCSP 署名証明書の名前を取得します。以下に例を示します。
# certutil -L -d
/etc/pki/instance-name/alias
Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI Certificate Authority - Example Domain CT,c,ocspSigningCert cert-pki-ocsp CTu,Cu,Cu
subsystemCert cert-pki-ocsp u,u,u Server-Cert cert-pki-ocsp u,u,u auditSigningCert cert-pki-ocsp u,u,Pu - サブシステムの
server.xml
ファイルを開きます。以下に例を示します。# vim
/etc/pki/instance-name/server.xml
- OCSP 署名証明書がインスタンスのセキュリティーデータベースにない場合は、インポートします。
# certutil -d
/etc/pki/instance-name/alias
-A -n "ocspSigningCert cert-pki-ca" -t "C,," -a -i ocspCert.b64 - OCSP チェックを有効にするには、以下の 3 つの重要なパラメーターがあります。
enableOCSP
: OCSP チェックを有効にするには、true に設定する必要があります。これはグローバル設定です。単一のインターフェイスに設定されている場合には、インスタンスのすべてのインターフェイスに適用されます。ただし、通常は、server.xml
ファイルに記載されている最初のインターフェイスで設定する必要があります。別のインターフェイスの設定は無視されます。ocspResponderURL
: OCSP レスポンダーの URL に OCSP リクエストを送信します。OCSP Manager の場合は、別の OCSP または CA の別の OCSP サービスになります。その他のサブシステムでは、これは常に OCSP または CA の外部 OCSP サービスを参照します。ocspResponderCertNickname
: レスポンスの署名に使用する署名証明書を提供します。CA OCSP サービスの場合、これは CA の OCSP 署名証明書であり、OCSP レスポンダーについては OCSP 署名証明書になります。
その他のパラメーターを使用して OCSP 通信を定義できます。OCSP チェックパラメーターはすべて 表13.10「server.xml の OCSP パラメーター」 に記載されています。エージェントインターフェイスと管理者インターフェイス用に、ファイルには 2 つの異なるセクションがあります。OCSP チェックを有効にして設定するには、両方のセクションに OCSP パラメーターを追加する必要があります。以下に例を示します。例13.4 エージェントインターフェイスの OCSP 設定
<Connector name="Agent" port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="true" sslProtocol="SSL" sslOptions="ssl2=true,ssl3=true,tls=true" ssl3Ciphers="-SSL3_FORTEZZA_DMS_WITH_NULL_SHA, ..." tls3Ciphers="-SSL3_FORTEZZA_DMS_WITH_NULL_SHA, ..." SSLImplementation="org.apache.tomcat.util.net.jss.JSSImplementation"
enableOCSP="true"
ocspResponderURL="http://server.example.com:8443/ca/ocsp"
ocspResponderCertNickname="ocspSigningCert cert-pki-ca 102409a"
ocspCacheSize="1000"
ocspMinCacheEntryDuration="60"
ocspMaxCacheEntryDuration="120"
ocspTimeout="10"
debug="true" serverCertNickFile="/etc/pki/instance-name/serverCertNick.conf" passwordFile="/etc/pki/instance-name/password.conf" passwordClass="org.apache.tomcat.util.net.jss.PlainPasswordFile" certdbDir="/etc/pki/instance-name/alias"/> - 指定の OCSP サービスが CA ではない場合は、OCSP サービスの署名証明書がサブシステムの NSS データベースにインポートする必要があります。これは、コンソールまたは certutil を使用して行うことができます。いずれのオプションも、『Red Hat Certificate System 管理ガイド』 の 『Certificate System データベース への Certificates のインストール』 で説明されています。
- サブシステムを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
パラメーター | 説明 |
---|---|
enableOCSP | サブシステムの OCSP チェックを有効 (または無効) にします。 |
ocspResponderURL | OCSP リクエストが送信される URL を設定します。
OCSP Manager の場合は、別の OCSP または CA の別の OCSP サービスになります。TKS または KRA の場合、これは常に OCSP または CA の外部 OCSP サービスを指します。
|
ocspResponderCertNickname | レスポンダーの署名証明書のニックネームを設定します。OCSP 署名証明書または CA の OCSP 署名証明書のいずれかです。証明書はサブシステムの NSS データベースにインポートされ、適切な信頼設定が設定されている必要があります。 |
ocspCacheSize | キャッシュエントリーの最大数を設定します。 |
ocspMinCacheEntryDuration | 別のフェッチを試行するまでの最小秒数を設定します。たとえば、これが 120 に設定された場合は、最後の有効期間をチェックから 2 分以上経たないと証明書の有効性を再度確認することができません。 |
ocspMaxCacheEntryDuration | 次のフェッチを試みる前に待機する最大秒数を設定します。これにより、有効期間チェック間でウィンドウが大きくなり過ぎないようにできます。 |
ocspTimeout | OCSP 要求のタイムアウト期間を秒単位で設定します。 |
13.4.1.4. AIA 拡張機能の登録プロファイルへの追加
policyset.cmcUserCertSet.5.default.params.authInfoAccessADLocation_0=http://example.com:8080/ocsp/ee/ocsp
13.4.2. セッションのタイムアウト
- TLS セッションのタイムアウト
- HTTP セッションのタイムアウト
13.4.2.1. TLS セッションのタイムアウト
/etc/pki/<instance>/server.xml
ファイルの Secure <Connector> 要素の keepAliveTimeout パラメーターで設定されます。
... <Server> <Service> <Connector name="Secure" ... keepAliveTimeout="300000" ... /> </Service> </Server> ...
/etc/pki/<instance>/server.xml
ファイルを編集し、サーバーを再起動します。
13.4.2.2. HTTP セッションのタイムアウト
/etc/pki/<instance>/web.xml
ファイルの <session-timeout> 要素で設定できます。
... <web-app> <session-config> <session-timeout>30</session-timeout> </session-config> </web-app> ...
/etc/pki/<instance>/web.xml
ファイルを編集し、サーバーを再起動します。
13.4.2.3. PKI Web UI のセッションタイムアウト
13.4.2.4. PKI コンソールのセッションタイムアウト
13.4.2.5. PKI CLI のセッションタイムアウト
13.5. web.xml
13.5.1. web.xml からの未使用インターフェイスの削除 (CA のみ)
web.xml
ファイルに依然として含まれています。ただし、これらの機能は非推奨となり、使用されなくなりました。したがって、CA 設定から削除してセキュリティーを強化することができます。
- CA を停止します。
# systemctl stop pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
- CA の Web ファイルディレクトリーを開きます。以下に例を示します。
# cd /var/lib/pki/instance_name/ca/webapps/ca/WEB-INF
- 現在の
web.xml
ファイルをバックアップします。# cp web.xml web.xml.servlets
web.xml
ファイルを編集し、非推奨となった以下の各サーブレットの <servlet> エントリー全体を削除します。- caadminEnroll
- cabulkissuance
- cacertbasedenrollment
- caenrollment
- caProxyBulkIssuance
たとえば、caadminEnroll サーブレットエントリーを削除します。<servlet> <servlet-name> caadminEnroll </servlet-name> <servlet-class> com.netscape.cms.servlet.cert.EnrollServlet </servlet-class> <init-param><param-name> GetClientCert </param-name> <param-value> false </param-value> </init-param> <init-param><param-name> successTemplate </param-name> <param-value> /admin/ca/EnrollSuccess.template </param-value> </init-param> <init-param><param-name> AuthzMgr </param-name> <param-value> BasicAclAuthz </param-value> </init-param> <init-param><param-name> authority </param-name> <param-value> ca </param-value> </init-param> <init-param><param-name> interface </param-name> <param-value> admin </param-value> </init-param> <init-param><param-name> ID </param-name> <param-value> caadminEnroll </param-value> </init-param> <init-param><param-name> resourceID </param-name> <param-value> certServer.admin.request.enrollment </param-value> </init-param> <init-param><param-name> AuthMgr </param-name> <param-value> passwdUserDBAuthMgr </param-value> </init-param> </servlet>
- サーブレットエントリーを削除したら、該当する <servlet-mapping> エントリーを削除します。
<servlet-mapping> <servlet-name> caadminEnroll </servlet-name> <url-pattern> /admin/ca/adminEnroll </url-pattern> </servlet-mapping>
- エンドエンティティー要求インターフェイスについて、<filter-mapping> エントリーを 3 つ削除します。
<filter-mapping> <filter-name> EERequestFilter </filter-name> <url-pattern> /certbasedenrollment </url-pattern> </filter-mapping> <filter-mapping> <filter-name> EERequestFilter </filter-name> <url-pattern> /enrollment </url-pattern> </filter-mapping> <filter-mapping> <filter-name> EERequestFilter </filter-name> <url-pattern> /profileSubmit </url-pattern> </filter-mapping>
- CA を再度起動します。
# systemctl start pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@instance_name.service
13.6. Web サービスのカスタマイズ
13.6.1. サブシステム Web アプリケーションのカスタマイズ
- テキスト、JavaScript コード、ページレイアウト、CSS フォーマットなどを含む HTML ページ
- サーブレット、パス、セキュリティー制約などを定義する
web.xml
ファイル - PKI ライブラリーへのリンク
/var/lib/pki/pki-tomcat/conf/Catalina/localhost/
のディレクトリーにあるコンテキストファイル (ca.xml
ファイル など) を使用してデプロイされます。
<Context docBase="/usr/share/pki/ca/webapps/ca" crossContext="true" allowLinking="true"> ... </Context>
docBase
は、デフォルトの Web アプリケーションディレクトリー /usr/share/pki/
の場所を参照します。
webapps
ディレクトリーにコピーします。
$ cp -r /usr/share/pki/ca/webapps/ca /var/lib/pki/pki-tomcat/webapps
webapps
ディレクトリーから相対的なカスタム Web アプリケーションのディレクトリーを参照するように、docBase
を変更します。
<Context docBase="ca" crossContext="true" allowLinking="true"> ... </Context>
docBase
を元に戻し、カスタムの Web アプリケーションディレクトリーを削除します。
$ rm -rf /var/lib/pki/pki-tomcat/webapps/ca
13.6.2. Web UI テーマのカスタマイズ
- CSS ファイル (グローバルの外観を決定する)
- ロゴ、アイコン、およびその他のイメージファイル
- ページタイトル、ロゴリンク、タイトルの色などを判断するブランディングプロパティー
/var/lib/pki/pki-tomcat/conf/Catalina/localhost/
ディレクトリーの pki.xml
コンテキストファイルを使用してデプロイされます。
<Context docBase="/usr/share/pki/common-ui" crossContext="true" allowLinking="true"> ... </Context>
/usr/share/pki/
の場所を参照します。
webapps
ディレクトリーにある pki
ディレクトリーにコピーします。
$ cp -r /usr/share/pki/common-ui /var/lib/pki/pki-tomcat/webapps/pki
webapps
ディレクトリーから相対的なカスタムテーマのディレクトリーを参照するように、docBase
を変更します。
<Context docBase="pki" crossContext="true" allowLinking="true"> ... </Context>
docBase
を元に戻して、カスタムテーマのディレクトリーを削除します。
$ rm -rf /var/lib/pki/pki-tomcat/webapps/pki
13.6.3. TPS トークンの状態ラベルのカスタマイズ
/usr/share/pki/tps/conf/token-states.properties
ファイルに保存され、「トークンの状態および遷移ラベル」 で説明されています。
$ cp /usr/share/pki/tps/conf/token-states.properties /var/lib/pki/pki-tomcat/tps/conf
$ rm /var/lib/pki/pki-tomcat/tps/conf/token-states.properties
13.7. アクセスバナーの使用
アプリケーション | バナーが表示されるタイミング |
---|---|
PKI コンソール |
|
Web インターフェイス |
|
pki コマンドラインユーティリティー |
|
[a]
セッションタイムアウトの変更に関する詳細は、「セッションのタイムアウト」を参照してください。
|
例13.5 アクセスバナーの表示時
pki
ユーティリティーを使用している場合にアクセスバナーが表示されるタイミングを示しています。
$ pki cert-show 0x1
WARNING! Access to this service is restricted to those individuals with specific permissions. If you are not an authorized user, disconnect now. Any attempts to gain unauthorized access will be prosecuted to the fullest extent of the law. Do you want to proceed (y/N)? y
-----------------
Certificate "0x1"
-----------------
Serial Number: 0x1
Issuer: CN=CA Signing Certificate,OU=instance_name,O=EXAMPLE
Subject: CN=CA Signing Certificate,OU=instance_name,O=EXAMPLE
Status: VALID
Not Before: Mon Feb 20 18:21:03 CET 2017
Not After: Fri Feb 20 18:21:03 CET 2037
13.7.1. アクセスバナーの有効化
/etc/pki/instance_name/banner.txt
ファイルを作成し、表示するテキストを入力します。
/etc/pki/instance_name/banner.txt
ファイルのテキストは、UTF-8 形式を使用する必要があります。検証するには、「バナーの検証」を参照してください。
13.7.2. アクセスバナーの無効化
/etc/pki/instance_name/banner.txt
ファイルを削除するか、または名前を変更します。以下に例を示します。
# mv /etc/pki/instance_name/banner.txt /etc/pki/instance_name/banner.txt.UNUSED
13.7.3. バナーの表示
# pki-server banner-show -i instance_name
13.7.4. バナーの検証
# pki-server banner-validate -i instance_name --------------- Banner is valid ---------------
13.8. CMC の設定
13.8.1. CMC の仕組み
- 『Red Hat Certificate System 管理ガイド』の『CMC を使用した証明書の発行』
- 『Red Hat Certificate System 管理ガイド』の『証明書 (証明書プロファイル) を発行するルールの作成』
13.8.2. PopLinkWittnessV2
機能の有効化
/var/lib/pki/instance_name/ca/conf/CS.cfg
ファイルで以下のオプションを有効にします。
cmc.popLinkWitnessRequired=true
13.8.4. Web ユーザーインターフェイスの CMCRevoke の有効化
CMCRevoke
ユーティリティーを使用して、Web UI で送信される失効要求を作成する場合は、以下の設定を /var/lib/pki/instance_name/ca/conf/CS.cfg
ファイルに追加します。
cmc.bypassClientAuth=true
13.9. CA EE Portal を使用した証明書の登録のサーバー専用鍵生成の設定
13.9.1. インストール設定
- まず、CA を停止します。
# systemctl stop pki-tomcatd@ca_instance_name.service
以下に例を示します。# systemctl stop pki-tomcatd@pki-ca.service
- KRA トランスポート証明書を検索し、ファイルにエクスポートします。
# grep "kra.transport.cert=" /var/lib/pki/kra_instance_name/kra/conf/CS.cfg | sed 's/kra.transport.cert=//' > kra transport cert file
以下に例を示します。# grep "kra.transport.cert=" /var/lib/pki/pki-kra/kra/conf/CS.cfg | sed 's/kra.transport.cert=//' > /tmp/kraTransport.cert
- CA の
CS.cfg
ファイルで指定されているニックネームを使用して、KRA トランスポート証明書を CA の nssdb にインポートします。- トランスポート証明書のニックネームをリスト表示します。
grep "ca.connector.KRA.transportCertNickname" /var/lib/pki/ca_instance_name/ca/conf/CS.cfg
以下に例を示します。# grep "ca.connector.KRA.transportCertNickname" /var/lib/pki/pki-ca/ca/conf/CS.cfg ca.connector.KRA.transportCertNickname=KRA transport cert
- 前の手順に記載されているニックネームを使用して証明書をインポートします。
certutil -d /var/lib/pki/ca_instance_name/alias -A -t “,,” -n transportNickName -i kra transport cert file
以下に例を示します。# certutil -d /var/lib/pki/pki-ca/alias -A -t “,,” -n "KRA transport cert" -i /tmp/kraTransport.cert
- CA を起動します。
# systemctl start pki-tomcatd@ca_instance_name.service
以下に例を示します。# systemctl start pki-tomcatd@pki-ca.service
13.9.2. プロファイル設定
caServerKeygen_UserCert
および caServerKeygen_DirUserCert
の 2 つのデフォルトプロファイルがデフォルトで提供されます。ただし、正しい入力、出力、およびポリシー設定を持つプロファイルは、サーバー側の keygen プロファイルに切り替えることができます。
入力
input.i1.class_id=serverKeygenInputImpl
出力
output.o1.class_id=pkcs12OutputImpl
Policyset
policyset.userCertSet.3.constraint.class_id=keyConstraintImpl policyset.userCertSet.3.constraint.name=Key Constraint policyset.userCertSet.3.constraint.params.keyType=- policyset.userCertSet.3.constraint.params.keyParameters=1024,2048,3072,4096,nistp256,nistp384,nistp521 policyset.userCertSet.3.default.class_id=serverKeygenUserKeyDefaultImpl policyset.userCertSet.3.default.name=Server-Side Keygen Default policyset.userCertSet.3.default.params.keyType=RSA policyset.userCertSet.3.default.params.keySize=2048 policyset.userCertSet.3.default.params.enableArchival=true
認証
- caServerKeygen_UserCert.cfg"auth.class_id=" への空の値が含まれます。つまり、このプロファイルを介した登録要求には CA エージェントからの承認が必要になります。
- caServerKeygen_DirUserCert.cfgこれには、"auth.instance_id=UserDirEnrollment" が含まれます。これは、ユーザーが LDAP uid/password 認証を渡すのに必要なことを意味します。このような認証は、CA エージェントからの要求ごとの承認を必要としないため、自動証明書として見なされます。caServerKeygen_DirUserCert.cfg プロファイルで説明されるように、auth.instance_id ディレクティブを互換性のある認証プラグインクラスに設定すると、自動承認を設定できます。
CS.cfg
ファイルでこのような設定の例を、以下に示します。auths.instance.UserDirEnrollment.dnpattern= auths.instance.UserDirEnrollment.ldap.basedn=ou=People,dc=example,dc=com auths.instance.UserDirEnrollment.ldap.ldapconn.host=host.example.com auths.instance.UserDirEnrollment.ldap.ldapconn.port=389 auths.instance.UserDirEnrollment.ldap.ldapconn.secureConn=false auths.instance.UserDirEnrollment.ldap.maxConns= auths.instance.UserDirEnrollment.ldap.minConns= auths.instance.UserDirEnrollment.ldapByteAttributes= auths.instance.UserDirEnrollment.ldapStringAttributes=mail auths.instance.UserDirEnrollment.pluginName=UidPwdDirAuth
第14章 証明書/キー暗号トークンの管理
暗号トークンについて
14.1. certutil および PKICertImport
14.1.1. certutil の基本的な使用法
[options]
14.1.2. PKICertImport の基本的な使用方法
[options]
14.1.3. certutil の一般的なコマンド
certutil -A
certutil -V
certutil -D
certutil -M
certutil -L
証明書のニックネーム
|
Trust Attributes |
---|---|
caSigningCert pki-ca1
|
CT、C、C
|
14.1.4. 一般的な certutil および PKICertImport オプション
-n <nickname>
-d <directory>
-t <trust>
- TLS の信頼
- メールの信頼
- オブジェクト署名の信頼
- c は、この証明書が認証局 (CA) である必要があります。
- C は、サーバー証明書に署名するための信頼できる認証局であることを示しています (C は小文字の c であるため、両方を指定する必要はありません)。
- T は、この証明書が、クライアント証明書に署名するための信頼できる機関であることを示しています (T は小文字の c であるため、T と c の両方を指定する必要はありません)。
- これにより、この証明書が別の証明書に署名し、それがオブジェクト署名に使用されると、その証明書が無効になります。
- certutil -L -d
- 各証明書のニックネームがリスト表示され、行の最後に信頼フラグが指定されます。
-h <HSM>
-e
-e
オプションを理解しません。
-a
-i <certificate>
-u <usage>
- -u C は、クライアントの TLS 証明書検証を表します。これは証明書を許可しますが、有効期限と署名を確認することに注意してください。
- -u V は、サーバーの TLS 証明書検証を表します。これにより CA 証明書が拒否され、有効期限と署名を確認することに注意してください。
- -u L は、CA TLS 証明書の検証に使用します。これにより信頼フラグが検証され (c が存在するか確認)、鍵の使用方法を確認して、キーが CA キーであることを確認します。これは、有効期限および署名も確認します。
- -u O は、OCSP ステータスレスポンダー証明書を検証することを表します。これにより、期限切れと署名を確認することに注意してください。
- -u J オブジェクト署名証明書の検証を表します。これにより、期限切れと署名を確認することに注意してください。
14.2. ルート証明書のインポート
- cd /path/to/nssdb
ca_root.crt
という名前のファイルにすでに存在していることを前提とします。お好みのシナリオに合わせて、正しい名前とパスを置き換えます。
ルート証明書をインポートするには、次のコマンドを実行します。
- PKICertImport -d . -n "CA Root" -t "CT,C,C" -a -i ca_root.crt -u L コマンドを実行します。このコマンドは、ルート証明書を NSS DB に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。証明書は通常、有効期限が切れるか、または CA 証明書であるかから検証に失敗します。したがって、証明書ファイルが正しいことを確認し、最新の状態にしてください。発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
14.3. 中間証明書チェーンのインポート
- cd /path/to/nssdb
ca_sub_<num>.crt
という名前のファイル (例:ca_sub_1.crt
、ca_sub_2.crt
など) を想定しています。デプロイメントに合わせて、証明書の名前とパスを置き換えます。
fullchain.crt
、fullchain.pem
、または同様の名前の単一ファイルが与えられ、それには複数の証明書が含まれている場合、各ブロック (----BEGIN CERTIFICATE----- マーカーと -----END CERTIFICATE----- マーカーと、その間のテキストを含む) を独自のファイルにコピーして、それを上記のフォーマットに分割します。最初のものは ca_sub_<num>.crt
という名前で、最後のコンポーネントは service.crt
という名前のサーバーの証明書です。サーバー証明書については、以降のセクションで説明します。
チェーン内のすべての中間証明書に対して、以下を行います。
- Execute PKICertImport -d . -n "CA Sub $num" -t "CT,C,C" -a -i ca_sub_$num.crt -u Lこのコマンドは、中間 CA 証明書を NSS DB に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
14.4. HSM への証明書のインポート
- cd /path/to/nssdb for example cd /var/lib/pki/pki-ca/alias
- すべての PKI サブスキームの TLS サーバー証明書については、サーバー証明書の手順 に従います。
- サブシステムの監査署名証明書については、以下の手順に従って オブジェクト署名証明書 を検証してください。
- CA サブシステムの署名証明書については、上記の手順に従って 中間証明書チェーン をインポートして検証しますが、caSigningCert でのみ行います。
- CA サブシステムの OCSP 署名証明書については、以下の手順に従って OCSP 証明書 を検証してください。
- PKI サブシステムのその他のシステム証明書については、Client Certificate の手順 に従います。
HSM にサーバー証明書をインポートするには、以下を行います。
- PKICertImport -d . -h HSM -n "host.name.example.com" -t "," -a -i service.crt -u V を実行します。このコマンドは、サーバー証明書を検証して HSM にインポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。通常、親証明書の有効期限または CA 信頼チェーンの欠落 (中間証明書の欠落や CA ルートの欠落など) が原因で、証明書の検証に失敗します。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
HSM にクライアント証明書をインポートするには、以下を実行します。
- PKICertImport -d . -h HSM -n "client name" -t "," -a -i client.crt -u C を実行します。このコマンドは、クライアント証明書を HSM に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
HSM にオブジェクト署名証明書をインポートするには、以下を実行します。
- PKICertImport -d . -h HSM -n "certificate name" -t ",,P" -a -i objectsigning.crt -u J を実行します。このコマンドは、オブジェクト署名証明書を HSM に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
HSM で OCSP 応答署名証明書をインポートするには、次を実行します。
- PKICertImport -d . -h HSM -n "certificate name" -t ",," -a -i ocsp.crt -u O を実行します。このコマンドは、OCSP レスポンダー証明書を HSM に検証し、インポートします。エラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
14.5. NSS データベースでの証明書のインポート
- 任意のサブシステムの auditSigningCert で、オブジェクトの署名証明書 の検証に以下の手順に従ってください。
- CA サブシステムの caSigningCert については、中間証明書チェーン をインポートして検証するための上記の手順にいますが、caSigningCert でのみ行います。
- CA サブシステムの ocspSigningCert については、以下の手順に従って OCSP 証明書 を検証する必要があります。
- ユーザーのクライアントまたは S/MIME 証明書の場合は、Client Certificate の手順 を実行します。
NSS データベースへのクライアント証明書のインポート
- NSS データベースディレクトリーに移動します。以下に例を示します。
# cd /path/to/nssdb/
- ルート証明書をまだインポートおよび信頼していない場合は、インポートして信頼します。詳細は、「ルート証明書のインポート」 を参照してください。
- 中間証明書をインポートおよび検証していない場合は、中間証明書をインポートおよび検証します。詳細は、「中間証明書チェーンのインポート」 を参照してください。
- クライアント証明書を検証し、インポートします。
#
PKICertImport -d . -n "client name" -t ",," -a -i client.crt -u Cエラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
オブジェクト署名証明書のインポート
- NSS データベースディレクトリーに移動します。以下に例を示します。
# cd /path/to/nssdb/
- ルート証明書をまだインポートおよび信頼していない場合は、インポートして信頼します。詳細は、「ルート証明書のインポート」 を参照してください。
- 中間証明書をインポートおよび検証していない場合は、中間証明書をインポートおよび検証します。詳細は、「中間証明書チェーンのインポート」 を参照してください。
- オブジェクト署名証明書を検証し、インポートします。
#
PKICertImport -d . -n "certificate name" -t ",,P" -a -i objectsigning.crt -u Jエラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
OCSP レスポンダーのインポート
- NSS データベースディレクトリーに移動します。以下に例を示します。
# cd /path/to/nssdb/
- ルート証明書をまだインポートおよび信頼していない場合は、インポートして信頼します。詳細は、「ルート証明書のインポート」 を参照してください。
- 中間証明書をインポートおよび検証していない場合は、中間証明書をインポートおよび検証します。詳細は、「中間証明書チェーンのインポート」 を参照してください。
- OCSP レスポンダー証明書を検証およびインポートします。
#
PKICertImport -d . -n "certificate name" -t ",," -a -i ocsp.crt -u Oエラーメッセージが出力されず、戻りコードが 0 の場合は、検証が成功します。戻りコードを確認するには、上記のコマンド実行後すぐに echo $? を実行します。ほとんどの場合は、視覚的なエラーメッセージが出力されます。検証に成功しなかった場合は、発行者に連絡し、すべての中間証明書およびルート証明書がシステムに存在することを確認します。
第15章 証明書プロファイルの設定
15.1. ファイルシステムで直接証明書プロファイルの作成および編集
/ca/profiles/ca/
に保存されます (例: /var/lib/pki/pki-ca/ca/profiles/ca/
)。ファイル名は profile_name.cfg
です。プロファイルルールのパラメーターはすべて、これらのプロファイル設定ファイルで設定または変更できます。プロファイルルールは、入力、出力、認証、承認、デフォルト、および制約を使用できます。
*.profile
という名前の /var/lib/pki/instance_name/ca/conf
ディレクトリーにあります。
15.1.1. CA 以外のシステム証明書プロファイルの設定
15.1.1.1. プロファイル設定パラメーター
policyset.cmcUserCertSet.6.constraint.class_id=noConstraintImpl policyset.cmcUserCertSet.6.constraint.name=No Constraint policyset.cmcUserCertSet.6.default.class_id=userExtensionDefaultImpl policyset.cmcUserCertSet.6.default.name=User Supplied Key Default policyset.cmcUserCertSet.6.default.params.userExtOID=2.5.29.15
パラメーター | 説明 |
---|---|
desc | エンドエンティティーページに表示される証明書プロファイルのフリーテキストの説明を提供します。たとえば、desc=This certificate profile is for enrolling server certificates with agent authentication. です。 |
enable | プロファイルを有効にするかどうかを設定します。したがって、エンドエンティティーページからアクセスできます。たとえば、enable=true とします。 |
auth.instance_id | プロファイルを介して送信された証明書要求の認証に使用する認証マネージャープラグインを設定します。自動登録では、認証に成功すると CA は証明書をすぐに発行します。認証が失敗した場合、または認証プラグインが指定されていない場合、リクエストはキューに入れられ、エージェントによって手動で承認されます。たとえば、auth.instance_id=CMCAuth となります。認証方法は、CS.cfg から登録された認証インスタンスの 1 つである必要があります。 |
authz.acl |
承認制約を指定します。最も一般的なものは、グループ評価 ACL を設定するのに使用されます。たとえば、この caCMCUserCert パラメーターでは、CMC 要求の署名者が Certificate Manager Agents グループに属している必要があります。
authz.acl=group="Certificate Manager Agents"
ディレクトリーベースのユーザー証明書の更新では、このオプションを使用して、元の要求元と現在の認証ユーザーが同じであることを確認します。
エンティティーは、承認を評価する前に、認証 (バインド、または基本的にシステムへのログイン) を行う必要があります。認証メソッドは、
CS.cfg から登録された認証インスタンスの 1 つである必要があります。
|
name | プロファイルの名前を指定します。たとえば、name=Agent-Authenticated サーバー証明書の登録 などです。この名前は、エンドユーザーの登録または更新ページに表示されます。 |
input.list | 名前でプロファイルに許可されている入力をリスト表示します。たとえば、input.list=i1,i2 です。 |
input.input_id.class_id | 入力 ID (input.list にリストされている入力の名前) によって入力の Java クラス名を指定します。たとえば、input.i1.class_id=cmcCertReqInputImpl です。 |
output.list | プロファイルの可能な出力形式を名前でリストします。たとえば、output.list=o1 です。 |
output.output_id.class_id | output.list で指定された出力形式の Java クラス名を指定します。たとえば、output.o1.class_id=certOutputImpl です。 |
policyset.list | 設定したプロファイルルールをリスト表示します。二重証明書の場合は、1 セットのルールが署名キーに適用され、もう 1 セットが暗号化キーに適用されます。1 つの証明書で使用するプロファイルは、1 つのプロファイルルールセットだけです。たとえば、policyset.list=serverCertSet です。 |
policyset.policyset_id.list | プロファイル用に設定されたポリシーセット内のポリシーを、評価する必要のある順序でポリシー ID 番号別にリスト表示します。たとえば、policyset.serverCertSet.list=1,2,3,4,5,6,7,8 のようになります。 |
policyset.policyset_id.policy_number.constraint.class_id | プロファイルルールで設定されたデフォルトに設定された制約プラグインの Java クラス名を指定します。たとえば、policyset.serverCertSet.1.constraint.class_id=subjectNameConstraintImpl です。 |
policyset.policyset_id.policy_number.constraint.name | 制約のユーザー定義の名前を指定します。たとえば、policyset.serverCertSet.1.constraint.name=Subject Name Constraint などです。 |
policyset.policyset_id.policy_number.constraint.params.attribute | 制約に許可される属性値を指定します。設定可能な属性は、制約の種類によって異なります。たとえば、policyset.serverCertSet.1.constraint.params.pattern=CN=.* です。 |
policyset.policyset_id.policy_number.default.class_id | プロファイルルールに、デフォルトセットの java クラス名を指定します。たとえば、policyset.serverCertSet.1.default.class_id=userSubjectNameDefaultImpl です。 |
policyset.policyset_id.policy_number.default.name | デフォルトのユーザー定義の名前を指定します。たとえば、policyset.serverCertSet.1.default.name=Subject Name Default です。 |
policyset.policyset_id.policy_number.default.params.attribute | デフォルトに対して許可される属性の値を指定します。設定可能な属性は、デフォルトの種類によって異なります。たとえば、policyset.serverCertSet.1.default.params.name=CN=(Name)$request.requestor_name$ です。 |
15.1.1.2. ファイルシステムで直接証明書拡張機能の変更
policyset.cmcUserCertSet.6.constraint.class_id=keyUsageExtConstraintImpl
policyset.cmcUserCertSet.6.constraint.name=Key Usage Extension Constraint
policyset.cmcUserCertSet.6.constraint.params.keyUsageCritical=true
policyset.cmcUserCertSet.6.constraint.params.keyUsageCrlSign=false
policyset.cmcUserCertSet.6.constraint.params.keyUsageDataEncipherment=false
policyset.cmcUserCertSet.6.constraint.params.keyUsageDecipherOnly=false
policyset.cmcUserCertSet.6.constraint.params.keyUsageDigitalSignature=true
policyset.cmcUserCertSet.6.constraint.params.keyUsageEncipherOnly=false
policyset.cmcUserCertSet.6.constraint.params.keyUsageKeyAgreement=false
policyset.cmcUserCertSet.6.constraint.params.keyUsageKeyCertSign=false
policyset.cmcUserCertSet.6.constraint.params.keyUsageKeyEncipherment=true
policyset.cmcUserCertSet.6.constraint.params.keyUsageNonRepudiation=true
policyset.cmcUserCertSet.6.default.class_id=keyUsageExtDefaultImpl policyset.cmcUserCertSet.6.default.name=Key Usage Default policyset.cmcUserCertSet.6.default.params.keyUsageCritical=true policyset.cmcUserCertSet.6.default.params.keyUsageCrlSign=false policyset.cmcUserCertSet.6.default.params.keyUsageDataEncipherment=false policyset.cmcUserCertSet.6.default.params.keyUsageDecipherOnly=false policyset.cmcUserCertSet.6.default.params.keyUsageDigitalSignature=true policyset.cmcUserCertSet.6.default.params.keyUsageEncipherOnly=false policyset.cmcUserCertSet.6.default.params.keyUsageKeyAgreement=false policyset.cmcUserCertSet.6.default.params.keyUsageKeyCertSign=false policyset.cmcUserCertSet.6.default.params.keyUsageKeyEncipherment=true policyset.cmcUserCertSet.6.default.params.keyUsageNonRepudiation=true
policyset.cmcUserCertSet.6.default.class_id=userExtensionDefaultImpl policyset.cmcUserCertSet.6.default.name=User Supplied Key Default policyset.cmcUserCertSet.6.default.params.userExtOID=2.5.29.15
15.1.1.2.1. 主な使用方法および拡張キー使用の一貫性
目的/拡張キー使用方法 | 主な使用方法 |
---|---|
TLS サーバー認証コマンド
id-kp-serverAuth
| digitalSignature、keyEncipherment、または KeyAgreement |
TLS クライアント (相互) 認証
id-kp-clientAuth
| digitalSignature、keyEncipherment、および/または KeyAgreement |
コード署名
id-kp-codeSigning
| digitalSignature |
メール保護
id-kp-emailProtection
| digitalSignature、nonRepudiationおよび/または (keyEncipherment またはkeyAgreement) |
OCSP レスポンスの署名
id-kp-OCSPSigning
| KeyAgreement および/または nonRepudiation |
- OCSP 応答署名を目的とした登録プロファイルには、拡張キーの使用法 id-kp-OCSPSigning が含まれていますが、keyEncipherment キー使用法ビットとともに使用されます。
policyset.ocspCertSet.6.default.class_id=keyUsageExtDefaultImpl policyset.ocspCertSet..6.default.name=Key Usage Default policyset.ocspCertSet..6.default.params.keyUsageCritical=true policyset.ocspCertSet..6.default.params.keyUsageCrlSign=false policyset.ocspCertSet..6.default.params.keyUsageDataEncipherment=false policyset.ocspCertSet..6.default.params.keyUsageDecipherOnly=false policyset.ocspCertSet..6.default.params.keyUsageDigitalSignature=true policyset.ocspCertSet..6.default.params.keyUsageEncipherOnly=false policyset.ocspCertSet..6.default.params.keyUsageKeyAgreement=false policyset.ocspCertSet..6.default.params.keyUsageKeyCertSign=false policyset.ocspCertSet..6.default.params.keyUsageKeyEncipherment=true policyset.ocspCertSet..6.default.params.keyUsageNonRepudiation=true policyset.ocspCertSet.7.constraint.params.exKeyUsageOIDs=1.3.6.1.5.5.7.3.9 policyset.ocspCertSet.7.default.class_id=extendedKeyUsageExtDefaultImpl policyset.ocspCertSet.7.default.name=Extended Key Usage Default policyset.ocspCertSet.7.default.params.exKeyUsageCritical=false policyset.ocspCertSet.7.default.params.exKeyUsageOIDs=1.3.6.1.5.5.7.3.9
- TLS サーバー認証の目的を目的とする登録プロファイルは、拡張キー usage id-kp-serverAuth ですが、CRL 署名鍵の使用ビットを使用します。
policyset.serverCertSet.6.default.name=Key Usage Default policyset.serverCertSet.6.default.params.keyUsageCritical=true policyset.serverCertSet.6.default.params.keyUsageDigitalSignature=true policyset.serverCertSet.6.default.params.keyUsageNonRepudiation=false policyset.serverCertSet.6.default.params.keyUsageDataEncipherment=true policyset.serverCertSet.6.default.params.keyUsageKeyEncipherment=false policyset.serverCertSet.6.default.params.keyUsageKeyAgreement=true policyset.serverCertSet.6.default.params.keyUsageKeyCertSign=false policyset.serverCertSet.6.default.params.keyUsageCrlSign=true policyset.serverCertSet.6.default.params.keyUsageEncipherOnly=false policyset.serverCertSet.6.default.params.keyUsageDecipherOnly=false policyset.cmcUserCertSet.7.default.class_id=extendedKeyUsageExtDefaultImpl policyset.cmcUserCertSet.7.default.name=Extended Key Usage Extension Default policyset.cmcUserCertSet.7.default.params.exKeyUsageCritical=false policyset.serverCertSet.7.default.params.exKeyUsageOIDs=1.3.6.1.5.5.7.3.1
- 『Red Hat Certificate System 管理ガイド』 の 『主な使用拡張機能の制約』 セクション
- 『Red Hat Certificate System 管理ガイド』 の 『keyUsage』 セクション
- 『Red Hat Certificate System 管理ガイド』 の 『主な使用拡張機能の制約』 セクション
- 『Red Hat Certificate System 管理ガイド』 の 『extKeyUsage』 セクション
15.1.1.2.2. クロスペアプロファイルの設定
- 証明書ポリシー拡張 (
CertificatePoliciesExtension
) は、証明書が該当する条件を指定します。これは、多くの場合、PKI ごとに一意です。 - ポリシーマッピング拡張機能 (
PolicyMappingExtension
) は、2 つの環境の証明書プロファイルをマッピングすることにより、2 つの PKI 間の信頼をシールします。
policyset.userCertSet.p7.constraint.class_id=noConstraintImpl policyset.userCertSet.p7.constraint.name=No Constraint policyset.userCertSet.p7.default.class_id=certificatePoliciesExtDefaultImpl policyset.userCertSet.p7.default.name=Certificate Policies Extension Default policyset.userCertSet.p7.default.params.Critical=false policyset.userCertSet.p7.default.params.PoliciesExt.num=1 policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.enable=true policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.policyId=1.1.1.1 policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.CPSURI.enable=false policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.CPSURI.value= policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.enable=false policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.explicitText.value= policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.noticeReference.noticeNumbers= policyset.userCertSet.p7.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.noticeReference.organization=
Identifier: Certificate Policies: - 2.5.29.32 Critical: no Certificate Policies: Policy Identifier: 1.1.1.1
15.1.1.3. ファイルシステムへのプロファイル入力の直接追加
profiles/ca
ディレクトリーにある証明書プロファイル設定ファイルには、その特定の証明書プロファイルフォームの入力情報が含まれます。入力は、エンドエンティティーページ登録フォームのフィールドです。そのプロファイルに含まれる入力を一覧表示するパラメーター input.list があります。その他のパラメーターは入力を定義します。これらは input.ID 形式で識別されます。たとえば、これにより一般的な入力がプロファイルに追加されます。
input.list=i1,i2,i3,i4 ... input.i4.class_id=genericInputImpl input.i4.params.gi_display_name0=Name0 input.i4.params.gi_display_name1=Name1 input.i4.params.gi_display_name2=Name2 input.i4.params.gi_display_name3=Name3 input.i4.params.gi_param_enable0=true input.i4.params.gi_param_enable1=true input.i4.params.gi_param_enable2=true input.i4.params.gi_param_enable3=true input.i4.params.gi_param_name0=gname0 input.i4.params.gi_param_name1=gname1 input.i4.params.gi_param_name2=gname2 input.i4.params.gi_param_name3=gname3 input.i4.params.gi_num=4
15.1.2. 証明書のデフォルト有効期間の変更
/var/lib/pki/instance_name/ca/profiles/ca/caCACert.cfg
ファイルをエディターで開いて、以下を設定します。
policyset.caCertSet.2.default.params.range=825
15.1.3. CA システム証明書プロファイルの設定
/var/lib/pki/[instance name]/ca/conf
ファイルに保持されます。これらのプロファイルは以下のとおりです。
caAuditSigningCert.profile
eccAdminCert.profile
rsaAdminCert.profile
caCert.profile
eccServerCert.profile
saServerCert.profile
caOCSPCert.profile
eccSubsystemCert.profile
rsaSubsystemCert.profile
- 効力を CA 署名証明書に変更する方法。
- エクステンションの追加方法 (証明書ポリシー拡張機能など)。
pkispawn
が使用する元の CA 証明書プロファイルをバックアップします。# cp -p /usr/share/pki/ca/conf/caCert.profile /usr/share/pki/ca/conf/caCert.profile.orig
- 設定ウィザードが使用する CA 証明書プロファイルを開きます。
# vim /usr/share/pki/ca/conf/caCert.profile
- Validity Default の有効期限を任意の値にリセットします。たとえば、期間を 2 年に変更するには、次のコマンドを実行します。
2.default.class=com.netscape.cms.profile.def.ValidityDefault 2.default.name=Validity Default 2.default.params.range=7200
- プロファイルに新しいデフォルトエントリーを作成し、これをリストに追加して、エクステンションを追加します。たとえば、証明書ポリシー拡張機能を追加するには、デフォルト (この例ではデフォルト #9) を追加します。
9.default.class_id=certificatePoliciesExtDefaultImpl 9.default.name=Certificate Policies Extension Default 9.default.params.Critical=false 9.default.params.PoliciesExt.certPolicy0.enable=false 9.default.params.PoliciesExt.certPolicy0.policyId= 9.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.CPSURI.enable=true 9.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.CPSURI.value=CertificatePolicies.example.com 9.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.enable=false 9.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.explicitText.value= 9.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.noticeReference.noticeNumbers= 9.default.params.PoliciesExt.certPolicy0.PolicyQualifiers0.usernotice.noticeReference.organization=
次に、新しいデフォルトを使用するデフォルトのリストにデフォルトの番号を追加します。list=2,4,5,6,7,8,
9
15.1.4. スマートカード CA プロファイルの管理
/var/lib/pki/instance_name/profiles/ca/
ディレクトリーにあります。デフォルトのプロファイルは、表15.2「デフォルトのトークン証明書プロファイル」 に一覧表示されます。
プロファイル名 | 設定ファイル | 説明 |
---|---|---|
通常の登録プロファイル | ||
トークンデバイスのキー登録 | caTokenDeviceKeyEnrollment.cfg | デバイスまたはサーバーに使用するトークンの登録 |
トークンユーザー暗号化証明書の登録 | caTokenUserEncryptionKeyEnrollment.cfg | ユーザーのトークンで暗号化証明書を登録する場合。 |
トークンユーザーの署名証明書登録 | caTokenUserSigningKeyEnrollment.cfg | ユーザーのトークンに署名証明書を登録する場合。 |
トークンユーザー MS ログイン証明書の登録 | caTokenMSLoginEnrollment.cfg | Windows ドメインまたは PC へのシングルサインオンに使用するユーザー証明書を登録する場合。 |
一時トークンプロファイル | ||
一時的なデバイス証明書の登録 | caTempTokenDeviceKeyEnrollment.cfg | 一時的なトークンでデバイスの証明書を登録する場合 |
一時的なトークン暗号化証明書の登録 | caTempTokenUserEncryptionKeyEnrollment.cfg | ユーザーの一時的なトークンに暗号化証明書を登録する場合。 |
一時的なトークンユーザー署名証明書 | caTempTokenUserSigningKeyEnrollment.cfg | ユーザーの一時的なトークンに署名証明書を登録する場合。 |
プロファイルの更新[a] | ||
トークンユーザー暗号化証明書の登録 (更新) | caTokenUserEncryptionKeyRenewal.cfg | 更新が許可される場合に、ユーザーのトークンで暗号化証明書を更新する場合。 |
トークンユーザー署名証明書の登録 (更新) | caTokenUserSigningKeyRenewal.cfg | 更新が許可される場合に、トークンの署名証明書を更新するため。 |
[a]
更新プロファイルは、元の証明書を発行したプロファイルと組み合わせてのみ使用できます。メリットには 2 つの設定があります。
|
15.1.4.1. TPS の登録プロファイルの編集
policyset.set1.p1.default.params.dnpattern=UID=$request.uid$, O=Token Key User policyset.set1.p1.default.params.ldap.enable=true policyset.set1.p1.default.params.ldap.basedn=ou=people,dc=host,dc=example,dc=com policyset.set1.p1.default.params.ldapStringAttributes=uid,mail policyset.set1.p1.default.params.ldap.ldapconn.host=localhost.example.com policyset.set1.p1.default.params.ldap.ldapconn.port=389
ldapStringAttributes
パラメーターは、会社ディレクトリーから取得する LDAP 属性を CA に指示します。たとえば、ディレクトリーに LDAP 属性名として uid
が含まれており、証明書のサブジェクト名に使用される場合、uid
は ldapStringAttributes
パラメーターにリストされ、request.uid は、dnpattern
のコンポーネントの一つとしてリストされなければなりません。
dnpattern
パラメーターの形式は、『Red Hat Certificate System 管理ガイド』 『のサブジェクト名の制約』 セクションおよび 『サブジェクト名のデフォルト』 セクションで説明されています。
15.1.4.2. カスタム TPS プロファイルの作成
- 発行する CA 用の新しいトークンプロファイルを作成します。プロファイルの設定は、『Red Hat Certificate System 管理ガイド』の『証明書のプロファイルの設定』セクションで説明されています。
- プロファイルを CA のプロファイルディレクトリー
/var/lib/instance_name/ca/profiles/ca/
にコピーします。 - CA の
CS.cfg
ファイルを編集し、新規プロファイルの参照およびプロファイル名を CA のプロファイル一覧に追加します。以下に例を示します。# vim etc/pki/instance_name/ca/CS.cfg profile.list=caUserCert,...,caManualRenewal,
tpsExampleEnrollProfile
... profile.caTokenMSLoginEnrollment.class_id=caUserCertEnrollImpl profile.caTokenMSLoginEnrollment.config=/var/lib/pki/instance_name/profiles/ca/tpsExampleEnrollProfile.cfg - TPS
CS.cfg
ファイルを編集し、新しい CA 登録プロファイルを参照する行を追加します。以下に例を示します。# vim /etc/pki/instance_name/tps/CS.cfg op.enroll.userKey.keyGen.signing.ca.profileId=tpsExampleEnrollProfile
- スマートカードプロファイルを編集したら、インスタンスを再起動します。
# systemctl restart pki-tomcatd-nuxwdog@instance_name.service
CA と TPS が別のインスタンスにある場合は、両方のインスタンスを再起動します。
externalReg
) 設定は、ユーザーの LDAP エントリーで設定されます。
15.1.4.3. Windows スマートカードのログオンプロファイルの使用
caTokenMSLoginEnrollment.cfg
)。
- TLS に対して設定されていない場合は、ドメインコントローラーに証明書を発行します。
- グローバルポリシーではなく、ユーザーごとのスマートカードログインを設定して、ドメイン管理者のロックアウトを防止します。
- ドメインコントローラーはログインのたびに CRL をチェックするため、Active Directory サーバーへの CRL 公開を有効にします。
15.1.5. 証明書の登録プロファイルの無効化
/var/lib/pki/instance_name/ca/profiles/ca/
ディレクトリー内で対応する *.cfg
ファイルを編集し、visible
と enable
のパラメーターを false に設定します。
- CMC 以外のプロファイルのリストを表示します。
# ls -l /var/lib/pki/instance_name/ca/profiles/ca/ | grep -v "CMC"
- 表示される各ファイルで、以下のパラメーターを false に設定します。
visible=false enable=false
- CMC プロファイルのリストを表示します。
# ls -l /var/lib/pki/instance_name/ca/profiles/ca/*CMC*
- 表示される各ファイルで、以下を設定します。
visible=false
第16章 キーリカバリー認証局の設定
16.1. キーアーカイブの手動設定
- CA と KRA との間に信頼される関係があります。
- キーアーカイブ用に登録フォームが有効になっていると、鍵のアーカイブが設定され、KRA トランスポート証明書がフォームに保存されます。
- 必要に応じて、信頼できるマネージャーを作成して、Certificate Manager と KRA との間に関係を確立します。CA が KRA のキーアーカイブを要求できるようにするには、2 つのサブシステムが相互に認識、信頼、および通信するように設定されている必要があります。証明書マネージャーが、KRA の内部データベースで、適切な TLS クライアント認証証明書を使用して特権ユーザーとして設定されていることを確認します。デフォルトでは、Certificate Manager は、KRA への TLS クライアント認証にサブシステム証明書を使用します。
- KRA の base-64 でエンコードされたトランスポート証明書をコピーします。トランスポート証明書は KRA の証明書データベースに保存され、certutil ユーティリティーを使用して取得できます。トランスポート証明書が Certificate Manager によって署名されている場合、証明書のコピーは、Retrieval タブの Certificate Manager エンドエンティティーページから入手できます。または、pki ユーティリティーを使用してトランスポート証明書をダウンロードします。
# pki cert-find --name "KRA Transport certificate's subject common name" # pki cert-show serial_number --output transport.pem
- CA の
CS.cfg
ファイルにトランスポート証明書を追加します。ca.connector.KRA.enable=true ca.connector.KRA.host=server.example.com ca.connector.KRA.local=false ca.connector.KRA.nickName=subsystemCert cert-pki-ca ca.connector.KRA.port=8443 ca.connector.KRA.timeout=30 ca.connector.KRA.transportCert=MIIDbDCCAlSgAwIBAgIBDDANBgkqhkiG9w0BAQUFADA6MRgwFgYDVQQKEw9Eb21haW4gc28gbmFtZWQxHjAcBgNVBAMTFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNjExMTQxODI2NDdaFw0wODEwMTQxNzQwNThaMD4xGDAWBgNVBAoTD0RvbWFpbiBzbyBuYW1lZDEiMCAGA1UEAxMZRFJNIFRyYW5zcG9ydCBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKnMGB3WkznueouwZjrWLFZBLpKt6TimNKV9iz5s0zrGUlpdt81/BTsU5A2sRUwNfoZSMs/d5KLuXOHPyGtmC6yVvaY719hr9EGYuv0Sw6jb3WnEKHpjbUO/vhFwTufJHWKXFN3V4pMbHTkqW/x5fu/3QyyUre/5IhG0fcEmfvYxIyvZUJx+aQBW437ATD99Kuh+I+FuYdW+SqYHznHY8BqOdJwJ1JiJMNceXYAuAdk+9t70RztfAhBmkK0OOP0vH5BZ7RCwE3Y/6ycUdSyPZGGc76a0HrKOz+lwVFulFStiuZIaG1pv0NNivzcj0hEYq6AfJ3hgxcC1h87LmCxgRWUCAwEAAaN5MHcwHwYDVR0jBBgwFoAURShCYtSg+Oh4rrgmLFB/Fg7X3qcwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzABhihodHRwOi8vY2x5ZGUucmR1LnJlZGhhdC5jb206OTE4MC9jYS9vY3NwMA4GA1UdDwEB/wQEAwIE8DANBgkqhkiG9w0BAQUFAAOCAQEAFYz5ibujdIXgnJCbHSPWdKG0T+FmR67YqiOtoNlGyIgJ42fi5lsDPfCbIAe3YFqmF3wU472h8LDLGyBjy9RJxBj+aCizwHkuoH26KmPGntIayqWDH/UGsIL0mvTSOeLqI3KM0IuH7bxGXjlION83xWbxumW/kVLbT9RCbL4216tqq5jsjfOHNNvUdFhWyYdfEOjpp/UQZOhOM1d8GFiw8N8ClWBGc3mdlADQp6tviodXueluZ7UxJLNx3HXKFYLleewwIFhC82zqeQ1PbxQDL8QLjzca+IUzq6Cd/t7OAgvv3YmpXgNR0/xoWQGdM1/YwHxtcAcVlskXJw5ZR0Y2zA== ca.connector.KRA.uri=/kra/agent/kra/connector
- 登録フォームを編集し、keyTransportCert メソッドでトランスポート証明書の値を追加または置き換えます。
vim /var/lib/pki/pki-tomcat/ca/webapps/ca/ee/ca/ProfileSelect.template var keyTransportCert = MIIDbDCCAlSgAwIBAgIBDDANBgkqhkiG9w0BAQUFADA6MRgwFgYDVQQKEw9Eb21haW4gc28gbmFtZWQxHjAcBgNVBAMTFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNjExMTQxODI2NDdaFw0wODEwMTQxNzQwNThaMD4xGDAWBgNVBAoTD0RvbWFpbiBzbyBuYW1lZDEiMCAGA1UEAxMZRFJNIFRyYW5zcG9ydCBDZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKnMGB3WkznueouwZjrWLFZBLpKt6TimNKV9iz5s0zrGUlpdt81/BTsU5A2sRUwNfoZSMs/d5KLuXOHPyGtmC6yVvaY719hr9EGYuv0Sw6jb3WnEKHpjbUO/vhFwTufJHWKXFN3V4pMbHTkqW/x5fu/3QyyUre/5IhG0fcEmfvYxIyvZUJx+aQBW437ATD99Kuh+I+FuYdW+SqYHznHY8BqOdJwJ1JiJMNceXYAuAdk+9t70RztfAhBmkK0OOP0vH5BZ7RCwE3Y/6ycUdSyPZGGc76a0HrKOz+lwVFulFStiuZIaG1pv0NNivzcj0hEYq6AfJ3hgxcC1h87LmCxgRWUCAwEAAaN5MHcwHwYDVR0jBBgwFoAURShCYtSg+Oh4rrgmLFB/Fg7X3qcwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzABhihodHRwOi8vY2x5ZGUucmR1LnJlZGhhdC5jb206OTE4MC9jYS9vY3NwMA4GA1UdDwEB/wQEAwIE8DANBgkqhkiG9w0BAQUFAAOCAQEAFYz5ibujdIXgnJCbHSPWdKG0T+FmR67YqiOtoNlGyIgJ42fi5lsDPfCbIAe3YFqmF3wU472h8LDLGyBjy9RJxBj+aCizwHkuoH26KmPGntIayqWDH/UGsIL0mvTSOeLqI3KM0IuH7bxGXjlION83xWbxumW/kVLbT9RCbL4216tqq5jsjfOHNNvUdFhWyYdfEOjpp/UQZOhOM1d8GFiw8N8ClWBGc3mdlADQp6tviodXueluZ7UxJLNx3HXKFYLleewwIFhC82zqeQ1PbxQDL8QLjzca+IUzq6Cd/t7OAgvv3YmpXgNR0/xoWQGdM1/YwHxtcAcVlskXJw5ZR0Y2zA==;
16.2. KRA 操作の暗号化
- アーカイブ:
- KRA に転送するために Certificate Request Message Format (CRMF) パッケージにアーカイブするキーの暗号化。
- KRA LDAP データベースのストレージの鍵の暗号化。
- リカバリー:
- キーに転送するためにユーザーが提供したセッションキーの暗号化。
- シークレットの復号と、ユーザー提供のセッションキーを使用した再暗号化、または PKCS #12 パッケージの作成。
- 生成:
- ストレージの生成される鍵の暗号化。
16.2.1. クライアントによるキー操作暗号化の管理方法
16.2.2. KRA での暗号化アルゴリズムの設定
/var/lib/pki/pki-instance_name/conf/kra/CS.cfg
ファイルで鍵操作暗号化に関連する設定パラメーターのグループを定義します。以下のパラメーターのセットを推奨します (他のオプションについては上記を参照)。
kra.allowEncDecrypt.archive=false kra.allowEncDecrypt.recovery=false kra.storageUnit.wrapping.1.sessionKeyLength=256 kra.storageUnit.wrapping.1.sessionKeyWrapAlgorithm=RSA kra.storageUnit.wrapping.1.payloadEncryptionPadding=PKCS5Padding kra.storageUnit.wrapping.1.sessionKeyKeyGenAlgorithm=AES kra.storageUnit.wrapping.1.payloadEncryptionAlgorithm=AES kra.storageUnit.wrapping.1.payloadEncryptionMode=CBC kra.storageUnit.wrapping.1.payloadWrapAlgorithm=AES KeyWrap kra.storageUnit.wrapping.1.sessionKeyType=AES kra.storageUnit.wrapping.1.payloadWrapIVLen=16 kra.storageUnit.wrapping.choice=1
/var/lib/pki/pki-instance_name/conf/kra/CS.cfg
ファイル内の kra.storageUnit.wrapping.choice
パラメーターで設定されます。
16.2.2.1. パラメーターとその値の説明
- payloadWrapAlgorithm は、使用されるラッピングアルゴリズムを決定します。有効なオプションは AES KeyWrap のみです。
- payloadWrapAlgorithm=AES/CBC/CBC/PKCS5Padding の場合、payloadWrapIVLength=16 を指定して IV を生成する必要がある PKI に指示する必要があります (CBC に 1 つ必要)。
- payloadEncryptionAlgorithm は、使用される暗号化アルゴリズムを決定します。唯一の有効な選択肢は AES です。
- payloadEncryptionMode は、ブロックチェーンモードを決定します。唯一の有効な選択肢は CBC です。
- payloadEncryptionPadding により、パディングスキームが決まります。唯一の有効な選択肢は PKCS5Padding です。
- sessionKeyType は、生成するキーのタイプです。唯一の有効な選択肢は AES です。
- sessionKeyLength は、生成されたセッションキーの長さです。有効な選択肢は 128 と 256 で、ペイロードをそれぞれ 128 ビット AES または 256 ビット AES で暗号化します。
- sessionKeyWrapAlgorithm は、KRA Storage 証明書が使用するキーのタイプです。本ガイドで唯一の有効な選択肢は RSA です。
16.2.2.2. KRA で AES 暗号化を使用する場合の HSM の制約の解決
キーラッピングの差分アルゴリズムの選択
AES-128-CBC
をキーラッピングアルゴリズムとして使用するには、次のコマンドを実行します。
/var/lib/pki/pki-instance_name/conf/kra/CS.cfg
ファイルで以下のパラメーターを設定します。kra.storageUnit.wrapping.1.payloadWrapAlgorithm=AES KeyWrap kra.storageUnit.wrapping.1.payloadWrapIVLen=16 kra.storageUnit.wrapping.1.sessionKeyLength=128
- インスタンスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl restart pki-tomcatd-nuxwdog@instance_name.service
KRA が異なるインスタンスで実行されている場合、CA は両方のインスタンスを再起動する必要があります。
kra.storageUnit.wrapping.1.payloadWrap{Algorithm,IVLen}
と kra.storageUnit.wrapping.1.payloadEncryption{Algorithm,Mode,Padding}
のパラメーターを使用します。
KRA の暗号化モードへの設定
/var/lib/pki/pki-instance_name/conf/kra/CS.cfg
ファイルの以下のパラメーターを true に設定します。kra.allowEncDecrypt.archive=true kra.allowEncDecrypt.recovery=true
- サービスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl restart pki-tomcatd-nuxwdog@instance_name.service
KRA が CA 以外のインスタンスで実行している場合は、両方のインスタンスを再起動する必要があります。
kra.storageUnit.wrapping.1.payloadEncryption{Algorithm,Mode,Padding}
と kra.storageUnit.wrapping.1.payloadWrap{Algorithm,IVLen}
パラメーターを使用します。
16.3. エージェント承認キーリカバリースキームの設定
16.3.1. コマンドラインでのエージェント承認キーリカバリーの設定
- リカバリーの承認に必要なリカバリーマネージャーの数を設定します。
- これらのユーザーが属する必要のあるグループを設定します。
CS.cfg
設定ファイルで設定されます。
- 設定ファイルを編集する前にサーバーを停止します。
# systemctl stop pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
- KRA の
CS.cfg
ファイルを開きます。# vim /var/lib/pki/pki-tomcat/kra/conf/CS.cfg
- 2 つのリカバリースキームパラメーターを編集します。
kra.noOfRequiredRecoveryAgents=3 kra.recoveryAgentGroup=Key Recovery Authority Agents
- サービスを再起動します。
# systemctl start pki-tomcatd@instance_name.service
または# systemctl start pki-tomcatd-nuxwdog@instance_name.service
16.3.2. キーリカバリーフォームのカスタマイズ
confirmRecover.html
と呼ばれる /var/lib/pki/pki-tomcat/kra/webapps/kra/agent/kra/
ディレクトリーにあります。
16.3.3. 新しいプライベートストレージキーでのキーの再ラップ
16.3.3.1. KRATool について
例16.1 キーの再ラップ
KRATool -kratool_config_file "/usr/share/pki/java-tools/KRATool.cfg" -source_ldif_file "/tmp/files/originalKRA.ldif" -target_ldif_file "/tmp/files/newKRA.ldif" -log_file "/tmp/kratool.log" -source_pki_security_database_path "/tmp/files/" -source_storage_token_name "Internal Key Storage Token" -source_storage_certificate_nickname "storageCert cert-pki-tomcat KRA" -target_storage_certificate_file "/tmp/files/omega.cert"
例16.2 キーの番号変更
KRATool -kratool_config_file "/usr/share/pki/java-tools/KRATool.cfg" -source_ldif_file "/tmp/files/originalKRA.ldif" -target_ldif_file "/tmp/files/newKRA.ldif" -log_file "/tmp/kratool.log" -append_id_offset 100000000000 -source_kra_naming_context "pki-tomcat-KRA" -target_kra_naming_context "pki-tomcat-2-KRA" -process_requests_and_key_records_only
KRATool(1)
の man ページで説明されています。
16.3.3.2. 1 つまたは複数の KRA から 1 つの KRA へのキーのラップとマージ
pki-tomcat
) に保存されているキーを再ラップし、それを別の Certificate System KRA (たとえば targetkra.example.com の pki-tomcat-2
) に保存します。これが唯一のユースケースではありません。このツールは、ソースとターゲットの両方と同じインスタンスで実行して既存のキーを再ラップすることも、キーをまったく再ラップせずに複数の KRA インスタンスから単一のインスタンスにキーをコピーするために使用することもできます。
pki-tomcat-2
KRA ストレージ鍵のサイズとタイプは、2048 ビットおよび RSA に設定する必要があります。
- targetkra.example.com にログインします。
pki-tomcat-2
KRA を停止します。[root@targetkra ~]# systemctl stop pki-tomcatd@pki-tomcat-2.service
- sourcekra.example.com にある
pki-tomcat
KRA インスタンスからインポートされるキーデータを保存するデータディレクトリーを作成します。[root@targetkra ~]# mkdir -p /export/pki
pki-tomcat-2
KRA のパブリックストレージ証明書を、新規データディレクトリーのフラットファイルにエクスポートします。[root@targetkra ~]# certutil -L -d /var/lib/pki/pki-tomcat-2/alias -n "storageCert cert-pki-tomcat-2 KRA" -a > /export/pki/targetKRA.cert
- 同じマシンにある場合は、
pki-tomcat-2
KRA の Directory Server インスタンスを停止します。[root@newkra ~]# systemctl stop dirsrv.target
pki-tomcat-2
KRA の設定情報をエクスポートします。[root@targetkra ~]# grep nsslapd-localuser /etc/dirsrv/slapd-instanceName/dse.ldif nsslapd-localuser: dirsrv [root@targetkra ~]# chown dirsrv:dirsrv /export/pki [root@targetkra ~]# /usr/lib64/dirsrv/slapd-instanceName/db2ldif -n pki-tomcat-2-KRA -a /export/pki/pki-tomcat-2.ldif
重要LDIF ファイルの最後に 1 行の空白行が含まれていることを確認してください。- sourcekra.example.com にログインします。
pki-tomcat
KRA を停止します。[root@sourcekra ~]# systemctl stop pki-tomcatd@pki-tomcat.service
- targetkra.example.com にある
pki-tomcat-2
KRA インスタンスにエクスポートされるキーデータを保存するデータディレクトリーを作成します。[root@sourcekra ~]# mkdir -p /export/pki
- 同じマシンにある場合は、
pki-tomcat
KRA の Directory Server インスタンスを停止します。[root@sourcekra ~]# systemctl stop dirsrv.target
pki-tomcat
KRA の設定情報をエクスポートします。[root@sourcekra ~]# grep nsslapd-localuser /etc/dirsrv/slapd-instanceName/dse.ldif nsslapd-localuser: dirsrv [root@sourcekra ~]# chown dirsrv:dirsrv /export/pki [root@sourcekra ~]# /usr/lib64/dirsrv/slapd-instanceName/db2ldif -n pki-tomcat-KRA -a /export/pki/pki-tomcat.ldif
重要LDIF ファイルの最後に 1 行の空白行が含まれていることを確認してください。- このディレクトリーに
pki-tomcat
KRA NSS セキュリティーデータベースをコピーします。[root@sourcekra ~]# cp -p /var/lib/pki/pki-tomcat/alias/cert8.db /export/pki [root@sourcekra ~]# cp -p /var/lib/pki/pki-tomcat/alias/key3.db /export/pki [root@sourcekra ~]# cp -p /var/lib/pki/pki-tomcat/alias/secmod.db /export/pki
- パブリックストレージキーを持つファイルを
pki-tomcat-2
KRA マシンからこのマシンにコピーします。以下に例を示します。[root@sourcekra ~]# cd /export/pki [root@sourcekra ~]# sftp root@targetkra.example.com sftp> cd /export/pki sftp> get targetKRA.cert sftp> quit
- 必要に応じて、このツールで使用するデフォルトの
KRATool.cfg
ファイルを編集します。デフォルトのファイルは、変更せずに使用することもできます。 - KRATool を実行します。これらのパラメーターはすべて 1 行にまとめる必要があります。
[root@sourcekra ~]# KRATool -kratool_config_file "/usr/share/pki/java-tools/KRATool.cfg" -source_ldif_file /export/pki/pki-tomcat.ldif \ -target_ldif_file /export/pki/source2targetKRA.ldif \ -log_file /export/pki/kratool.log \ -source_pki_security_database_path /export/pki \ -source_storage_token_name 'Internal Key Storage Token' \ -source_storage_certificate_nickname 'storageCert cert-pki-tomcat KRA' \ -target_storage_certificate_file /export/pki/targetKRA.cert -append_id_offset 100000000000 \ -source_kra_naming_context "pki-tomcat-KRA" \ -target_kra_naming_context "pki-tomcat-2-KRA" \ -process_requests_and_key_records_only
注記コマンドは、pki-tomcat
KRA NSS セキュリティーデータベースに保存されているトークンのパスワードの入力を求める場合があります。完了すると、このコマンドは、-target_ldif_file
パラメーターsource2targetKRA.ldif
で指定されたファイルを作成します。 - この LDIF ファイルを
pki-tomcat-2
KRA マシンにコピーします。以下に例を示します。[root@sourcekra ~]# scp /export/pki/source2targetKRA.ldif root@targetkra.example.com:/export/pki
重要LDIF ファイルの最後に 1 行の空白行が含まれていることを確認してください。 - 複数の KRA インスタンスをマージしている場合、それらのデータは単一のインポート操作にマージできます。マージされるすべての KRA で同じ手順を実施します。重要
-target_ldif_file
パラメーターが LDIF ファイルを作成するように一意の値を指定し、LDIF ファイルが連結したときに競合が発生しないように一意の-append_id_offset
値を指定します。 pki-tomcat-2
KRA マシンに、pki-tomcat-2
KRA 設定 LDIF ファイル、およびその他の KRA インスタンス用にエクスポートされたすべての LDIF ファイルを連結して、LDIF ファイルを他のキーデータとともにインポートします。以下に例を示します。[root@targetkra ~]# cd /export/pki [root@targetkra ~]# cat pki-tomcat-2.ldif source2targetKRA.ldif > combined.ldif
pki-tomcat-2
KRA インスタンス用に、この組み合わせた LDIF ファイルを Directory Server データベースにインポートします。[root@targetkra ~]# /usr/lib64/dirsrv/slapd-instanceName/ldif2db -n pki-tomcat-2-KRA -i /export/pki/combined.ldif
pki-tomcat-2
KRA の Directory Server インスタンスを起動します。[root@targetkra ~]# systemctl start dirsrv.target
pki-tomcat-2
KRA を起動します。[root@targetkra ~]# systemctl start pki-tomcatd@pki-tomcat-2.service
16.3.4. クローン後の CA-KRA コネクター情報の更新
第17章 ログの設定
17.1. Certificate System ログの設定
17.1.1. ログに記録されるサービス
サービス | 説明 |
---|---|
ACL | アクセス制御リストに関連するイベントをログに記録します。 |
管理 | コンソールとインスタンス間の HTTPS 通信など、管理アクティビティーに関連するイベントをログに記録します。 |
すべて | すべてのサービスに関連するイベントをログに記録します。 |
認証 | 認証モジュールに関連するアクティビティーに関連するイベントをログに記録します。 |
認証局 | Certificate Manager に関連するイベントをログに記録します。 |
データベース | 内部データベース関連のアクティビティーに関連するイベントをログに記録します。 |
HTTP |
サーバーの HTTP アクティビティーに関連するイベントをログに記録します。HTTP イベントは実際には、HTTP サービスを提供するために Certificate System に組み込まれる Apache サーバーに属するエラーログに記録されることに注意してください。
|
キーリカバリー認証局 | KRA に関連するイベントをログに記録します。 |
LDAP | 証明書と CRL の公開に使用される LDAP ディレクトリーを使用してアクティビティーに関連するイベントをログに記録します。 |
OCSP | OCSP ステータスの GET 要求など、OCSP に関連するイベントをログに記録します。 |
その他 | コマンドラインユーティリティーやその他のプロセスなどの他のアクティビティーに関連するイベントをログに記録します。 |
要求キュー | 要求キューアクティビティーに関連するイベントをログに記録します。 |
ユーザーおよびグループ | インスタンスのユーザーおよびグループに関連するイベントをログに記録します。 |
17.1.2. ログレベル (メッセージカテゴリー)
0
から 10
で表されます。各番号は、サーバーによって実行されるログのレベルを示します。このレベルは、ロギングの詳細を設定します。
ログレベル | メッセージカテゴリー | 説明 |
---|---|---|
0 | デバッグ | これらのメッセージにはデバッグ情報が含まれます。このレベルは、非常に多くの情報を生成するため、通常の使用には推奨されません。 |
1 | すべてのロギングレベル | このログレベルは、すべてのログレベルを有効にします。 |
2 | 警告 | これらのメッセージは警告のみであり、サーバーの通常の操作に障害があることを示すものではありません。 |
3 | 失敗 - システムおよびエラーログのデフォルト選択 | これらのメッセージは、証明書サービス操作の実行の失敗 (User authentication failed または Certificate revoked) や、取り消せないエラーを引き起こす可能性のある予期しない状況 (リクエストがクライアントからされた同じチャネルでクライアントに対して処理された要求を返信できない) など、サーバーが正常に動作することを妨げるエラーおよび障害を示します。 |
4 | 誤った設定 | これらのメッセージは、サーバーの設定が間違っていることが原因でエラーが発生していることを示します。 |
5 | 壊滅的な失敗 | これらのメッセージは、エラーにより、サービスの実行を継続できないことを示しています。 |
6 | セキュリティー関連のイベント | これらのメッセージは、サーバーのセキュリティーに影響する発生内容を特定します。たとえば、リストにない証明書や取り消された証明書を使用するユーザーが特権アクセスを試みる場合などです。 |
7 | PDU 関連イベント (デバッグ) | これらのメッセージには、PDU イベントのデバッグ情報が含まれます。このレベルは、通常より有用な情報を超える情報を生成するため、通常の使用には推奨していません。 |
8 | PDU 関連イベント | これらのメッセージは、MAC トークンの作成など、PDU で処理されるトランザクションおよびルールに関連するものです。 |
9 | PDU 関連イベント | このログレベルは、MAC トークンの作成など、PDU で処理されるイベントの詳細ログメッセージを提供します。 |
10 | 情報提供 (監査ログのデフォルト選択) | これらのメッセージは、証明書システムの初期化完了 や 成功した操作要求 などのステータスメッセージを含む、証明書システムの状態に関する一般的な情報を提供します。 |
17.1.3. バッファー付きおよびバッファーなしのロギング
- バッファーが満杯になった場合。バッファーサイズが bufferSize 設定パラメーターで指定された値以上になると、バッファーが満杯になります。このパラメーターのデフォルト値は 512 KB です。
- バッファーのフラッシュ間隔に到達した場合。最後のバッファーフラッシュからの経過時間、または flushInterval 設定パラメーターで指定された値と同じか大きい場合は、フラッシュ間隔に到達します。このパラメーターのデフォルト値は 5 秒です。
- 現在のログがコンソールから読み取られる場合。サーバーは現在のログについてクエリーされる際に最新のログを取得します。
17.1.4. ログファイルローテーション
- 対応するファイルのサイズ制限に到達した場合。対応するログファイルのサイズは、maxFileSize 設定パラメーターで指定された値以下である必要があります。このパラメーターのデフォルト値は 100 KB です。
- 対応するファイルの経過時間制限に到達した場合。対応するログファイルは、rolloverInterval 設定パラメーターで指定された間隔以上です。このパラメーターのデフォルト値は 2592000 秒 (30 日ごと) です。
log
ディレクトリー全体をアーカイブメディアにコピーして、これらのファイルを定期的に一部のバックアップメディアにアーカイブする必要があります。
17.2. オペレーティングシステム (RHCS の外部) のログ設定
17.2.1. OS レベルの監査ログの有効化
auditd
ロギングフレームワークは、多くの監査機能を追加で提供します。これらの OS レベル監査ログは、Certificate System が提供する機能を補完します。本セクションの手順を実行する前に、audit
パッケージがインストールされていることを確認してください。
#
sudo yum install audit
yum
および rpm
を使用し、Certificate System を含む) の監査は自動的に実行され、追加の設定は必要ありません。
# auditctl -l
17.2.1.1. 証明書システムの監査ログ削除の監査
/etc/audit/rules.d/rhcs-audit-log-deletion.rules
ファイルを作成します。
-a always,exit -F arch=b32 -S unlink -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b32 -S rename -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b32 -S rmdir -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b32 -S unlinkat -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b32 -S renameat -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b64 -S unlink -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b64 -S rename -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b64 -S rmdir -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b64 -S unlinkat -F dir=/var/log/pki -F key=rhcs_audit_deletion -a always,exit -F arch=b64 -S renameat -F dir=/var/log/pki -F key=rhcs_audit_deletion
auditd
を再起動します。
#
service auditd restart
17.2.1.2. 秘密鍵の使用が承認されていない Certificate System の監査
/etc/audit/rules.d/rhcs-audit-nssdb-access.rules
ファイルを作成します。
-w /etc/pki/<instance name>/alias -p warx -k rhcs_audit_nssdb
/etc/pki/<instance name>/alias
の各ファイルの /etc/audit/rules.d/rhcs-audit-nssdb-access.rules
に、以下の行を追加します。
-w /etc/pki/<instance name>/alias/<file> -p warx -k rhcs_audit_nssdb
pki-ca121318ec
で、cert8.db
、key3.db
、NHSM6000-OCScert8.db
、NHSM6000-OCSkey3.db
、および secmod.db
がファイルである場合、設定ファイルには次のものが含まれます。
-w /etc/pki/pki-ca121318ec/alias -p warx -k rhcs_audit_nssdb -w /etc/pki/pki-ca121318ec/alias/cert8.db -p warx -k rhcs_audit_nssdb -w /etc/pki/pki-ca121318ec/alias/key3.db -p warx -k rhcs_audit_nssdb -w /etc/pki/pki-ca121318ec/alias/NHSM6000-OCScert8.db -p warx -k rhcs_audit_nssdb -w /etc/pki/pki-ca121318ec/alias/NHSM6000-OCSkey3.db -p warx -k rhcs_audit_nssdb -w /etc/pki/pki-ca121318ec/alias/secmod.db -p warx -k rhcs_audit_nssdb
auditd
を再起動します。
#
service auditd restart
17.2.1.3. 時間変更イベントの監査
/etc/audit/rules.d/rhcs-audit-rhcs_audit_time_change.rules
ファイルを作成します。
-a always,exit -F arch=b32 -S adjtimex,settimeofday,stime -F key=rhcs_audit_time_change -a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=rhcs_audit_time_change -a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=rhcs_audit_time_change -a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=rhcs_audit_time_change -a always,exit -F arch=b32 -S clock_adjtime -F key=rhcs_audit_time_change -a always,exit -F arch=b64 -S clock_adjtime -F key=rhcs_audit_time_change -w /etc/localtime -p wa -k rhcs_audit_time_change
auditd
を再起動します。
#
service auditd restart
17.2.1.4. 証明書システム設定へのアクセスの監査
/etc/audit/rules.d/rhcs-audit-config-access.rules
ファイルを作成します。
-w /etc/pki/instance_name/server.xml -p wax -k rhcs_audit_config
/etc/pki/instance_name/
ディレクトリーの各サブシステムに次の内容を追加します。
-w /etc/pki/instance_name/subsystem/CS.cfg -p wax -k rhcs_audit_config
例17.1 rhcs-audit-config-access.rules 設定ファイル
/etc/audit/rules.d/rhcs-audit-config-access.rules
ファイルには以下が含まれます。
-w /etc/pki/pki-ca121318ec/server.xml -p wax -k rhcs_audit_config -w /etc/pki/pki-ca121318ec/ca/CS.cfg -p wax -k rhcs_audit_config
17.3. CS.cfg ファイルでのログの設定
CS.cfg
を直接編集して、ロギングを設定することができます。
- サブシステムインスタンスを停止します。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
/var/lib/pki/instance_name/subsystem_type/conf
ディレクトリーのCS.cfg
ファイルを開きます。- 新しいログを作成するには、システムまたはトランザクションログのすべてのエントリーをコピーします。これらは、log.instance.Transactions または log.instance.System で始まるパラメーターです。ログセクションの下部にすべてのエントリーを貼り付け、各パラメーターの Transactions または System という単語を新しい名前に変更して、このインスタンスの名前を変更します。
- ログインスタンスを設定するには、そのログに関連付けられたパラメーターを変更します。これらのパラメーターは log.instance で始まります。
表17.3 ログエントリーパラメーター パラメーター 説明 type ログファイルのタイプ。システム はエラーおよびシステムログを作成します。トランザクション は監査ログを記録します。 enable ログがアクティブかどうかを設定します。有効にするログのみがイベントを記録します。 level テキストフィールドにログレベルを設定します。このレベルは、フィールドに手動で入力する必要があります。選択メニューはありません。ログレベル設定は、「ログレベル (メッセージカテゴリー)」に記載されている数値です。 fileName ログファイルへのファイル名を含む完全パス。サブシステムユーザーには、ファイルへの読み書きパーミッションがなければなりません。 bufferSize ログのキロバイトサイズ (KB) のバッファーサイズ。バッファーがこのサイズに達すると、バッファーの内容はフラッシュされ、ログファイルにコピーされます。デフォルトのサイズは 512 KB です。バッファーロギングの詳細は、「バッファー付きおよびバッファーなしのロギング」 を参照してください。 flushInterval バッファーの内容がフラッシュされてログファイルに追加されるまでの時間 (秒単位)。デフォルトの間隔は 5 秒です。 maxFileSize ローテーションされる前に可能なログファイルのサイズをキロバイト (KB) 単位で設定できます。このサイズに達すると、ファイルはローテーションファイルにコピーされ、ログファイルが新たに開始されます。ログファイルのローテーションに関する詳細は、「ログファイルローテーション」を参照してください。デフォルトのサイズは 2000 KB です。 rolloverInterval サーバーがアクティブなログファイルをローテーションする頻度。利用可能な選択肢は hourly、daily、weekly、monthly、および yearly です。デフォルトの選択は monthly です。詳細は、「ログファイルローテーション」を参照してください。 register[a] この変数が false (デフォルト値) に設定されている場合には、セルフテストのメッセージは、selftests.container.logger.fileName で指定されるログファイルにのみログに記録されます。この変数が true に設定されている場合は、セルフテストのメッセージは selftests.container.logger.fileName によって指定したログファイルと、 log.
instance.Transactions.
fileName で指定されたログファイルの両方に書き込まれます。logSigning[b] 署名付きロギングを有効にします。このパラメーターが有効な場合は、signedAuditCertNickname パラメーターの値を指定します。このオプションは、監査人だけがログを表示できることを意味します。値は true または false です。 signedAuditCertNickname[b] 監査ログの署名に使用される証明書のニックネーム。この証明書の秘密鍵は、ログに署名するためにサブシステムからアクセスできる必要があります。 events[b] 監査ログにログを記録するイベントを指定します。ログイベントは、空白のないコンマで区切ります。 [a] これは自己テスト用のログのみに使用されます。[b] これは監査ログのみになります。 - ファイルを保存します。
- サブシステムインスタンスを開始します。
# systemctl start pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@instance_name.service
17.3.1. 署名監査ログの有効化および設定
17.3.1.1. 署名監査ログの有効化
# pki-server subsystem-audit-config-show Enabled: True Log File: audit_signing_log_file Buffer Size (bytes): 512 Flush Interval (seconds): 5 Max File Size (bytes): 2000 Rollover Interval (seconds): 2592000 Expiration Time (seconds): 0 Log Signing: False Signing Certificate: audit_signing_certificate
pki-server
ユーティリティーを使用して、--logSigning
オプションを true に設定します。# pki-server subsystem-audit-config-mod --logSigning True ... Log Signing: True ...
- インスタンスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@instance_name.service
17.3.1.2. 監査イベントの設定
17.3.1.2.1. 監査イベントの有効化および無効化
17.3.1.2.2. 監査イベントのフィルタリング
タイプ | 形式 | 例 |
---|---|---|
Presence | (attribute=*) | (ReqID=*) |
Equality | (attribute=value) | (Outcome=Failure) |
Substring | (attribute=initial*any*...*any*final) | (SubjectID=*admin*) |
AND 演算 | (&(filter_1)(filter_2)...(filter_n)) | (&(SubjectID=admin)(Outcome=Failure)) |
OR 演算 | (|(filter_1)(filter_2)...(filter_n)) | (|(SubjectID=admin)(Outcome=Failure)) |
NOT 演算 | (!(filter)) | (!(SubjectID=admin)) |
例17.2 監査イベントのフィルタリング
$ pki-server ca-audit-event-show PROFILE_CERT_REQUEST Event Name: PROFILE_CERT_REQUEST Enabled: True Filter: None $ pki-server ca-audit-event-show CERT_REQUEST_PROCESSED Event Name: CERT_REQUEST_PROCESSED Enabled: True Filter: None
InfoName
フィールドが rejectReason または cancelReason に設定されている処理済み証明書要求のイベントと、プロファイル証明書要求およびイベントの失敗したイベントのみを記録するには、以下を実行します。
- 以下のコマンドを実行します。
$ pki-server ca-audit-event-update PROFILE_CERT_REQUEST --filter "(Outcome=Failure)" ... Filter: (Outcome=Failure) $ pki-server ca-audit-event-update CERT_REQUEST_PROCESSED --filter "(|(InfoName=rejectReason)(InfoName=cancelReason))" ... Filter: (|(InfoName=rejectReason)(InfoName=cancelReason))
- Certificate System を再起動します。
# systemctl restart pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@instance_name.service
17.3.2. セルフテストの設定
CS.cfg
ファイルで登録され、設定されます。セルフテストが有効になっている場合、そのセルフテストはオンデマンドまたは起動時に対して一覧表示され、空かまたは critical として設定されます。
CS.cfg
ファイルのそれぞれの設定を変更することで変更されます。
17.3.2.1. 起動時のデフォルトのセルフテスト
- CAPresence: CA サブシステムが存在することを確認するために使用されます。
- CAValidity: CA サブシステムが現在有効であり、期限切れでないことを確認するために使用されます。これには、CA 証明書の有効期限を確認する必要があります。
- SystemCertsVerification: システム証明書が現在有効であり、有効期限が切れていないか、または取り消されていないことを確認するために使用されます。CA サブシステムの場合は、各証明書の有効性テストのみが実行され、OCSP 要求が発生する可能性のある証明書検証テストは除外されます。この動作は、以下の設定パラメーターで上書きできます。
selftests.plugin.SystemCertsVerification.FullCAandOCSPVerify=true
デフォルトでは、この設定パラメーターが存在しない場合は false と見なされます。
- KRAPresence: KRA サブシステムが存在することを確認するために使用されます。
- KRAValidity: KRA サブシステムが現在有効であり、期限切れでないことを確認するために使用されます。これには、KRA 証明書の有効期限を確認する必要があります。
- SystemCertsVerification: システム証明書が現在有効であり、有効期限が切れていないか、または取り消されていないことを確認するために使用されます。
- OCSPPresence: OCSP サブシステムの有無を確認するために使用されます。
- OCSPValidity: OCSP サブシステムが現在有効であり、期限切れでないことを確認するために使用されます。これには、OCSP 証明書の有効期限を確認する必要があります。
- SystemCertsVerification: システム証明書が現在有効であり、有効期限が切れていないか、または取り消されていないことを確認するために使用されます。OCSP サブシステムの場合は、各証明書の有効性テストのみが実行され、OCSP 要求が発生する可能性のある証明書検証テストは除外されます。この動作は、以下の設定パラメーターで上書きできます。
selftests.plugin.SystemCertsVerification.FullCAandOCSPVerify=true
デフォルトでは、この設定パラメーターが存在しない場合は false と見なされます。
- TKS knownSessionKey: TKS サブシステムの既知のセッションキーの検証に使用されます。これにより、TKS は、TPS およびサポート対象のスマートカードの代わりに鍵の作成を適切に支援できます。
- SystemCertsVerification: システム証明書が現在有効であり、有効期限が切れていないか、または取り消されていないことを確認するために使用されます。
- TPSPresence: TPS サブシステムが存在することを確認するために使用されます。
- TPSValidity: TPS サブシステムが現在有効であり、期限切れでないことを確認するために使用されます。これには、TPS 証明書の有効期限を確認する必要があります。
- SystemCertsVerification: システム証明書が現在有効であり、有効期限が切れていないか、または取り消されていないことを確認するために使用されます。
17.3.2.2. セルフテスト設定の変更
- サブシステムインスタンスを停止します。
- インスタンスの
conf/
ディレクトリーにあるCS.cfg
ファイルを開きます。 - self-test ログの設定を編集するには、selftests.container.logger で始まるエントリーを編集します。指定のない限り、これらのパラメーターはコンプライアンスには影響しません。これには、以下のパラメーターが含まれます。
- bufferSize: ログのバッファーサイズをキロバイト単位 (KB) で指定します。デフォルトのサイズは 512 KB です。バッファーがこのサイズに達すると、バッファーの内容はフラッシュされ、ログファイルにコピーされます。
- enable - 有効にする場合は true を指定します。有効にするログのみがイベントを記録します。この値は、コンプライアンスのために有効にする 必要 があります。
- filename: ファイル名を含む、メッセージを書き込むファイルの完全パスを指定します。サーバーに、ファイルへの読み取り/書き込み権限が必要です。デフォルトでは、self-test ログファイルは
/var/log/pki-name/logs/selftest.log
です。 - flushInterval: バッファーをファイルにフラッシュする間隔を秒単位で指定します。デフォルトの間隔は 5 秒です。flushInterval は、バッファーの内容がフラッシュされログファイルに追加されるまでの時間です。
- level: デフォルトの選択は 1 です。このログは、1 以外のレベルでは設定されません。
- maxFileSize: エラーログのファイルサイズをキロバイト単位 (KB) で指定します。デフォルトのサイズは 100 KB です。maxFileSize は、ログファイルがローテーションされる前のサイズを決定します。このサイズに達すると、ファイルはローテーションファイルにコピーされ、新しいログファイルが起動します。
- register: この変数が false (デフォルト値) に設定されている場合には、セルフテストのメッセージは、selftests.container.logger.fileName で指定されるログファイルにのみログに記録されます。この変数が true に設定されている場合は、セルフテストのメッセージは selftests.container.logger.fileName によって指定したログファイルと、log.instance.Transactions.fileName で指定されたログファイルの両方に書き込まれます。
- rolloverInterval: アクティブなエラーログファイルをサーバーがローテーションする頻度を指定します。選択肢は hourly、daily、weekly、monthly、および yearly です。デフォルトの選択は monthly です。
- type: transaction に設定してください。これは変更しないでください。
- セルフテストを実行する順序を編集するには、コンマとスペースで区切った次のパラメーターの値としてセルフテストのいずれかをリストすることにより、順序を指定します。セルフテストをクリティカルとしてマークするには、リスト内のセルフテストの名前にコロンとクリティカルという単語を追加します。セルフテストを無効にするには、selftests.container.order.onDemand または selftests.container.order.startup のパラメーターの値の設定を削除します。
- ファイルを保存します。
- サブシステムを起動します。
17.3.3. デバッグログの追加設定
17.3.3.1. デバッグログの有効化および無効化
/var/lib/pki/instance_name/subsystem_type/conf/CS.cfg
ファイルを編集し、debug.enabled
のパラメーターを設定します。- デバッグのロギングを無効にするには、以下を設定します。
debug.enabled=false
注記デバッグログは監査ロギングの一部では ありません。デバッグログは、Certificate System で特定の障害をデバッグする場合や、インストールの失敗時に便利です。デフォルトで、デバッグログは有効です。望ましい場合には、管理者はデバッグロギングを安全に無効にして詳細度を下げることができます。 - デバッグロギングを有効にするには、以下を実行します。
debug.enabled=true
- Certificate System インスタンスを再起動します。
# systemctl restart pki-tomcatd@instance-name.service
または (nuxwdog watchdog
を使用している場合)# systemctl restart pki-tomcatd-nuxwdog@instance-name.service
17.3.3.2. デバッグログファイルのローテーション設定
logrotate
などの外部ユーティリティーを使用してログをローテーションします。
例17.3 logrotate
を使用したデバッグログのローテーション
/etc/logrotate.d/rhcs_debug
などの設定ファイルを作成します。
/var/log/pki/instance_name/subsystem/debug { copytruncate weekly rotate 5 notifempty missingok }
/var/log/pki/instance_name/ca/debug /var/log/pki/instance_name/kra/debug { ... }
logrotate
および、この例で使用するパラメーターの詳細は、logrotate(8) の man ページを参照してください。
17.4. 監査の保持
- 拡張監査保持: 証明書の存続期間 (発行から有効期限または失効日まで) の必要な保守のために保持される監査データ。Certificate System の場合は、以下の項目に表示されます。
- 署名された監査ログ: Red Hat Certificate System 管理ガイドの付録 E. 監査イベントで定義されているすべてのイベント。
- CA の内部 LDAP サーバーでは、CA が受け取った証明書要求レコードと、要求が承認されたときの証明書レコード。
- 通常の監査保持: 通常は、通常の操作をサポートするためにのみ保持される監査データ。これには、拡張された監査保持 カテゴリーに記載されないすべてのイベントが含まれます。
17.4.1. 監査データの場所
17.4.1.1. 監査ログの場所
/var/log/pki-name/logs/signedAudit/
ディレクトリーに保存します。たとえば、CA の監査ログは /var/lib/pki/instance_name/ca/logs/signedAudit/
ディレクトリーに保存されます。通常ユーザーは、このディレクトリー内のファイルにアクセスできません。
を参照してください。
17.4.1.2. 証明書要求および証明書レコードの場所
pkispawn
ユーティリティーを使用して CA が作成されると、以下のパラメーターに指定されました。
pki_ds_hostname
pki_ds_ldap_port
pki_ds_database
pki_ds_base_dn
- https://host_name:port/ca/ee/ca/ で CA EE ポータルにログインします。
- Request Identifier を入力します。
- Validity を検索します。
- https://host_name:port/ca/ee/ca/ で CA EE ポータルにログインします。
- シリアル番号の範囲を入力します。1 つの特定のレコードを検索する場合は、レコードのシリアル番号を最小値と最大値の両方を、シリアル番号フィールドに入力します。
- 検索結果をクリックします。
- Validity を検索します。
第18章 ロールユーザーの作成
- オペレーティングシステム上での Certificate System の管理ユーザーの作成
- Certificate System での PKI ロールの作成
18.1. オペレーティングシステムでの PKI 管理ユーザーの作成
- オペレーティングシステムに
pkiadmin
グループを作成します。# groupadd -r pkiadmin
pkiadmin
グループにpkiuser
を追加します。# usermod -a -G pkiadmin pkiuser
- オペレーティングシステムでユーザーを作成します。たとえば、
jsmith
アカウントを作成するには、以下を実行します。# useradd -g pkiadmin -d /home/jsmith -s /bin/bash -c "Red Hat Certificate System Administrator John Smith" -m jsmith
詳細は、useradd(8) の man ページを参照してください。 - ユーザー
jsmith
をpkiadmin
グループに追加します。# usermod -a -G pkiadmin jsmith
詳細は、usermod(8) の man ページを参照してください。nCipher ハードウェアセキュリティーモジュール (HSM) を使用している場合は、HSM デバイスを管理するユーザーをnfast
グループに追加します。# usermod -a -G nfast pkiuser # usermod -a -G nfast jsmith
- 適切な
sudo
ルールを追加して、pkiadmin
グループを Certificate System およびその他のシステムサービスに許可します。管理とセキュリティーの両方を簡素化するために、Certificate System と Directory Server のプロセスを設定して、(root だけでなく) PKI 管理者がサービスを開始および停止できるようにすることができます。サブシステムを設定する際にpkiadmin
システムグループの使用が推奨されるオプションです。(詳細は 「Certificate System のオペレーティングシステムのユーザーおよびグループ」です)。Certificate System 管理者であるすべてのオペレーティングシステムユーザーがこのグループに追加されます。pkiadmin
のシステムグループが存在する場合は、特定のタスクを実行するための sudo アクセスを付与することができます。/etc/sudoers
ファイルを編集します。Red Hat Enterprise Linux では、visudo コマンドを使用して実行できます。# visudo
- マシンにインストールされているものに応じて、Directory Server、Administration Server、PKI 管理ツール、および各 PKI サブシステムインスタンスの行を追加して、pkiadmin グループに sudo 権限を付与します。
# For Directory Server services %pkiadmin ALL = PASSWD: /usr/bin/systemctl * dirsrv.target %pkiadmin ALL = PASSWD: /usr/bin/systemctl * dirsrv-admin.service # For PKI instance management %pkiadmin ALL = PASSWD: /usr/sbin/pkispawn * %pkiadmin ALL = PASSWD: /usr/sbin/pkidestroy * # For PKI instance services %pkiadmin ALL = PASSWD: /usr/bin/systemctl * pki-tomcatd@instance_name.service
重要マシン上のすべての Certificate System、Directory Server、および Administration Server に対して、またマシン上のそれらのインスタンスに対して のみ、sudo パーミッションを設定してください。マシンに同じサブシステムタイプのインスタンスが複数存在する場合と、サブシステムタイプのインスタンスが存在しない場合があります。これはデプロイメントによって異なります。 - 以下のファイルのグループを
pkiadmin
に設定します。# chgrp pkiadmin /etc/pki/instance_name/server.xml # chgrp -R pkiadmin /etc/pki/instance_name/alias # chgrp pkiadmin /etc/pki/instance_name/subsystem/CS.cfg # chgrp pkiadmin /var/log/pki/instance_name/subsystem/debug
18.2. 証明書システムでの PKI ロールユーザーの作成
第19章 Bootstrap ユーザーの削除
19.1. マルチロールサポートの無効化
multirole
属性を無効にします。
- サーバーを停止します。
# systemctl stop pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl stop pki-tomcatd-nuxwdog@instance_name.service
CS.cfg
ファイルを開きます。vim /var/lib/pki/instance_name/ca/conf/CS.cfg
multiroles.enable
パラメーターの値を true から false に変更します。- マルチロール設定に影響のある Certificate System のデフォルトロールリストを追加または編集します。複数のロールが無効になっており、ユーザーが
multiroles.false.groupEnforceList
パラメーターににリストされているロールの 1 つ に属している場合、ユーザーはリスト内の他のロールのグループに追加することができません。multiroles.false.groupEnforceList
=Administrators,Auditors,Trusted Managers,Certificate Manager Agents,Registration Manager Agents,Key Recovery Authority Agents,Online Certificate Status Manager Agents,Token Key Service Manager Agents,Enterprise CA Administrators,Enterprise KRA Adminstrators,Enterprise OCSP Administrators,Enterprise TKS Administrators,Enterprise TPS Administrators,Security Domain Administrators,Subsystem Group - サービスを再起動します。
# systemctl start pki-tomcatd@instance_name.service
または (nuxwdog watchdog
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@instance_name.service
パート IV. Certificate System を 9.x から最新バージョンへのアップグレード
- パッケージと設定ファイルをアップグレードします。パッケージと設定ファイルのアップグレードを参照してください。
- Certificate System 9.0 からアップグレードする場合は、データベースをアップグレードします。データベースのアップグレード を参照してください。
- Certificate System インスタンスを再起動します。
# systemctl restart pki-tomcatd@instance_name.service
第20章 パッケージと設定ファイルのアップグレード
# yum update
/etc/pki/instance_name/subsystem/CS.cfg
や /etc/pki/instance_name/server.xml
などの証明書システムの設定ファイルが新規バージョンに自動的に変更されます。
/var/log/pki/pki-server-upgrade-version.log
/var/log/pki/pki-upgrade-version.log
- Directory Server の注目すべき変更点、バグ修正、既知の問題点については Red Hat Directory Server リリースノート
第21章 データベースのアップグレード
21.1. データベースを 9.0 から 9.1 へのアップグレー
21.1.1. データベーススキーマのアップグレード
# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( realm-oid NAME 'realm' DESC 'CMS defined attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'user defined' ) dn: cn=schema changetype: modify delete: objectClasses objectClasses: ( request-oid NAME 'request' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( requestId $ dateOfCreate $ dateOfModify $ requestState $ requestResult $ requestOwner $ requestAgentGroup $ requestSourceId $ requestType $ requestFlag $ requestError $ userMessages $ adminMessages ) X-ORIGIN 'user defined' ) add: objectClasses objectClasses: ( request-oid NAME 'request' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( requestId $ dateOfCreate $ dateOfModify $ requestState $ requestResult $ requestOwner $ requestAgentGroup $ requestSourceId $ requestType $ requestFlag $ requestError $ userMessages $ adminMessages $ realm ) X-ORIGIN 'user defined' ) dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( authorityID-oid NAME 'authorityID' DESC 'Authority ID' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE X-ORIGIN 'user defined' ) attributeTypes: ( authorityKeyNickname-oid NAME 'authorityKeyNickname' DESC 'Authority key nickname' SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE X-ORIGIN 'user-defined' ) attributeTypes: ( authorityParentID-oid NAME 'authorityParentID' DESC 'Authority Parent ID' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE X-ORIGIN 'user defined' ) attributeTypes: ( authorityEnabled-oid NAME 'authorityEnabled' DESC 'Authority Enabled' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE X-ORIGIN 'user defined' ) attributeTypes: ( authorityDN-oid NAME 'authorityDN' DESC 'Authority DN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' ) attributeTypes: ( authoritySerial-oid NAME 'authoritySerial' DESC 'Authority certificate serial number' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' ) attributeTypes: ( authorityParentDN-oid NAME 'authorityParentDN' DESC 'Authority Parent DN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' ) attributeTypes: ( authorityKeyHost-oid NAME 'authorityKeyHost' DESC 'Authority Key Hosts' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'user defined' ) dn: cn=schema changetype: modify add: objectClasses objectClasses: ( authority-oid NAME 'authority' DESC 'Certificate Authority' SUP top STRUCTURAL MUST ( cn $ authorityID $ authorityKeyNickname $ authorityEnabled $ authorityDN ) MAY ( authoritySerial $ authorityParentID $ authorityParentDN $ authorityKeyHost $ description ) X-ORIGIN 'user defined' )
21.1.2. CA データベースのアップグレード
- コンテナーエントリーをアップグレードします。
# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: ou=authorities,ou=ca,CA_base_DN changetype: add objectClass: top objectClass: organizationalUnit ou: authorities
- アクセスコントロールリスト (ACL) エントリーをアップグレードします。
# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: cn=aclResources,CA_base_DN changetype: modify add: resourceACLS resourceACLS: certServer.ca.authorities:list,read:allow (list,read) user="anybody":Anybody may list and read lightweight authorities resourceACLS: certServer.ca.authorities:create,modify:allow (create,modify) group="Administrators":Administrators may create and modify lightweight authorities resourceACLS: certServer.ca.authorities:delete:allow (delete) group="Administrators":Administrators may delete lightweight authorities
- データベースインデックスをアップグレードします。
# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: cn=issuername,cn=index,cn=CA_database_name,cn=ldbm database, cn=plugins, cn=config changetype: add objectClass: top objectClass: nsIndex nsindexType: eq nsindexType: pres nsindexType: sub nsSystemindex: false cn: issuername
realm
属性を追加します。# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( realm-oid NAME 'realm' DESC 'CMS defined attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'user defined' ) delete: objectClasses objectClasses: ( request-oid NAME 'request' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( requestId $ dateOfCreate $ dateOfModify $ requestState $ requestResult $ requestOwner $ requestAgentGroup $ requestSourceId $ requestType $ requestFlag $ requestError $ userMessages $ adminMessages ) X-ORIGIN 'user defined' ) add: objectClasses objectClasses: ( request-oid NAME 'request' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( requestId $ dateOfCreate $ dateOfModify $ requestState $ requestResult $ requestOwner $ requestAgentGroup $ requestSourceId $ requestType $ requestFlag $ requestError $ userMessages $ adminMessages $ realm ) X-ORIGIN 'user defined' )
- 証明書の有効期限の遅延を取り除きます。
/var/lib/pki/instance_name/ca/profiles/ca/caDualCert.cfg
ファイルで、以下を設定します。policyset.signingCertSet.2.default.params.startTime=0
/var/lib/pki/instance_name/ca/profiles/ca/caECDualCert.cfg
ファイルで、次のように設定します。policyset.signingCertSet.2.default.params.startTime=0
/var/lib/pki/instance_name/ca/profiles/ca/caDualCert.cfg
ファイルで、以下を設定します。policyset.signingCertSet.2.default.params.startTime=0
/var/lib/pki/instance_name/ca/profiles/ca/caJarSigningCert.cfg
ファイルで、以下を設定します。policyset.caJarSigningSet.2.default.params.startTime=0
/var/lib/pki/instance_name/ca/profiles/ca/caSignedLogCert.cfg
ファイルで、以下を設定します。policyset.caLogSigningSet.2.default.params.startTime=0
issuerName
属し絵を証明書レコードに追加します。# pki-server db-upgrade
- インスタンス名にアンダースコアを使用できるように属性構文を更新します。
# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: cn=schema changetype: modify delete: objectClasses objectClasses: ( authority-oid NAME 'authority' DESC 'Certificate Authority' SUP top STRUCTURAL MUST ( cn $ authorityID $ authorityKeyNickname $ authorityEnabled $ authorityDN ) MAY ( authoritySerial $ authorityParentID $ authorityParentDN $ authorityKeyHost $ description ) X-ORIGIN 'user defined' ) delete: attributeTypes attributeTypes: ( authorityKeyNickname-oid NAME 'authorityKeyNickname' DESC 'Authority key nickname' SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 SINGLE-VALUE X-ORIGIN 'user-defined' ) add: attributeTypes attributeTypes: ( authorityKeyNickname-oid NAME 'authorityKeyNickname' DESC 'Authority key nickname' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE X-ORIGIN 'user-defined' ) add: objectClasses objectClasses: ( authority-oid NAME 'authority' DESC 'Certificate Authority' SUP top STRUCTURAL MUST ( cn $ authorityID $ authorityKeyNickname $ authorityEnabled $ authorityDN ) MAY ( authoritySerial $ authorityParentID $ authorityParentDN $ authorityKeyHost $ description ) X-ORIGIN 'user defined' )
21.1.3. KRA データベースのアップグレード
- データベースインデックスをアップグレードします。
# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: cn=realm,cn=index,cn=KRA_database_name,cn=ldbm database, cn=plugins,cn=config changetype: add objectClass: top objectClass: nsIndex nsindexType: eq nsindexType: pres nsSystemindex: false cn: realm
realm
属性を追加します。# ldapmodify -D "cn=Directory Manager" -W -h server.example.com -p 389 -x dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( realm-oid NAME 'realm' DESC 'CMS defined attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'user defined' ) delete: objectClasses objectClasses: ( request-oid NAME 'request' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( requestId $ dateOfCreate $ dateOfModify $ requestState $ requestResult $ requestOwner $ requestAgentGroup $ requestSourceId $ requestType $ requestFlag $ requestError $ userMessages $ adminMessages ) X-ORIGIN 'user defined' ) add: objectClasses objectClasses: ( request-oid NAME 'request' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( requestId $ dateOfCreate $ dateOfModify $ requestState $ requestResult $ requestOwner $ requestAgentGroup $ requestSourceId $ requestType $ requestFlag $ requestError $ userMessages $ adminMessages $ realm ) X-ORIGIN 'user defined' ) delete: objectClasses objectClasses: ( keyRecord-oid NAME 'keyRecord' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( serialno $ dateOfCreate $ dateOfModify $ keyState $ privateKeyData $ ownerName $ keySize $ metaInfo $ dateOfArchival $ dateOfRecovery $ algorithm $ publicKeyFormat $ publicKeyData $ archivedBy $ clientId $ dataType $ status ) X-ORIGIN 'user defined' ) add: objectClasses objectClasses: ( keyRecord-oid NAME 'keyRecord' DESC 'CMS defined class' SUP top STRUCTURAL MUST cn MAY ( serialno $ dateOfCreate $ dateOfModify $ keyState $ privateKeyData $ ownerName $ keySize $ metaInfo $ dateOfArchival $ dateOfRecovery $ algorithm $ publicKeyFormat $ publicKeyData $ archivedBy $ clientId $ dataType $ status $ realm ) X-ORIGIN 'user defined' )
- 仮想リストビュー (VLV) を更新して再インデックス化します。
- 既存のインデックスを削除します。
# pki-server kra-db-vlv-del -i CS_instance_name -D DS_bind_DN \ -w DS_bind_password
- 新しいインデックスを追加します。
# pki-server kra-db-vlv-add -i CS_instance_name -D DS_bind_DN \ -w DS_bind_password
- Directory Server インスタンスを再起動します。
# systemctl restart dirsrv@DS_instance_name
- データベースのインデックスを再作成します。
# pki-server kra-db-vlv-reindex -i CS_instance_name -D DS_bind_DN \ -w DS_bind_password
21.1.4. TPS データベースのアップグレード
21.2. 9.1 以降からのデータベースのアップグレード
パート V. Certificate System 9 への移行
第22章 Certificate System 8 から 9 への移行
22.1. 以前のシステムからのデータのエクスポート
- エクスポートするファイルのディレクトリーを作成します。以下に例を示します。
# mkdir -m 770 /tmp/cs_bak/
- 署名証明書とキーをエクスポートします。
- ハードウェアセキュリティーモジュール (HSM) を使用する場合:
- CA 署名証明書のニックネームを一覧表示します。以下に例を示します。
# grep ca.cert.signing.nickname /etc/pki/instance_name/ca/CS.cfg ca.signing.nickname=<nickname>
- CA 証明書をエクスポートします。
# certutil -L -d /var/lib/pki/instance_name/alias/ \ -n <nickname> \ -a > /tmp/cs_bak/ca_signing.crt
キーは HSM に保存され、新しいインスタンスで使用できる必要があります。
- HSM を使用しない場合:
- 設定ファイルで、CA Network Security Service (NSS) データベースを保護するパスワードを見つけて、ファイルに書き込みます。
# grep "internal=" /var/lib/pki/instance_name/conf/password.conf | \ awk -F= '{print $2;}' > /tmp/cs_bak/nss_password.txt
- 次のステップで使用するパスワードを含むファイルを作成します。以下に例を示します。
# echo Secret123 > /tmp/cs_bak/pkcs12_password.txt
- 署名証明書とキーをエクスポートします。
# PKCS12Export -d /var/lib/instance_name/alias/ \ -p /tmp/cs_bak/nss_password.txt \ -w /tmp/cs_bak/pkcs12_password.txt \ -o /tmp/cs_bak/ca.p12
- 証明書署名要求 (CSR) をエクスポートします。
# echo "-----BEGIN NEW CERTIFICATE REQUEST-----" > /tmp/cs_bak/ca_signing.csr # sed -n "/^ca.signing.certreq=/ s/^[^=]*=// p" /etc/pki/instance_name/ca/CS.cfg \ >> /tmp/cs_bak/ca_signing.csr # echo "-----END NEW CERTIFICATE REQUEST-----" >> /tmp/cs_bak/ca_signing.csr
- CA が中間 CA の場合は、NSS データベースからルート CA または証明書チェーンを展開します。
# certutil -L -d /var/lib/pki/instance_name/alias/ -n "root_CA_nickname" \ -a > /tmp/cs_bak/ca_rootca_signing.crt
- エクスポートされたファイルを含むディレクトリーを新しいサーバーにコピーします。以下に例を示します。
# scp -r /tmp/cs_bak/ new_server:/tmp/
- Directory Server で CA データベースの名前を見つけます。
# grep internaldb.database /etc/pki/instance_name/ca/CS.cfg \ internaldb.database=<CS_database_name>
この名前は、後でデータベースをエクスポートするために必要です。
- ファイルをエクスポートするためのディレクトリーを作成し、Directory Server ユーザーに書き込み権限を付与します。以下に例を示します。
# mkdir -m 770 /tmp/ds_bak/ # chown root:dirsrv /tmp/ds_bak/
注記db2ldif コマンドは、Directory Server ユーザー (dirsrv など) の下で実行されます。したがって、宛先ディレクトリーはこのユーザーが書き込み可能である必要があります。 - Directory Server データベースをエクスポートします。
# db2ldif -Z<DS_instance_name> -n <CS_database_name> -a /tmp/ds_bak/old_ca.ldif
上記の例では、以下のようになります。DS_instance_name
CA が使用する Directory Server インスタンス名です。以下に例を示します。CS_database_name
以前に取得した CA データベースの名前です。
- エクスポートされたファイルを含むディレクトリーを新しいサーバーにコピーします。以下に例を示します。
# scp -r /tmp/ds_bak/ new_server:/tmp/
22.2. 新規ホストでの CA の設定
- Directory Server を設定します。「Red Hat Directory Server のインストール」を参照してください。
- Certificate System リポジトリーを有効にします。「Red Hat サブスクリプションの添付および Certificate System パッケージリポジトリーの有効化」を参照してください。
- pki-ca パッケージをインストールします。
# yum install pki-ca
Certificate System コンソールなどの追加機能が必要な場合は、対応するパッケージをインストールします。詳細は、「Certificate System パッケージ」 を参照してください。 - IPv6 アドレスを使用するホストで CA をセットアップする場合は、「サブシステムの IPv6 の有効化」 で説明されている手順を適用します。
- 環境によって、この手順は異なります。
- ハードウェアセキュリティーモジュール (HSM) を使用する場合:
/root/pki-CA-deployment.txt
などのデプロイメント設定ファイルを次の内容で作成します。[DEFAULT] pki_instance_name=instance_name pki_admin_password=caadmin_password pki_client_pkcs12_password=pkcs12_file_password pki_ds_password=DS_password pki_hsm_enable=True pki_hsm_libfile=path_to_HSM_library pki_hsm_modulename=HSM_module_name pki_token_name=HSM_token_name pki_token_password=HSM_token_password pki_ds_ldap_port=389 pki_existing=True [CA] pki_ca_signing_csr_path=/tmp/cs_bak/ca_signing.csr pki_ca_signing_cert_path=/tmp/cs_bak/ca_signing.crt pki_ca_signing_nickname=caSigningCert ca-pki-ca pki_ca_signing_token=HSM_token_name pki_ds_base_dn=o=pki-tomcat-CA pki_ds_database=instance_name-CA pki_serial_number_range_start=4e pki_request_number_range_start=30 pki_master_crl_enable=False pki_cert_chain_path=/tmp/cs_bak/rootca_signing.crt pki_cert_chain_nickname=caSigningCert cert-top-rootca pki_ca_signing_record_create=False pki_ca_signing_serial_number=decimal_CA_signing_certificate_serial
前の例で使用されたパラメーターの説明については、この手順の最後にある 表22.1「pkispawn パラメーターの説明」 を参照してください。 - ハードウェアセキュリティーモジュール (HSM) を使用しない場合:
- PKCS #12 ファイルに CA 署名証明書とキーが含まれていることを確認します。以下に例を示します。
# pki pkcs12-cert-find --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt --------------- 1 entries found --------------- Certificate ID: 308b4c7d4b5efc4052aec26e49a2c5e2e14c9e90 Serial Number: 0x1 Nickname: caSigningCert ca-pki-ca Subject DN: CN=CA Signing Certificate,O=EXAMPLE Issuer DN: CN=CA Signing Certificate,O=EXAMPLE Trust Flags: CTu,Cu,Cu Has Key: true # pki pkcs12-key-find --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt --------------- 1 entries found --------------- Key ID: 308b4c7d4b5efc4052aec26e49a2c5e2e14c9e90 Subject DN: CN=CA Signing Certificate,O=EXAMPLE Algorithm: RSA
このファイルには、他の証明書とキーを追加で含めることができる点に注意してください。 - 前の手順の出力で、CA 署名証明書の信頼フラグを確認します。フラグが
CTu,Cu,Cu
に設定されていない場合、または欠落している場合は、フラグをリセットします。# pki pkcs12-cert-mod caSigningCert cert-pki-tomcat CA \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt \ --trust-flags "CTu,Cu,Cu"
- CA 署名証明書とキーを除く、他のすべての証明書とキーを PKCS #12 ファイルから削除します。以下に例を示します。
# pki pkcs12-cert-del Server-Cert root_CA_nickname \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt # pki pkcs12-cert-del "subsystemCert ca-pki-ca" \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt # pki pkcs12-cert-del "ocspSigningCert ca-pki-ca" \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt # pki pkcs12-cert-del "auditSigningCert ca-pki-ca" \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
- 移行する CA が中間 CA の場合は、ルート CA 証明書を PKCS #12 ファイルから削除します。以下に例を示します。
# pki pkcs12-cert-del ca-pki-ca \ --pkcs12-file /tmp/cs_bak/ca.p12 \ --pkcs12-password-file /tmp/cs_bak/pkcs12_password.txt
/root/pki-CA-deployment.txt
などのデプロイメント設定ファイルを次の内容で作成します。[DEFAULT] pki_instance_name=instance_name pki_admin_password=caadmin_password pki_client_pkcs12_password=pkcs12_file_password pki_ds_password=DS_password pki_ds_ldap_port=389 pki_existing=True [CA] pki_ca_signing_nickname=caSigningCert ca-pki-ca pki_ca_signing_csr_path=/tmp/cs_bak/ca_signing.csr pki_pkcs12_path=/tmp/cs_bak//cs_bak/ca.p12 pki_pkcs12_password=pkcs12_file_password pki_ds_base_dn=o=pki-tomcat-CA pki_ds_database=pki-tomcat-CA pki_serial_number_range_start=43 pki_request_number_range_start=30 pki_master_crl_enable=False pki_cert_chain_path=/tmp/cs_bak/rootca_signing.crt pki_cert_chain_nickname=caSigningCert cert-top-rootca pki_ca_signing_record_create=False pki_ca_signing_serial_number=decimal_CA_signing_certificate_serial
前の例で使用されたパラメーターの説明については、表22.1「pkispawn パラメーターの説明」 を参照してください。
表22.1 pkispawn パラメーターの説明 パラメーターおよび設定説明pki_hsm_*
およびpki_token_*
HSM との通信を有効にします。これらのパラメーターは、HSM を使用して CA をセットアップする場合にのみ設定してください。pki_existing=True既存の CA メカニズムを使用するように設定します。pki_ca_signing_nickname
CA 署名ニックネームは、前のインストールで使用されたものとまったく同じである必要があります。そうでない場合、インストーラーは署名キーを見つけることができません。pki_ca_signing_*
証明書署名要求 (CSR) および既存のマシンからコピーされた証明書ファイルへのパスを設定します。pki_pkcs12_*
PKCS #12 ファイルへのパスと、ファイルの復号化に使用するパスワードを設定します。HSM を使用して CA をデプロイする場合は、このパラメーターを設定しないでください。pki_ds_base_dn
Directory Server ベース識別名 (DN) を設定します。値は、以前の CA と同じでなければなりません。この値は、/var/lib/instance_name/conf/CS.cfg
ファイルのinternaldb.basedn
パラメーターにあります。pki_serial_number_range_start
シリアル番号は重要です。値は、以前の CA で使用される最後の数値よりも高くする必要があります。すでに使用されている番号を表示するには、古い CA のエージェントインターフェイスを参照してください。このパラメーターは、先頭に0x
の接頭辞なしで 16 進形式で設定されます。例 (4e
) で使用される値は、10 進数の78
です。pki_request_number_range_start
リクエスト番号が重要である。値は、以前の CA で使用される最後の数値よりも高くする必要があります。すでに使用されている番号を表示するには、古い CA のエージェントインターフェイスを参照してください。値は 10 進数の形式で設定されます。pki_master_crl_enable=Falseセットアップ中の証明書失効リスト (CRL) の初期作成と公開を防ぎます。代わりに、CRL はデータベースの移行時に古いデータからインポートされます。pki_cert_chain_path
およびpki_cert_chain_nickname
古い CA が中間 CA の場合にのみ、これらのパラメーターを設定します。この場合、ルート CA 証明書ファイルへのパスと、証明書を Network Security Services (NSS) データベースに保存するときに使用するニックネームにパラメーターを設定します。pki_ca_signing_record_create=Falsepkispawn プロセスの最後に CA 署名レコードの再作成を無効にします。これにより、古いデータベースをインポートできます。pki_ca_signing_serial_number
CA 署名証明書のシリアル番号を 10 進数で設定します。これは、最初に作成された署名証明書データベースレコードを削除し、代わりに ldif データインポートを介してインポートするためです。連続シリアル番号スキームでは、pki_serial_number_range_start に設定された値の 10 進数表現である必要があります。例: pki_serial_number_range_start=100 pki_ca_signing_serial_number=256詳細およびパラメーターの説明は、pkispawn(8) man ページを参照してください。 - デプロイメント設定ファイルを使用して新しい CA を作成します。以下に例を示します。
# pkispawn -s CA -f /root/pki-CA-deployment.txt
- CA 署名キー ID が既存の CA と新しい CA で同じであることを確認します。以下に例を示します。
# grep "internal=" /var/lib/instance_name/conf/password.conf | \ awk -F= '{print $2;}' > internal.txt
# certutil -K -d /var/lib/instance_name/alias/ -f internal.txt ... < 2> rsa 7bd4dc662670ebe08a35086b054175559608ac20 caSigningCert ca-pki-ca ...
22.3. 新規 CA へのデータのインポート
- 以前のバージョンから移行する場合、LDAP データ交換形式 (LDIF) ファイルを手動でクリーンアップする必要がある場合があります。Red Hat Directory Server 10 より前は、構文チェックはデフォルトで無効になっていました。したがって、以前のバージョンのデータには、現在 Directory Server 10 では無効になっているエントリーが含まれている可能性があります。以下に例を示します。
- ブール属性の値は、TRUE または FALSE (すべて大文字) に設定する必要があります。重要検索および置換ユーティリティーを使用して、すべての出現箇所を自動的に大文字に更新しないでください。LDIF ファイルの一部の属性にはこれらの文字列が含まれますが、ブール値タイプを使用しません。これらの属性の値を更新すると、インポートが失敗する場合があります。通常、ブール値属性は cn=CAList,ou=Security Domain,CS_instance_name セキュリティードメインデータベースエントリーでのみ使用されます。
- 空の文字列は削除する必要があります。Directory Server の構文検証では、空の文字列を設定できません。空の文字列は、ou=People,CS_instance_name の cmsUser エントリーに含まれる
userType
とuserState
の属性で頻繁に表示されます。
インポート中に、他のエントリーも失敗する可能性があります。データベースのインポート後にログファイルを確認することが重要です。オプションで、LDIF ファイルを一時的な空のデータベースにインポートして、インポートの失敗の原因となったエントリーを見つけることができます。 - CA サービスをシャットダウンします。
# systemctl stop pki-tomcatd@instance_name.service
- 必要に応じて、新しいホストの CA データベースをバックアップします。
# db2bak
バックアップは、/var/lib/dirsrv/instance_name/bak/host_name-time_stamp/
ディレクトリーに保存されます。 - データを新しいデータベースにインポートします。以下に例を示します。
# ldapmodify -h <hostname> -x -W -D 'cn=Directory Manager' -a -c -f /tmp/ds_bak/old_ca.ldif | \ tee /root/import.log
ldapmodify ユーティリティーは新しいエントリーのみを追加し、CA のインストール時に作成された既存のエントリーを更新しません。以下に例を示します。- トップレベルエントリー。たとえば、o=pki-tomcat-CAです。
- デフォルトグループたとえば、cn=Certificate Manager Agents,ou=groups,o=pki-tomcat-CA です。標準グループは更新されないため、ユーザーはこれらのグループに自動的に追加されません。インポート後に、各デフォルトグループにメンバーを手動で追加する必要があります。「デフォルトグループにユーザーの再割り当て」を参照してください。
- CA のデフォルトアクセス制御リスト (ACL)。
前述のとおり、Directory Server 10 は構文検証を使用します。/root/import.log
ファイルの出力を確認し、失敗したアクション (ldap_add: Invalid syntax (21)
など) を検索します。詳細は、ステップ 1 を参照してください。 - 古いセキュリティードメインのディレクトリーエントリーを削除します。以下に例を示します。
# ldapmodify -W -x -D "cn=Directory Manager" dn: cn=server.example.com:9445,cn=CAList,ou=Security Domain,o=pki-tomcat-CA changetype: delete
/etc/pki/instance_name/ca/CS.cfg
ファイル内の CA が証明書失効リスト (CRL) マスターとして機能するようにします。ca.crl.MasterCRL.enable=true
- CA サービスを起動します。
# systemctl start pki-tomcat@instance_name
22.4. デフォルトグループにユーザーの再割り当て
- クライアントを設定します。
# pki -c password client-init ------------------ Client initialized ------------------ # pk12util -i ~/.dogtag/instance_name/ca_admin_cert.p12 -d ~/.dogtag/nssdb/ Enter Password or Pin for "NSS Certificate DB": Enter password for PKCS12 file: pk12util: PKCS12 IMPORT SUCCESSFUL
user
アカウントをCertificate Manager Agents
、Administrators
、およびSecurity Domain Administrators
グループに追加します。# pki -n "PKI Administrator for example.com" -c password \ user-membership-add user_name "Certificate Manager Agents" # pki -n "PKI Administrator for example.com" -c password \ user-membership-add user "Administrators" # pki -n "PKI Administrator for example.com" -c password \ user-membership-add user "Security Domain Administrators"
第23章 OpenSSL CA の Certificate System への移行
23.1. HSM を使用しない場合の OpenSSL CA の Certificate System への移行
- 次のステップで使用するパスワードを含むファイルを作成します。以下に例を示します。
# echo password > ~/password.txt
- openssl pkcs12 コマンドを使用して、OpenSSL CA 証明書とキーを PKCS #12 ファイルにインポートします。以下のオプションを使用します。
-export
は、データをエクスポートするように openssl コマンドに指示します。-in path_to_ca_certificate
は、OpenSSL CA 証明書へのパスを設定します。-inkey path_to_CA_signing_key
は、OpenSSL CA 署名キーへのパスを設定します。-out path_to_PKCS_#12_file
は、出力が格納される PKCS #12 ファイルへのパスを設定します。-name "friendly_name"
は、証明書とキーにフレンドリー名を指定します。-passout file: path_to_password_file
は、PKCS #12 ファイルの暗号化に使用されるパスワードを含むテキストファイルへのパスを設定します。
たとえば、OpenSSL CA 証明書とキーを~/ca.p12
ファイルにエクスポートするには、次のようにします。# openssl pkcs12 -export -in ~/ca.crt -inkey ~/ca.key -out ~/ca.p12 \ -name "CA Certificate" -passout file:~/password.txt
- Public Key Infrastructure (PKI) コマンドラインインターフェイス用に、パスワードで保護された Network Security Services (NSS) データベースを初期化します。以下に例を示します。
# pki -c password client-init
~/password.txt
ファイルのパスワードを使用して、~/ca.12
ファイルに保存されている CA 証明書のニックネームでCA 証明書
のCTu,Cu,Cu
信頼フラグを設定します。# pki pkcs12-cert-mod --pkcs12-file ~/ca.p12 "CA Certificate" \ --pkcs12-password-file ~/password.txt --trust-flags "CTu,Cu,Cu"
重要スペースなしで信頼フラグを入力します。~/ca.p12
ファイルに保存されている CA 証明書を表示します。# pki pkcs12-cert-find --pkcs12-file ~/ca.p12 \ --pkcs12-password-file ~/password.txt --------------- 1 entries found -------------- Certificate ID: 9311084d08b37d12e856b904b7e52eb3b1cece4a Serial Number: 0xe3f2b350edcd875c Nickname: CA Certificate Subject DN: O=Example,CN=CA Certificate Issuer DN: O=Example,CN=CA Certificate Trust Flags: CTu,Cu,Cu Has Key: true
~/ca.p12
ファイルに保存されている CA 署名キーを表示します。# pki pkcs12-key-find --pkcs12-file ~/ca.p12 \ --pkcs12-password-file ~/password.txt --------------- 1 entries found --------------- Key ID: 9311084d08b37d12e856b904b7e52eb3b1cece4a Subject DN: CA Certificate Algorithm: RSA
- 次のファイルを新しい Certificate System ホストにコピーします。
- OpenSSL CA 署名証明書要求 (CSR)
- OpenSSL CA 証明書チェーン (利用可能な場合)
- OpenSSL CA 署名証明書と鍵を含む PKCS #12 ファイル
- PKCS #12 ファイルを保護するために使用されるパスワードファイル
たとえば、セキュアコピーを使用してファイルをコピーするには、次のようにします。# scp ~/ca.csr ~/certificate_chain.p7b ~/ca.p12 ~/password.txt new_server:~/
- 新しいホストで CA を設定します。詳細は、「新規ホストでの CA の設定」 を参照してください。
23.2. HSM 使用時の OpenSSL CA から Certificate System への移行
- 次のファイルを新しい Certificate System ホストにコピーします。
- PEM 形式の CA 署名証明書
- OpenSSL CA CSR
- 証明書 CA 証明書チェーン (利用可能な場合)
- 新しいホストで CA を設定します。詳細は、「新規ホストでの CA の設定」 を参照してください。
パート VI. Certificate System サブシステムのアンインストール
第24章 サブシステムの削除
pkidestroy -s subsystem_type -i instance_name
-s
オプションは、削除するサブシステムを指定します (CA、KRA、OCSP、TKS、または TPS など)。-i
オプションは、pki-tomcat
などのインスタンス名を指定します。
例24.1 CA サブシステムの削除
$ pkidestroy -s CA -i pki-tomcat Loading deployment configuration from /var/lib/pki/pki-tomcat/ca/registry/ca/deployment.cfg. Uninstalling CA from /var/lib/pki/pki-tomcat. Removed symlink /etc/systemd/system/multi-user.target.wants/pki-tomcatd.target. Uninstallation complete.
pkidestroy
ユーティリティーは、サブシステムと、証明書データベース、証明書、キー、関連ユーザーなどの関連ファイルを削除します。サブシステムパッケージをアンインストールしません。サブシステムがサーバーインスタンスの最後のサブシステムである場合は、サーバーインスタンスも削除されます。
第25章 Certificate System のサブシステムパッケージの削除
yum
のようなパッケージ管理ツールを使用して、各パッケージを個別に削除する必要があります。
- 関連するサブシステムをすべて削除します。以下に例を示します。
pkidestroy -s CA -i pki-tomcat
- uninstall ユーティリティーを実行します。以下に例を示します。
yum remove pki-subsystem_type
サブシステムタイプはca
、kra
、ocsp
、tks
、またはtps
にすることができます。 - その他のパッケージおよび依存関係を削除するには、
yum
を使用して、パッケージを具体的に削除します。インストールされているパッケージの完全なリストは、「Certificate System パッケージ」 を参照してください。
用語集
A
- agent (エージェント)
- Certificate System マネージャーで エージェントサービス (agent services) の管理を許可されたグループに属するユーザー。Certificate Manager エージェント、キーリカバリー認証局エージェント (Key Recovery Authority agent) も併せて参照してください。
- APDU
- アプリケーションプロトコルデータユニット。スマートカードとスマートカードリーダーとの間の通信に使用される通信ユニット (バイトに類似)。
- アクセス制御 (access control)
- 特定ユーザーが実行できるものを制御するプロセス。たとえば、サーバーへのアクセス制御は通常、パスワードまたは証明書によって確立された ID と、そのエンティティーが実行できることに関するルールに基づいています。アクセス制御リスト (ACL) も併せて参照してください。
- アクセス制御リスト (ACL)
- サーバーが特定のリソースへのアクセス要求を受け取ったときに評価されるアクセスルールの階層を定義するアクセス制御エントリーのコレクション。アクセス制御手順 (access control instructions, ACI) を参照してください。
- アクセス制御手順 (access control instructions, ACI)
- アクセスを要求するサブジェクトを識別する方法、または特定のサブジェクトに対して許可または拒否される権限を指定するアクセスルール。アクセス制御リスト (ACL) を参照してください。
- エージェントサービス (agent services)
- 1.エージェントに必要な特権が割り当てられた Certificate System サブシステムが提供する HTML ページを通じて、Certificate System agent (エージェント) が管理できるサービス。2.このようなサービスを管理するための HTML ページ。
- エージェント承認登録の設定 (agent-approved enrollment)
- 証明書の発行前に、エージェントによる要求を承認するのに必要な登録。
- 属性値アサーション (attribute value assertion, AVA)
- attribute = value の形式のアサーションで、attribute は o (組織) または uid (ユーザー ID) などのタグ、value は Red Hat, Inc.やログイン名などの値です。AVA は、証明書の サブジェクト名 (subject name) と呼ばれる、証明書の賢明を識別する 識別名 (distinguished name, DN) を形成するために使用されます。
- 監査ログ (autdit log)
- さまざまなシステムイベントを記録するログこのログは署名して、改ざんされなかった証明を提供でき、auditor ユーザーのみが読み取りできます。
- 監査者 (auditor)
- 署名付き監査ログを表示できる特権ユーザー。
- 管理者 (administrator)
- 1 つ以上の Certificate System マネージャーをインストールおよび設定し、それらの特権ユーザーまたはエージェントをセットアップする人。agent (エージェント) も併せて参照してください。
- 自動登録 (automated enrollment)
- 人の介入なしに、エンドエンティティー登録の自動認証を可能にする Certificate System サブシステムを設定する方法。この形式の認証では、認証モジュールの処理を正常に完了した証明書要求が、プロファイル処理と証明書の発行に対して自動的に承認されます。
- 認可 (authorization)
- サーバーが制御するリソースにアクセスするパーミッション。承認は通常、リソースに関連付けられた ACL がサーバーによって評価された後に行われます。アクセス制御リスト (ACL) を参照してください。
- 認証 (authentication)
- 自信を持って識別すること。コンピューター化された送信の当事者が偽者ではないことを保証すること。認証には通常、パスワード、証明書、PIN、またはその他の情報を使用して、コンピューターネットワーク上で ID を検証することが含まれます。パスワードベースの認証 (password-based authentication)、証明書ベースの認証 (certificate-based authentication)、クライアント認証 (client authentication)、サーバー認証 (server authentication) も参照してください。
- 認証モジュール (authentication module)
- ルールのセット (として実装されますJava™クラス) エンドエンティティー、エージェント、管理者、または Certificate System サブシステムと対話する必要があるその他のエンティティーを認証するため。通常のエンドユーザー登録の場合は、ユーザーが登録フォームで要求された情報を入力した後、登録サーブレットはそのフォームに関連付けられた認証モジュールを使用して情報を検証し、ユーザーの ID を認証します。サーブレット (servlet) を参照してください。
- 高度暗号化標準 (Advanced Encryption Standard, AES)
- Advanced Encryption Standard (AES) は、その前身の Data Encryption Standard (DES) と同様に、FIPS 承認の対称鍵暗号化標準です。AES は 2002 年に米国政府によって採用されました。AES-128、AES-192、および AES-256 の 3 つのブロック暗号を定義します。NIST (National Institute of Standards and Technology) は、米国で AES 標準を定義しています。FIPS PUB 197。詳細は、http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf を参照してください。
B
- バインド DN (bind DN)
- Red Hat Directory Server への認証にパスワードとともに使用される識別名 (DN) の形式のユーザー ID。
C
- CA サーバーキー (CA server key)
- CA サービスを提供するサーバーの SSL サーバーキー。
- CA 署名鍵 (CA signing key)
- CA 証明書の公開鍵に対応する秘密鍵。CA は、その署名キーを使用して証明書および CRL に署名します。
- CA 証明書 (CA certificate)
- CA 階層 (CA hierarchy)
- ルート CA が下位 CA に証明書を発行する権限を委任する CA の階層。下位 CA は、発行ステータスを他の CA に委譲して階層を拡張することもできます。認証局 (certificate authority, CA)、下位 CA (subordinate CA)、ルート CA も参照してください。
- Certificate Manager
- 認証局として機能する独立した Certificate System サブシステム。Certificate Manager インスタンスは、証明書を発行、更新、および取り消します。証明書は、CRL とともに LDAP ディレクトリーに公開できます。エンドエンティティーからのリクエストを受け入れます。認証局 (certificate authority, CA) を参照してください。
- Certificate Manager エージェント
- Certificate Manager のエージェントサービスの管理が許可されているグループに所属するユーザーです。これらのサービスには、証明書要求にアクセスして変更 (承認および拒否) し、証明書を発行する機能が含まれています。
- Certificate Request Message Format (CRMF)
- X.509 証明書の管理に関連するメッセージに使用される形式。この形式は CMMF のサブセットです。証明書管理メッセージ形式 (Certificate Management Message Formats, CMMF) も併せて参照してください。詳細は、http://www.ietf.org/rfc/rfc2511.txt を参照してください。
- Certificate System
- Certificate System コンソール
- 1 つの Certificate System インスタンスで開くことができるコンソール。Certificate System コンソールを使用すると、Certificate System 管理者は、対応する Certificate System インスタンスの設定を制御できます。
- Certificate System サブシステム
- 5 つの Certificate System マネージャーの 1 つ: Certificate Manager、Online Certificate Status Manager、キーリカバリー認証局、Token Key Service、または Token Processing System。
- CMC
- 暗号化メッセージ構文 (CMC) を介した証明書管理メッセージ を参照してください。
- CMC 登録 (CMC Enrollment)
- 署名された登録または署名された失効要求のいずれかを、エージェントの署名証明書を使用して Certificate Manager に送信できるようにする機能。これらの要求は Certificate Manager によって自動的に処理されます。
- CMMF
- CRL
- 証明書失効リスト (certificate revocation list, CRL) を参照してください。
- CRMF
- Certificate Request Message Format (CRMF) を参照してください。
- CSP
- クライアント SSL 証明書 (client SSL certificate)
- SSL プロトコルを使用してサーバーにクライアントを識別するために使用する証明書。セキュアソケットレイヤー (Secure Sockets Layer, SSL) を参照してください。
- クライアント認証 (client authentication)
- 名前とパスワード、または証明書とデジタル署名されたデータなどを使用して、サーバーに対してクライアントを識別するプロセス。証明書ベースの認証 (certificate-based authentication)、パスワードベースの認証 (password-based authentication)、サーバー認証 (server authentication) を参照してください。
- チェーン認証局 (chained CA)
- リンクされた CA (linked CA) を参照してください。
- ペア間の証明書 (cross-pair certificate)
- ある CA から別の CA に発行され、信頼の輪を形成するために両方の CA によって保存される証明書。2 つの CA は相互に証明書を発行し、両方のクロスペア証明書を証明書ペアとして格納します。
- 信頼チェーン (chain of trust)
- 証明書チェーン (certificate chain) を参照してください。
- 暗号アルゴリズム (cryptographic algorithm)
- 暗号化 (encryption) や 復号化 (decryption) などの暗号化操作を実行するために使用される一連のルールまたは方向。
- 暗号モジュール (cryptographic module)
- PKCS #11 モジュール を参照してください。
- 暗号化 (cipher)
- 暗号アルゴリズム (cryptographic algorithm) を参照してください。
- 暗号化サービスプロバイダー (cryptographic service provider, CSP)
- PKCS #11 で定義されているような標準インターフェイスを使用してそのようなサービスを要求するソフトウェアに代わって、キー生成、キーストレージ、暗号化などの暗号化サービスを実行する暗号化モジュール。
- 暗号化メッセージ構文 (CMC) を介した証明書管理メッセージ
- Certificate Manager への証明書の要求を伝えるために使用するメッセージ形式。Internet Engineering Task Force (IETF) PKIX の作業グループから提案された標準。詳細は、https://tools.ietf.org/html/draft-ietf-pkix-cmc-02 を参照してください。
- 暗号化メッセージ構文 (Cryptographic Message Syntax, CS)
- CMMF などの任意のメッセージにデジタル署名、ダイジェスト、認証、または暗号化するために使用される構文。
- 相互認証 (cross-certification)
- 異なる証明書階層またはチェーン内の 2 つの CA による証明書交換クロス認定は、両方の階層に対応できるように信頼チェーンを拡張します。認証局 (certificate authority, CA) も併せて参照してください。
- 証明書 (certificate)
- X.509 標準に準拠してフォーマットされたデジタルデータで、個人、会社などのエンティティー名 (証明書の サブジェクト名 (subject name)) を指定し、証明書に含まれる 公開鍵 (public key) もそのエンティティーに属することを証明するもの。証明書は発行され、認証局 (certificate authority, CA) により署名されます。証明書の有効性は、公開鍵暗号 (public-key cryptography) の手法で CA の デジタル署名 (digital signature) を確認して検証できます。公開鍵インフラストラクチャー (public-key infrastructure, PKI) 内で信頼されるために、証明書は、PKI に登録されているその他のエンティティーによって信頼されている CA により発行および署名される必要があります。
- 証明書のフィンガープリント (certificate fingerprint)
- 証明書に関連付けられた 一方向ハッシュ (one-way hash)。番号は証明書自体の一部ではありませんが、証明書の内容にハッシュ関数を適用することによって生成されます。証明書の内容が 1 文字でも変更されると、同じ関数で異なる番号が生成されます。したがって、証明書のフィンガープリントを使用して、証明書が改ざんされていないことを確認できます。
- 証明書チェーン (certificate chain)
- 連続した認証局によって署名された証明書の階層セット。CA 証明書は 認証局 (certificate authority, CA) を識別し、その認証局が発行した証明書の署名に使用されます。CA 証明書は、親 CA の CA 証明書により署名され、ルート CA まで署名できます。Certificate System により、エンドエンティティーが証明書チェーンのすべての証明書を取得できるようになります。
- 証明書プロファイル (certificate profile)
- 特定のタイプの登録を定義する一連の設定。証明書プロファイルは、証明書プロファイルの認証方法とともに、特定のタイプの登録のポリシーを設定します。
- 証明書ベースの認証 (certificate-based authentication)
- 証明書および公開鍵暗号に基づく認証。パスワードベースの認証 (password-based authentication) も併せて参照してください。
- 証明書失効リスト (certificate revocation list, CRL)
- X.509 標準で定義されているように、認証局 (certificate authority, CA) により生成され署名されたシリアル番号ごとに取り消された証明書のリスト。
- 証明書拡張 (certificate extensions)
- X.509 v3 証明書には、証明書に任意の数の追加フィールドを追加できる拡張フィールドが含まれています。証明書拡張は、代替サブジェクト名や使用制限などの情報を証明書に追加する方法を提供します。PKIX ワーキンググループによって、いくつかの標準拡張機能が定義されています。
- 証明書管理メッセージ形式 (Certificate Management Message Formats, CMMF)
- エンドエンティティーから Certificate Manager に証明書要求と失効要求を伝達し、エンドエンティティーにさまざまな情報を送信するために使用されるメッセージ形式。Internet Engineering Task Force (IETF) PKIX の作業グループから提案された標準。CMMF は、別の提案された標準 暗号化メッセージ構文 (CMC) を介した証明書管理メッセージ に含まれています。詳細は、https://tools.ietf.org/html/draft-ietf-pkix-cmmf-02 を参照してください。
- 認証局 (certificate authority, CA)
- 証明書が特定を意図している個人またはエンティティーの身元を検証した後、証明書 (certificate) を発行する信頼されたエンティティー。CA は証明書を更新し、取り消し、CRL を生成します。証明書の発行者フィールドで指定されたエンティティーは、常に CA です。認証局は、独立したサードパーティー、または Red Hat Certificate System などの証明書発行サーバーソフトウェアを使用する個人または組織にすることができます。
D
- キーリカバリー認証局
- エンドエンティティーの RSA 暗号化キーの長期アーカイブとリカバリーを管理する任意の独立した Certificate System サブシステム。Certificate Manager は、新しい証明書を発行する前に、キーリカバリー機関を使用してエンドエンティティーの暗号化キーをアーカイブするように設定できます。キーリカバリー機関は、エンドエンティティーが機密性の高い電子メールなど、組織がいつかリカバリーする必要のあるデータを暗号化している場合にのみ役立ちます。デュアルキーペアをサポートするエンドエンティティーでのみ使用できます。2 つの個別のキーペアで、1 つは暗号化用、もう 1 つはデジタル署名用です。
- キーリカバリー認証局のストレージキー (Key Recovery Authority storage key)
- キーリカバリー機関の秘密トランスポートキーで復号された後、エンドエンティティーの暗号化キーを暗号化するためにキーリカバリー機関によって使用される特別なキー。ストレージキーがキーリカバリー機関を離れることはありません。
- キーリカバリー認証局のトランスポート証明書 (Key Recovery Authority transport certificate)
- エンドエンティティーがキーリカバリー機関に転送するためにエンティティーの暗号化キーを暗号化するために使用する公開キーを認証します。キーリカバリー機関は、認証された公開鍵に対応する秘密鍵を使用して、ストレージ鍵で暗号化する前に、エンドエンティティーの鍵を復号します。
- キーリカバリー認証局エージェント (Key Recovery Authority agent)
- 要求キューの管理や HTML ベースの管理ページを使用したリカバリー操作の許可など、キーリカバリー機関のエージェントサービスの管理を許可されたグループに属するユーザー。
- キーリカバリー認証局リカバリーエージェント (Key Recovery Authority recovery agent)
- キーリカバリー認証局 のストレージキーの一部を所有している m of n 人の 1 人。
- デジタル ID (digital ID)
- 証明書 (certificate) を参照してください。
- デジタル署名 (digital signature)
- デジタル署名を作成するため、署名ソフトウェアは最初に、新しく発行された証明書など、署名するデータから 一方向ハッシュ (one-way hash) を作成します。次に、一方向ハッシュは署名者の秘密鍵で暗号化されます。作成されるデジタル署名は、署名されるデータごとに一意になります。1 つのコンマがメッセージに追加されていても、そのメッセージのデジタル署名が変更されます。署名者の公開鍵を使用したデジタル署名の復号に成功し、同じデータの別のハッシュと比較することで、改ざんの検出 (tamper detection) が可能になります。公開鍵を含む証明書の 証明書チェーン (certificate chain) の検証により、署名側の認証が提供されます。否認防止 (nonrepudiation)、暗号化 (encryption)も参照してください。
- デュアルキーペア (dual key pair)
- 2 つの個別の証明書に対応する、2 つの公開鍵と秘密鍵のペア (合計 4 つの鍵)。一方のペアの秘密鍵は署名操作に使用され、もう一方のペアの公開鍵と秘密鍵は暗号化および復号操作に使用されます。各ペアは個別の 証明書 (certificate) に対応します。暗号鍵 (encryption key)、公開鍵暗号 (public-key cryptography)、署名鍵 (signing key) も参照してください。
- デルタ CRL (delta CRL)
- 最後の完全な CRL が発行されてから取り消された証明書のリストを含む CRL。
- 分散ポイント (distribution points)
- 証明書セットを定義するのに CRL に使用されます。各ディストリビューションポイントは、発行する証明書のセットにより定義されます。CRL は、特定のディストリビューションポイント用に作成できます。
- 復号化 (decryption)
- 暗号化されたデータのスクランブル解除。暗号化 (encryption) を参照してください。
- 識別名 (distinguished name, DN)
- 証明書の件名を特定する一連の AVA。属性値アサーション (attribute value assertion, AVA) を参照してください。
E
- extensions フィールド
- 証明書拡張 (certificate extensions) を参照してください。
- エンドエンティティー (end entity)
- 公開鍵インフラストラクチャー (public-key infrastructure, PKI)、人、ルーター、サーバー、またはその他のエンティティーで、証明書 (certificate) を使用してそれ自体を特定します。
- エンロールメント (enrollment)
- 公開鍵インフラストラクチャー (public-key infrastructure, PKI) で使用する X.509 証明書を要求および受信するプロセス。登録 としても知られています。
- 傍受 (eavesdropping)
- 情報が意図されていないエンティティーによってネットワークを介して送信された情報の不正な傍受。
- 暗号化 (encryption)
- その意味を偽装する方法で情報をスクランブルします。復号化 (decryption) を参照してください。
- 暗号鍵 (encryption key)
- 暗号化のみに使用される秘密鍵。暗号化鍵とその同等の公開鍵、および 署名鍵 (signing key) とその同等の公開鍵は、デュアルキーペア (dual key pair) を設定します。
- 楕円曲線暗号 (Elliptic Curve Cryptography, ECC)
- 暗号鍵の基礎となる数学的な問題に対して、楕円曲線を用いて加算対数を作成する暗号アルゴリズム。ECC 暗号は、RSA 暗号よりも効率的に使用でき、本質的に複雑であるため、RSA 暗号よりも小さいビットで強力です。
F
- Federal Bridge Certificate Authority (FBCA)
- 2 つの CA が相互にクロスペア証明書を発行し、2 つのクロスペア証明書を単一の証明書ペアとして格納することにより、信頼の輪を形成する設定。
- FIPS PUBS 140
- FIPS PUBS (Federal Information Standards Publications) 140 は、データの暗号化と復号、またはデジタル署名の作成や検証などの他の暗号化操作を実行する暗号化モジュール、ハードウェア、またはソフトウェアの実装に関する米国政府の標準です。米国政府に販売される多くの製品は、1 つ以上の FIPS 標準に準拠する必要があります。
- ファイアウォール (firewall)
- 2 つ以上のネットワーク間の境界を強制するシステムまたはシステムの組み合わせ。
- フィンガープリント (fingerprint)
- 証明書のフィンガープリント (certificate fingerprint) を参照してください。
H
- Hypertext Transport Protocol (HTTP) および Hypertext Transport Protocol Secure (HTTPS)
- Web サーバーとの通信に使用されるプロトコル。HTTP S は、TLS (Transport Layer Security) によって暗号化された接続内の HTTP (Hypertext Transfer Protocol) を介した通信で設定されます。HTTPS の主な目的は、アクセスした Web サイトの認証と、交換されたデータのプライバシーと整合性の保護です。
I
- IP スプーフィング (IP spoofing)
- クライアント IP アドレスの禁止。
- IPv4 および IPv6 (IPv4 and IPv6)
- Certificate System は、すべてのサブシステムとツールとの通信と操作、およびクライアント、サブシステムの作成、トークンと証明書の登録のために、IPv4 と IPv6 の両方のアドレス名前空間をサポートします。
- なりすまし (impersonation)
- ネットワークを介して送信される情報の意図された受信者を装う行為。なりすましには、スプーフィング (spoofing) と 詐称 (misrepresentation) の 2 つの形式があります。
- 中間認証局 (intermediate CA)
- ルート CA と 証明書チェーン (certificate chain) で発行した証明書との間の証明書のある CA。
- 入力 (input)
- 証明書プロファイル機能のコンテキストでは、特定の証明書プロファイルの登録フォームを定義します。各入力が設定され、この登録用に設定されたすべての入力から登録フォームが動的に作成されます。
J
- JAR ファイル (JAR file)
- Java™ アーカイブ (JAR) 形式 (archive (JAR) format) に従って編成されたファイルの圧縮コレクションのデジタルエンベロープ。
- Java™ アーカイブ (JAR) 形式 (archive (JAR) format)
- デジタル署名、インストーラスクリプト、およびその他の情報をディレクトリー内のファイルに関連付けるための一連の規則。
- Java™ セキュリティーサービス (JSS)
- あJava™ネットワークセキュリティーサービス (NSS) によって実行されるセキュリティー操作を制御するためのインターフェイス。
- Java™ ネイティブインターフェイス (JNI) (Native Interface)
- 特定のプラットフォーム上の Java™ 仮想マシン (JVM) の異なる実装間でバイナリー互換性を提供する標準的なプログラミングインターフェイスで、単一のプラットフォーム用に C や C++ などの言語で記述された既存のコードを Java™ にバインドできるようにします。http://java.sun.com/products/jdk/1.2/docs/guide/jni/index.html を参照してください。
- Java™ 暗号アーキテクチャー (Cryptography Architecture, JCA)
- 暗号化サービス用に Sun Microsystems によって開発された API 仕様および参照。http://java.sun.com/products/jdk/1.2/docs/guide/security/CryptoSpec.Introduction を参照してください。
- Java™ 開発キット (Development Kit, JDK)
- Java™ プログラミング言語を使用してアプリケーションとアプレットを開発するために Sun Microsystems が提供するソフトウェア開発キット。
K
- KEA
- 鍵交換アルゴリズム (Key Exchange Algorithm, KEA) を参照してください。
- KEYGEN タグ (tag)
- 証明書で使用するキーペアを生成する HTML タグ。
- 鍵 (key)
- データを暗号化または復号化するために、暗号アルゴリズム (cryptographic algorithm) が使用する多数の数値。たとえば、あるユーザーの 公開鍵 (public key) にあるユーザーは、そのユーザー専用のメッセージを暗号化できます。その後、メッセージは対応する プライベートキー (private key) を使用して復号化する必要があります。
- 鍵交換 (key exchange)
- クライアントとサーバーが SSL セッション時に両方で使用する対称鍵を決定するために実行する手順。
- 鍵交換アルゴリズム (Key Exchange Algorithm, KEA)
- 米国政府が鍵交換に使用するアルゴリズム。
L
- Lightweight Directory Access Protocol (LDAP)
- TCP/IP および複数のプラットフォームで実行されるためのディレクトリーサービスプロトコル。LDAP は、X.500 ディレクトリーへのアクセスに使用される Directory Access Protocol (DAP) の簡易バージョンです。LDAP は IETF の変更制御下にあり、インターネット要件を満たすために進化しています。
- リンクされた CA (linked CA)
- 公開サードパーティーの CA によって署名される証明書が内部でデプロイされる 認証局 (certificate authority, CA)。内部 CA は、発行する証明書のルート CA として機能し、サードパーティー CA は、同じサードパーティールート CA にリンクされている他の CA によって発行された証明書のルート CA として機能します。チェーン CA としても知られており、異なるパブリック CA で使用される他の用語も使用します。
M
- MD5
- Ronald Rivest によって開発されたメッセージダイジェストアルゴリズム。一方向ハッシュ (one-way hash) も併せて参照してください。
- メッセージダイジェスト (message digest)
- 一方向ハッシュ (one-way hash) を参照してください。
- 手動認証 (manual authentication)
- 各証明書要求の人間による承認を必要とする Certificate System サブシステムを設定する方法。この形式の認証では、サーブレットは、認証モジュールの処理が成功した後、証明書要求を要求キューに転送します。次に、適切な権限を持つエージェントは、プロファイルの処理と証明書の発行を続行する前に、各要求を個別に承認する必要があります。
- 詐称 (misrepresentation)
- そうではない個人または組織としてのエンティティーの提示。たとえば、Web サイトが実際にはクレジットカードでの支払いを行いますが、商品を送信しないサイトである場合、その Web サイトは家具店のふりをする可能性があります。虚偽表示は なりすまし (impersonation) の 1 つの形式です。スプーフィング (spoofing) も併せて参照してください。
N
- non-TMS
- トークン以外の管理システム。スマートカードを直接処理 しない サブシステム (CA、および任意で KRA と OCSP) の設定を指します。
- ネットワークセキュリティーサービス (Network Security Services, NSS)
- セキュリティー対応の通信アプリケーションのクロスプラットフォーム開発をサポートするように設計されたライブラリーのセット。NSS ライブラリーを使用して構築されたアプリケーションは、認証、改ざん検出、および暗号化のための セキュアソケットレイヤー (Secure Sockets Layer, SSL) プロトコル、および暗号化トークンインターフェイスのための PKCS #11 プロトコルをサポートします。NSS は、ソフトウェア開発キットとして個別に利用できます。
- 否認防止 (nonrepudiation)
- メッセージの送信を拒否するためのメッセージの送信者による信頼性。デジタル署名 (digital signature) は、否認防止の形式を 1 つ提供します。
O
- OCSP
- オンライン証明書ステータスプロトコル
- オブジェクトの署名 (object signing)
- ソフトウェア開発者が Java コード、JavaScript スクリプト、またはあらゆる種類のファイルに署名し、ユーザーが署名者を識別し、署名されたコードによってローカルシステムリソースへのアクセスを制御できるようにするファイル署名の方法。
- オブジェクト署名証明書 (object-signing certificate)
- 秘密鍵に関連付けられた証明書は、オブジェクトの署名 (object signing) に関連するオブジェクトの署名に使用されます。
- 一方向ハッシュ (one-way hash)
- 1.ハッシュアルゴリズムを使用して任意の長さのデータから生成された固定長の数。メッセージダイジェストとも呼ばれる数字は、ハッシュされたデータに固有のものです。1 文字を削除または変更しても、データの変更は異なります。2.ハッシュされたデータの内容をハッシュから推測することはできません。
- 出力 (output)
- 証明書プロファイル機能のコンテキストでは、特定の証明書プロファイルの証明書登録が成功した結果のフォームを定義します。各出力が設定され、この登録に設定されたすべての出力からフォームを動的に作成します。
- 操作 (operation)
- アクセス制御命令で許可または拒否されている、読み取りや書き込みなどの特定の操作。
P
- PKCS #10
- 証明書要求を制御する公開鍵暗号標準規格。
- PKCS #11
- スマートカードなどの暗号化トークンを管理する公開鍵暗号化標準。
- PKCS #11 モジュール
- PKCS #11 インターフェイスを介して、暗号化サービス (暗号化や復号など) を提供する暗号化デバイスのドライバー。暗号化モジュール または 暗号化サービスプロバイダー とも呼ばれる PKCS #11 モジュールは、ハードウェアまたはソフトウェアのいずれかで実装できます。PKCS #11 モジュールには、常に 1 つ以上のスロットがあり、スマートカードなどの物理リーダーの形式で物理ハードウェアスロットとして、またはソフトウェアの概念スロットとして実装できます。PKCS #11 モジュールの各スロットには、トークンを追加できます。このトークンは、暗号化サービスを実際に提供し、必要に応じて証明書と鍵を保存するハードウェアまたはソフトウェアのデバイスです。Red Hat は、Certificate System とともに、ビルトイン PKCS #11 モジュールを提供します。
- PKCS #12
- 鍵の移植性を管理する公開鍵暗号化標準。
- PKCS #7
- 署名と暗号化を制御する公開鍵暗号標準。
- PKIX 証明書および CRL プロファイル (PKIX Certificate and CRL Profile)
- インターネット用の公開鍵インフラストラクチャー向けに IETF により開発された標準規格です。証明書および CRL のプロファイルを指定します。
- POA (proof-of-archival)
- キーのシリアル番号、キーリカバリー機関の名前、対応する証明書の サブジェクト名 (subject name)、およびアーカイブの日付など、アーカイブされたエンドエンティティーキーに関する情報を含む秘密キーリカバリー機関のトランスポートキーで署名されたデータ。署名されたアーカイブ証明データは、キーのアーカイブ操作が成功した後、キーリカバリー機関から Certificate Manager に返される応答です。キーリカバリー認証局のトランスポート証明書 (Key Recovery Authority transport certificate) も併せて参照してください。
- パスワードベースの認証 (password-based authentication)
- 名前とパスワードによる確実な識別。認証 (authentication)、証明書ベースの認証 (certificate-based authentication) も併せて参照してください。
- プライベートキー (private key)
- 公開鍵暗号で使用されるキーペアの 1 つ。秘密鍵は秘密を保持し、対応する 公開鍵 (public key) で暗号化されたデータの復号に使用されます。
- 公開鍵 (public key)
- 公開鍵暗号で使用されるキーペアの 1 つ。公開鍵は自由に配布され、証明書 (certificate) の一部として公開されます。これは通常、公開鍵の所有者に送信されるデータを暗号化するために使用され、所有者は対応する プライベートキー (private key) でデータを復号化します。
- 公開鍵インフラストラクチャー (public-key infrastructure, PKI)
- ネットワーク環境での公開鍵暗号化と X.509 v3 証明書の使用を容易にする標準とサービス。
- 公開鍵暗号 (public-key cryptography)
- エンティティーがその ID を電子的に検証したり、電子データに署名して暗号化したりできるようにする、確立された技術と標準のセット。公開鍵と秘密鍵の 2 つの鍵が関係します。公開鍵 (public key) は、特定の ID にキーを関連付ける証明書の一部として公開されます。対応する秘密鍵はシークレットに保存されます。公開鍵で暗号化したデータは、秘密鍵でのみ復号できます。
R
- RC2, RC4
- Rivest による RSA データセキュリティー向けに開発された暗号化アルゴリズム。暗号アルゴリズム (cryptographic algorithm) も併せて参照してください。
- Red Hat Certificate System
- 証明書を作成、デプロイ、および管理するための高度に設定可能なソフトウェアコンポーネントとツールのセット。Certificate System は、さまざまな物理的な場所にあるさまざまな Certificate System インスタンスにインストールできる 5 つの主要なサブシステム (Certificate Manager、Online Certificate Status Manager、キーリカバリー認証局、Token Key Service, and Token Processing System) で設定されています。
- RSA アルゴリズム (RSA algorithm)
- Rivest-Shamir-Adleman の略で、暗号化と認証の両方の公開鍵アルゴリズムです。Ronald Rivest、Adi Shamir、および Leonard Adleman により開発され、1978 で導入されました。
- RSA キー交換 (RSA key exchange)
- RSA アルゴリズムに基づいた SSL の鍵交換アルゴリズム。
- ルート CA
- 証明書チェーンの上部に自己署名証明書が含まれている 認証局 (certificate authority, CA)。CA 証明書 (CA certificate)、下位 CA (subordinate CA) も併せて参照してください。
- 登録 (registration)
- エンロールメント (enrollment) を参照してください。
S
- SELinux (Security Enhanced Linux)
- SELinux (Security-Enhanced Linux) は、Linux システムカーネルに強制アクセス制御を適用するセキュリティープロトコルのセットです。SELinux は、米国国家安全保障局によって開発され、寛大なアクセス制御または欠陥のあるアクセス制御を介してアプリケーションが機密ファイルまたは保護されたファイルにアクセスするのを防ぎます。
- SHA
- セキュアなハッシュアルゴリズム (米国政府が使用するハッシュ関数)。
- SSL
- セキュアソケットレイヤー (Secure Sockets Layer, SSL) を参照してください。
- サブジェクト (subject)
- 証明書 (certificate) で識別されるエンティティー。特に、証明書のサブジェクトフィールドには、認定されたエンティティーを一意に識別する サブジェクト名 (subject name) が含まれます。
- サブジェクト名 (subject name)
- サンドボックス (sandbox)
- Java™ コードが動作する必要がある、注意して定義された制限の Java™ 用語。
- サーバー SSL 証明書 (server SSL certificate)
- セキュアソケットレイヤー (Secure Sockets Layer, SSL) プロトコルを使用して、クライアントにサーバーを識別するために使用する証明書。
- サーバー認証 (server authentication)
- クライアントにサーバーを特定するプロセス。クライアント認証 (client authentication) も併せて参照してください。
- サーブレット (servlet)
- Certificate System サブシステムに代わってエンドエンティティーとの特定の種類の相互作用を処理する Java™ コード。たとえば、証明書の登録、失効、およびキーリカバリー要求は、それぞれ別のサーブレットで処理されます。
- シングルサインオン (single sign-on)
- 1.Certificate System において、内部データベースとトークンのパスワードを保管することにより、Red Hat Certificate System へのサインオン方法を簡素化するパスワード。ユーザーがログインするたびに、この単一のパスワードを入力する必要があります。2.ユーザーが 1 台のコンピューターに一度ログインし、ネットワーク内のさまざまなサーバーによって自動的に認証される機能。部分的なシングルサインオンソリューションは、さまざまなサーバーで使用されるパスワードを自動的に追跡するメカニズムなど、さまざまな形式をとることができます。証明書は、公開鍵インフラストラクチャー (public-key infrastructure, PKI) 内のシングルサインオンをサポートします。ユーザーは、ローカルクライアントの秘密鍵データベースに一度ログインし、クライアントソフトウェアが動作している限り、証明書ベースの認証 (certificate-based authentication) を使用して、ユーザーがアクセスを許可されている組織内の各サーバーにアクセスすることができます。
- スプーフィング (spoofing)
- 他人のふりをします。たとえば、あるユーザーがメールアドレス jdoe@example.com やコンピューターから、www.redhat.com と呼ばれるサイトとして誤って特定できます。なりすましは、なりすまし (impersonation) の 1 つの形です。詐称 (misrepresentation) も併せて参照してください。
- スマートカード (smart card)
- マイクロプロセッサーを搭載し、キーや証明書などの暗号化情報を格納し、暗号化操作を実行する小さなデバイス。スマートカードは、一部またはすべて PKCS #11 インターフェイスを実装します。
- スロット (slot)
- PKCS #11 モジュール の一部 (ハードウェアまたはソフトウェアのいずれか)。これには トークン (token) が含まれています。
- セキュアなチャンネル (secure channel)
- TPS とスマートカード間のセキュリティーアソシエーション。TKS とスマートカード APDU によって生成された共有マスターキーに基づいて暗号化された通信を可能にします。
- セキュアソケットレイヤー (Secure Sockets Layer, SSL)
- クライアントとサーバーとの間の相互認証と、認証および暗号化された接続の確立を可能にするプロトコル。SSL は、TCP/IP より上で、HTTP、LDAP、IMAP、NNTP、およびその他の高レベルネットワークプロトコルより下で実行されます。
- セキュリティードメイン (security domain)
- PKI サブシステムの集中リポジトリーまたはインベントリー。その主な目的は、サブシステム間の信頼できる関係を自動的に確立することにより、新しい PKI サービスのインストールと設定を容易にすることです。
- セルフテスト (self tests)
- インスタンスの起動時とオンデマンドの両方の Certificate System インスタンスをテストする機能。
- 下位 CA (subordinate CA)
- 証明書を行う認証局は、別の下位 CA またはルート CA により署名されます。CA 証明書 (CA certificate)、ルート CA を参照してください。
- 対象暗号化 (symmetric encryption)
- 同じ暗号化キーを使用して特定のメッセージを暗号化および復号する暗号化方式。
- 簡易証明書登録プロトコル (Simple Certificate Enrollment Protocol, SCEP)
- ルーターがルーター証明書登録のために CA と通信する方法を指定するためにシスコによって設計されたプロトコル。証明書システムは、要求が CA 署名証明書で暗号化される SCEP の CA 動作モードをサポートします。
- 署名アルゴリズム (signature algorithm)
- デジタル署名の作成に使用される暗号化アルゴリズム。Certificate System は、MD5 および SHA 署名アルゴリズムに対応します。暗号アルゴリズム (cryptographic algorithm)、デジタル署名 (digital signature) も併せて参照してください。
- 署名付き監査ログ (signed audit log)
- 監査ログ (autdit log) を参照してください。
- 署名証明書 (signing certificate)
- 公開鍵である証明書は、デジタル署名の作成に使用される秘密鍵に対応します。たとえば、Certificate Manager には、発行する証明書の署名に使用する秘密鍵に対応する公開鍵である署名証明書が必要です。
- 署名鍵 (signing key)
- 署名用途に使用する秘密鍵署名鍵とその同等の公開鍵、および 暗号鍵 (encryption key) とその同等の公開鍵は、デュアルキーペア (dual key pair) を設定します。
T
- token key service (トークンキーサービス、TKS)
- スマートカードの APDU およびトークン CUID などの他の共有情報に基づいて、スマートカードごとに特定の個別のキーを取得するトークン管理システムのサブシステム。
- ツリー階層 (tree hierarchy)
- LDAP ディレクトリーの階層構造。
- トランスポートレイヤーセキュリティー (Transport Layer Security, TLS)
- サーバー認証、クライアント認証、およびサーバーとクライアントとの間の暗号化通信を管理する一連のルール。
- トークン (token)
- PKCS #11 モジュール の スロット (slot) に関連付けられたハードウェアまたはソフトウェアのデバイス暗号化サービスを提供し、必要に応じて証明書および鍵を保存します。
- トークン処理システム (token processing system, TPS)
- Enterprise Security Client とスマートカードを直接対話して、これらのスマートカードのキーと証明書を管理するサブシステム。
- トークン管理システム (token management system, TMS)
- 相互に関連するサブシステム (CA、TKS、TPS、および任意で KRA) は、スマートカード (トークン) の証明書を管理するために使用されます。
- 信頼 (trust)
- 個人または他のエンティティーに確定します。公開鍵インフラストラクチャー (public-key infrastructure, PKI) では、信頼とは、証明書のユーザーと、その証明書を発行した 認証局 (certificate authority, CA) との間の関係を指します。CA が信頼されている場合は、その CA が発行する有効な証明書を信頼できます。
- 改ざんの検出 (tamper detection)
- 電子形式で受信したデータが同じデータの元のバージョンと完全に対応することを保証するメカニズム。
U
- UTF-8
- 証明書の登録ページは、特定のフィールド (共通名、組織単位、要求者名、および追加のメモ) で UTF-8 文字をサポートします。UTF-8 文字列は、CA、OCSP、および KRA エンドユーザーおよびエージェントサービスページで検索可能かつ正しく表示されます。ただし、UTF-8 のサポートは、電子メールアドレスで使用されるような国際化ドメイン名には拡張されません。
V
- 仮想プライベートネットワーク (virtual private network, VPN)
- 企業の地理的に離れた部署を接続する方法。VPN を使用すると、部署間は暗号化されたチャンネルを介して通信できるため、通常はプライベートネットワークに制限される認証済みの機密トランザクションが可能になります。
X
- X.509 バージョン 1 およびバージョン 3 (X.509 version 1 and version 3 )
- 国際電気通信連合 (ITU) が推奨するデジタル証明書形式。
索引
シンボル
- アクティブなログ
- デフォルトのファイルの場所, ログ
- メッセージカテゴリー, ログに記録されるサービス
- アルゴリズム
- 暗号化, 暗号化と復号
- アーカイブ
- ローテーションされたログファイル, ログファイルローテーション
- インストール, Certificate System のインストールおよび設定
- プランニング, PKI の計画に関するチェックリスト
- インストールの計画, PKI の計画に関するチェックリスト
- エラーログ
- エージェント
- エージェント証明書, ユーザー証明書
- キューの公開, キューの有効化および設定
- 有効化, キューの有効化および設定
- キー
- キーの長さ, 署名キーの種類と長さの選択
- キーアーカイブ, キーのアーカイブ
- 仕組み, キーのアーカイブ
- 設定方法, キーアーカイブの手動設定
- 鍵の保存先, キーのアーカイブ
- 鍵の保存方法, キーのアーカイブ
- キーリカバリー, キーのリカバリー
- 設定方法, エージェント承認キーリカバリースキームの設定
- キーリカバリー認証局
- 設定
- キーアーカイブ, キーアーカイブの手動設定
- キーリカバリー, エージェント承認キーリカバリースキームの設定
- クライアント認証
- 定義された SSL/TLS クライアント証明書, 証明書の種類
- クローン, CA クローン
- スマートカード
- Windows ログイン, Windows スマートカードのログオンプロファイルの使用
- タイミングログローテーション, ログファイルローテーション
- ディレクトリーの属性
- CS でサポート, CA 発行証明書の DN 属性の変更
- 新規の追加, 新規属性またはカスタム属性の追加
- デジタル署名
- 定義, デジタル署名
- デプロイメントのプランニング
- CA 決定
- ルート対下位, 認証局階層の定義
- 署名証明書, CA 署名証明書の有効期間の設定
- 署名鍵, 署名キーの種類と長さの選択
- 識別名, CA 識別名の計画
- トークン管理, Certificate System を使用したスマートカードトークン管理
- デプロイメント用の CA の決定
- CA の更新, CA 署名証明書の更新または再発行
- ルート対下位, 認証局階層の定義
- 署名証明書, CA 署名証明書の有効期間の設定
- 署名鍵, 署名キーの種類と長さの選択
- 識別名, CA 識別名の計画
- トポロジーの決定 (デプロイメント用), Certificate System を使用したスマートカードトークン管理
- トークン
- external, Certificate System サブシステムのキーおよび証明書を保存するトークン
- internal, Certificate System サブシステムのキーおよび証明書を保存するトークン
- Windows ログイン, Windows スマートカードのログオンプロファイルの使用
- インストールされているトークンの表示, トークンの表示
- 定義, Certificate System サブシステムのキーおよび証明書を保存するトークン
- トークンキーサービス, Certificate System を使用したスマートカードトークン管理
- トークン処理システム、および, Certificate System を使用したスマートカードトークン管理
- トークン処理システム, Certificate System を使用したスマートカードトークン管理
- スケーラビリティー, スマートカードの使用
- トークンキーサービス、および, Certificate System を使用したスマートカードトークン管理
- ハードウェアアクセラレーター, Certificate System サブシステムのキーおよび証明書を保存するトークン
- ハードウェアトークン, Certificate System サブシステムのキーおよび証明書を保存するトークン
- 外部トークンを参照してください。, Certificate System サブシステムのキーおよび証明書を保存するトークン
- バッファーされたログ, バッファー付きおよびバッファーなしのロギング
- バッファーされていないロギング, バッファー付きおよびバッファーなしのロギング
- パスワード
- password.conf ファイルの設定, password.conf ファイルの設定
- サブシステムインスタンスによって使用, password.conf ファイルの設定
- サブシステムインスタンスの場合, システムパスワードの管理
- 認証での使用, 認証によるアイデンティティーの確認
- パスワードベースの認証, 定義, パスワードベースの認証
- ポート
- メール、署名、および暗号化, 署名済みおよび暗号化電子メール
- ユーザーの秘密鍵の復元, キーのリカバリー
- ユーザー証明書, ユーザー証明書
- リンクされた CA, リンクされた CA
- ルートと下位 CA, 認証局階層の定義
- ログ
- バッファリングと非バッファリング, バッファー付きおよびバッファーなしのロギング
- ログに記録されるサービス, ログに記録されるサービス
- ログの種類, ログ
- Audit, トランザクションログ
- エラー, Tomcat のエラーとアクセスログ
- ログファイル
- デフォルトの場所, ログ
- ローテーションされたファイルのアーカイブ, ログファイルローテーション
- ローテーションのタイミング, ログファイルローテーション
- ログレベル, ログレベル (メッセージカテゴリー)
- デフォルト選択, ログレベル (メッセージカテゴリー)
- メッセージカテゴリーとどのように関連するか。, ログレベル (メッセージカテゴリー)
- 右レベルの選択の重要性, ログレベル (メッセージカテゴリー)
- ログのフラッシュ間隔, バッファー付きおよびバッファーなしのロギング
- ログファイルの場所の特定
- ファイルのアーカイブ, ログファイルローテーション
- 時間の設定方法, ログファイルローテーション
- 信頼される CA, 定義, CA 証明書による信頼の仕組み
- 公開
- CRL
- オンライン検証機関, OCSP サービス
- キュー, キューの有効化および設定
- (参照 キューの公開)
- 公開鍵
- 内部トークン, Certificate System サブシステムのキーおよび証明書を保存するトークン
- 場所
- アクティブなログファイル, ログ
- 変更
- DirectoryString の DER エンコーディング順序, DER エンコード順序の変更
- 外部トークン
- 定義された秘密鍵, 公開鍵の暗号化
- 拡張機能
- 構造, 証明書の拡張機能の構造
- 新規ディレクトリー属性の追加, 新規属性またはカスタム属性の追加
- 暗号化
- 監査ログ
- 定義, トランザクションログ
- 署名証明書
- CA, CA 署名証明書の有効期間の設定
- 自動失効の確認, CA での自動失効チェックの有効化
- 自己署名証明書, CA 階層
- 設定
- キーアーカイブ, キーアーカイブの手動設定
- キーリカバリー, エージェント承認キーリカバリースキームの設定
- 設定ファイル, CS.cfg ファイル
- CS.cfg, CS.cfg 設定ファイルの概要
- format, CS.cfg 設定ファイルの概要
- 証明書
- CA 証明書, 証明書の種類
- S/MIME, 証明書の種類
- チェーン, 証明書チェーン
- 使用する認証, 証明書ベースの認証
- 内容, 証明書の内容
- 取り消し, 証明書の有効期限および更新
- 更新, 証明書の有効期限および更新
- 発行, 証明書の発行
- 自己署名, CA 階層
- 証明書チェーンの確認, 証明書チェーンの確認
- 証明書プロファイル
- Windows スマートカードログイン, Windows スマートカードのログオンプロファイルの使用
- 証明書ベースの認証
- 認証
- certificate-based, 証明書ベースの認証
- クライアントおよびサーバー, 認証によるアイデンティティーの確認
- クライアント認証も併せて参照してください。, 証明書ベースの認証
- サーバー認証も併せて参照してください。, 証明書ベースの認証
- パスワードベース, パスワードベースの認証
- 識別名 (DN)
- CA の場合, CA 識別名の計画
- 属性サポートの拡張, CA 発行証明書の DN 属性の変更
- 鍵の検索方法, キーのアーカイブ
A
- accelerators, Certificate System サブシステムのキーおよび証明書を保存するトークン
C
- CA
- certificate, 証明書の種類
- trusted, CA 証明書による信頼の仕組み
- 定義, 証明書は誰または何を識別
- 階層およびルート, CA 階層
- CA のスケーラビリティー, CA クローン
- CA の署名キー, 署名キーの種類と長さの選択
- CA チェーン, リンクされた CA
- CA 署名証明書, CA 署名証明書, その他の署名証明書, CA 署名証明書の有効期間の設定
- CA 階層, Certificate System CA への従属
- root CA, Certificate System CA への従属
- subordinate CA, Certificate System CA への従属
- Certificate Manager
- CA 署名証明書, CA 署名証明書
- CA 階層, Certificate System CA への従属
- KRA および, 紛失したキーの計画: キーのアーカイブと回復
- subordinate CA として, Certificate System CA への従属
- クローン, CA クローン
- サードパーティーの CA へのチェーン, リンクされた CA
- ルート CA として, Certificate System CA への従属
- CRL
- CS でのディレクトリー属性サポートの拡張, CA 発行証明書の DN 属性の変更
- CS.cfg, CS.cfg ファイル
- コメントおよび TPS, CS.cfg 設定ファイルの概要
D
- DirectoryString の DER エンコーディング順序, DER エンコード順序の変更
K
- KRA
- Certificate Manager および, 紛失したキーの計画: キーのアーカイブと回復
P
- password.conf
- コンテンツ, password.conf ファイルの設定
- コンテンツの設定, password.conf ファイルの設定
- 場所の設定, password.conf ファイルの設定
- PKCS #11 サポート, Certificate System サブシステムのキーおよび証明書を保存するトークン
R
- root CA, Certificate System CA への従属
- RSA, 署名キーの種類と長さの選択
S
- S/MIME 証明書, 証明書の種類
- SSL/TLS
- クライアント証明書, 証明書の種類
- SSL/TLS クライアント証明書, SSL/TLS サーバーおよびクライアント証明書
- SSL/TLS サーバー証明書の場合, SSL/TLS サーバーおよびクライアント証明書
- subordinate CA, Certificate System CA への従属
- subsystems
- パスワードファイルの設定, password.conf ファイルの設定
T
- TPS
- CS.cfg ファイルのコメント, CS.cfg 設定ファイルの概要
- Windows スマートカードログイン, Windows スマートカードのログオンプロファイルの使用
W
- Windows スマートカードログイン, Windows スマートカードのログオンプロファイルの使用
付録A 改訂履歴
改訂履歴 | |||
---|---|---|---|
改訂 9.7-1 | Fri Feb 12 2020 | ||
| |||
改訂 9.7-0 | Tue Sep 29 2020 | ||
| |||
改訂 9.6-0 | Wed Sep 16 2020 | ||
| |||
改訂 9.5-0 | Tue Aug 06 2019 | ||
| |||
改訂 9.4-0 | Thu Oct 25 2018 | ||
| |||
改訂 9.3-2 | Thu May 03 2018 | ||
| |||
改訂 9.3-1 | Tue Apr 10 2018 | ||
| |||
改訂 9.2-2 | Tue Dec 12 2017 | ||
| |||
改訂 9.2-1 | Tue Aug 01 2017 | ||
| |||
改訂 9.1-2 | Thu Mar 09 2017 | ||
| |||
改訂 9.1-0 | Tue Nov 01 2016 | ||
| |||
改訂 9.0-3 | Tue Aug 02 2016 | ||
| |||
改訂 9.0-2 | Thu Oct 22 2015 | ||
| |||
改訂 9.0-1 | Fri Sep 04 2015 | ||
| |||
改訂 9.0-0 | Fri Aug 28 2015 | ||
|