計画、インストール、およびデプロイメントのガイド
Red Hat Certificate System 9.7 用に更新
Marc Muehlfeld
Petr Bokoč
Filip Hanzelka
Tomáš Čapek
Aneta Petrová
Ella Deon Ballard
概要
パート 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
.
表1.1 共通証明書
証明書の種類 | 使用 | 例 |
---|---|---|
クライアント 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 である必要がありますが、コンテンツフィールドの構造は次のとおりです。
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 の DN、USA CA が含まれています。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.1. 個別インスタンスと共有インスタンス
- 個別の PKI インスタンスは、単一の Java ベースの Apache Tomcat インスタンスとして実行されます。
- 個別の PKI インスタンスには、単一の PKI サブシステム (CA、KRA、OCSP、TKS、または TPS) が含まれます。
- 同じ物理マシンまたは仮想マシン (VM) 上に共存する場合、別の PKI インスタンスは一意のポートを使用する必要があります。
- 共有 PKI インスタンスは、単一の Java ベースの Apache Tomcat インスタンスとしても実行されます。
- 単一の PKI サブシステムを含む共有 PKI インスタンスは、別の PKI インスタンスと同じです。
- 共有 PKI インスタンスには、各タイプの PKI サブシステムへの任意の組み合わせが含まれる可能性があります。
- CA のみ
- TKS のみ
- CA および KRA
- CA および OCSP
- TKS および TPS
- CA、KRA、TKS、および TPS
- CA、KRA、OCSP、TKS、および TPS
- など。
- 共有 PKI インスタンスを使用すると、そのインスタンスに含まれるサブシステムがすべて同じポートを共有できます。
- 共有 PKI インスタンスは、複数の同一物理マシンまたは仮想マシンに共存する場合、一意のポートを使用する必要があります。
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
オプションを使用してサブシステム名を指定すると、そのサブシステムのセクションのみが読み取られます。
名前=値の
ペアは、Tomcat
セクションのペアをオーバーライドし、さらに DEFAULT
セクションのペアをオーバーライドします。デフォルトのペアは、インタラクティブ入力か、指定された PKI インスタンス設定ファイル内のペアによってさらに上書きできます。
名前=値の
ペアをオーバーライドする場合は常に、それらを任意の場所に保存し、いつでも指定できます。これらのファイルは pkispawn の マニュアルページでは myconfig.txt
と呼ばれていますが、.ini
ファイル、またはより一般的には PKI インスタンス設定オーバーライドファイルと呼ばれることもよくあります。
pki_default.cfg の
マニュアルページを参照してください。
/usr/share/java/
pki/pki-certsrv.jar に次のように格納された Java バイトコードで設定されます。com/netscape/certsrv/system/ConfigurationRequest.class
.サーブレットは pkispawn を使用して設定スクリプトレットから JSON オブジェクトとして渡されたデータを処理し、同じファイルで提供される Java バイトコードを使用して pkispawn に戻ります。com/netscape/certsrv/system/ConfigurationResponse.class
.
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
ウォッチドッグ
サービスの詳細については、「パスワードおよびウォッチドッグ (nuxwdog)」 『Red Hat Certificate System Administration Guide』 の 『Using Certificate System Watchdog Service』 セクション。
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 の
マニュアルページを参照してください。
$
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 tomcat instance_name - 特定のインスタンスの各 PKI サブシステムのオン/オフ、ポート、URL などのステータス情報を提供します。
- pkidaemon start tomcat instance_name .service - systemctl を使用して内部的に使用されます。
pkidaemon の
マニュアルページを参照してください。
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
表2.1 デフォルトの Web サービスページ
ポート | 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 |
[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
ファイルに保管されます。詳細は 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://< ホスト名 > : < ポート >/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 ファイルを、Tomcat Server HTTP エンジンと JSS (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
セクションを PKI インスタンスオーバーライド設定ファイルに追加し、必要に応じてそのセクションの下に次の 名前=値の
ペアを追加することにより、すべての範囲を CA インスタンスのインストール時に設定できます。/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
セクションを PKI インスタンスオーバーライドファイルに追加し、そのセクションの下に次の 名前=値の
ペアを追加することで、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 パブリッシングは、パブリッシュディレクトリー用に新しく設定されたディレクトリーマネージャーパスワードが password.conf
に入力される 1 つの例です。
password.conf
ファイルを完全に削除できます。再起動時に、nuxwdog ウォッチドッグプログラムは、パラメーター cms.passwordlist
(およびcms.tokenList
HSM が使用されている場合) プロンプトを表示するパスワードのリストとして。その後、パスワードは nuxwdog によってカーネルキーリングにキャッシュされ、サーバークラッシュからの自動回復が可能になります。制御されていないシャットダウン (クラッシュ) が原因で、この自動リカバリー (自動サブシステム再起動) が発生します。管理者が制御したシャットダウンの場合は、管理者がパスワードを再度要求します。
2.3.11. 内部 LDAP データベース
2.3.12. SELinux (Security Enhanced Linux)
図2.1 CA SELinux ポートポリシー

- 各サブシステムインスタンスのファイルおよびディレクトリーには、特定の SELinux コンテキストのラベルが付けられます。
- 各サブシステムインスタンスのポートは、特定の SELinux コンテキストでラベル付けされます。
- すべての Certificate System プロセスは、サブシステム固有のドメイン内で制限されます。
- 各ドメインには、ドメインに承認されたアクションを定義する特定のルールがあります。
- SELinux ポリシーに指定されていないアクセスは、Certificate System インスタンスに対して拒否されます。
pkispawn が
実行されるたびに、そのサブシステムに関連付けられたファイルとポートは、必要な 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
です。真の値は、サブシステムが pkispawn
で作成されたときに指定されたものです。
表2.2 Tomcat インスタンス情報
設定 | 値 |
---|---|
メインディレクトリー | /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
です。真の値は、サブシステムが pkispawn
で作成されたときに指定されたものです。
表2.3 CA サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /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
です。真の値は、サブシステムが pkispawn
で作成されたときに指定されたものです。
表2.4 KRA サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /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
です。真の値は、サブシステムが pkispawn
で作成されたときに指定されたものです。
表2.5 OCSP サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /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
です。真の値は、サブシステムが pkispawn
で作成されたときに指定されたものです。
表2.6 TKS サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /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
です。真の値は、サブシステムが pkispawn
で作成されたときに指定されたものです。
表2.7 TPS サブシステム情報
設定 | 値 |
---|---|
メインディレクトリー | /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 サブシステムファイルの場所
表2.8 サブシステムファイルの場所
ディレクトリーの場所 | コンテンツ |
---|---|
/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) を生成します。注記キーリカバリーエージェント (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.4. 共有シークレットのワークフロー
エンドエンティティーユーザーによって作成された共有シークレット (推奨)
- エンドエンティティーユーザーは、CA 管理者から発行保護証明書を取得します。
- エンドエンティティーユーザーは、
CMCSharedToken
ユーティリティーを使用して共有秘密トークンを生成します。注記-p
オプションは、トークンのパスワードではなく、CA とユーザー間で共有されるパスフレーズを設定します。 - エンドエンティティーユーザーは、
CMCSharedToken
ユーティリティーによって生成された暗号化された共有トークンを管理者に送信します。 - 管理者は、共有トークンをユーザーの LDAP エントリーの
shrTok
属性に追加します。 - エンドエンティティーユーザーは、パスフレーズを使用して
witness.sharedSecret
CMCRequest
ユーティリティーに渡される設定ファイルのパラメーター。
CA 管理者によって作成された共有シークレット
- 管理者は、
CMCSharedToken
ユーティリティーを使用して、ユーザーの共有秘密トークンを生成します。注記-p
オプションは、トークンのパスワードではなく、CA とユーザー間で共有されるパスフレーズを設定します。 - 管理者は、共有トークンをユーザーの LDAP エントリーの
shrTok
属性に追加します。 - 管理者は、パスフレーズをユーザーと共有します。
- エンドエンティティーユーザーは、パスフレーズを使用して
witness.sharedSecret
CMCRequest
ユーティリティーに渡される設定ファイルのパラメーター。
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
の形式の名前で保存されます。LDAP ベースのプロファイルは、適切な pkispawn 設定パラメーターで可能です。
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 で生成され、任意で新しく発行された証明書とともにアーカイブされます。『Red Hat Certificate System 管理ガイド』 の『サーバー側の鍵生成を使用した 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 ウォッチドッグ
を使用している場合)# 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 ウォッチドッグ
を使用している場合)# 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 ウォッチドッグ
を使用している場合)# 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 ウォッチドッグ
を使用している場合)# 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 ウォッチドッグ
を使用している場合)# systemctl start pki-tomcatd-nuxwdog@pki-kra.service
- 新しい KRA トランスポート証明書を使用した CA 設定の更新
- CA に組み込む新しい KRA トランスポート証明書をフォーマットします。
- 前の手順で KRA トランスポート証明書を取得したときに作成された
cert-serial_number .txt
KRA トランスポート証明書ファイルを取得します。 cert-serial_number .txt
に含まれる Base64 でエンコードされた証明書を単一行のファイルに変換します。# tr -d '\n' < cert-serial_number.txt > cert-one-line-serial_number.txt
- CA と、上記の KRA に対応するすべてのクローンに対して以下を行います。
- CA を停止します。
# systemctl stop pki-tomcatd@pki-ca.service
または (nuxwdog ウォッチドッグ
を使用している場合)# 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 ウォッチドッグ
を使用している場合)# 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 ウォッチドッグ
を使用している場合)# 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 ウォッチドッグ
を使用している場合)# 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.2. キー階層 (共有キートランスポート)
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 アプレットのバージョン
- 登録操作のためにこのトークンに配置される証明書の数
- 内部登録 - この場合、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. トークンの状態
表2.9 考えられるトークンの状態
名前 | コード | ラベル |
---|---|---|
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
< 現在のコード > : < 新しいコード >
の形式で記述されます。このコードは 表2.9「考えられるトークンの状態」 で説明されています。デフォルト設定は /usr/share/pki/tps/conf/CS.cfg
に保持されます。
表2.10 可能な手動トークン状態遷移
遷移 | 現在の状態 | 次の状態 | 説明 |
---|---|---|---|
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
状態にのみ戻ることができます。
表2.11 自動的にトリガーされるトークンの状態遷移
遷移 | 現在の状態 | 次の状態 | 説明 |
---|---|---|---|
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
< 現在のコード > : < 新しいコード >
の形式で記述されます。このコードは 表2.9「考えられるトークンの状態」 で説明されています。デフォルト設定は /usr/share/pki/tps/conf/CS.cfg
に保持されます。
表2.12 トークン操作を使用した可能なトークン状態遷移
遷移 | 現在の状態 | 次の状態 | 説明 |
---|---|---|---|
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. トークンアクティビティーログ
表2.13 TPS アクティビティーログイベント
アクティビティー | 説明 |
---|---|
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 でデフォルトで提供される唯一のマッピングリゾルバー実装です。これにより、各マッピングに マッピング のセットおよびターゲットの結果を定義できます。各マッピングにはフィルターのセットが含まれ、ここでは以下のようになります。
- 入力フィルターパラメーターがマッピング内の すべての フィルターを通過すると、
ターゲット
値が割り当てられます。 - 入力パラメーターでフィルターが失敗すると、そのマッピングはスキップされ、次の順番に試行されます。
- フィルターに指定された値がない場合は、常に合格します。
- フィルターに指定された値がある場合、入力パラメーターは完全に一致する必要があります。
- マッピングが定義される順序は重要です。合格した最初のマッピングは解決されたと見なされ、呼び出し元に返されます。
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
- 開始と終了は、このフィルターを通過するためにトークンのカード固有 ID (CUID) が該当する必要がある範囲を定義します。
2.5.2.6. TPS ロール
- TPS 管理者: このロールは以下を許可します。
- TPS トークンの管理
- TPS 証明書およびアクティビティーの表示
- TPS ユーザーおよびグループの管理
- 一般的な TPS 設定の変更
- TPS オーセンティケーターおよびコネクターの管理
- TPS プロファイルおよびプロファイルマッピングの設定
- TPS 監査ロギングの設定
- TPS エージェント: このロールは以下を許可します。
- TPS トークンの設定
- TPS 証明書およびアクティビティーの表示
- TPS プロファイルのステータスの変更
- TPS オペレーター: このロールは以下を許可します。
- TPS トークン、証明書、およびアクティビティーの表示
2.5.3. TKS/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
ユーティリティーの実行時に作成されます。このブートストラップ管理者はデフォルトで caadmin
ユーザー名を使用しますが、pki_admin_uid
pkispawn コマンドに渡される設定ファイル内のパラメーター。ブートストラップ管理者が、最初の管理者およびエージェントユーザーを作成します。この操作には、ユーザーおよびグループの管理者権限と、証明書を発行するエージェントの権限が必要です。
2.6.6.2. 組み込みサブシステムの信頼ロール
2.7. クローン
2.7.1. クローン作成について
図2.5 クローン作成の例

- DNS ラウンドロビン。複数のサーバーに負荷を分散するネットワーク輻輳を管理する機能です。
- スティッキー SSL/TLS。これにより、ユーザーがシステムに戻して、以前使用された同じホストをルーティングできるようになります。
、Tomcat
セクションを PKI インスタンスオーバーライド設定ファイルに追加し、そのセクションの下に次の 2 つの name=value
ペアを追加することで、これを可能にするように変更されました。
[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
ファイルに影響を与える変更 (KRA 接続の追加やカスタムプロファイルの作成など) は、クローンの作成 後に 変更が発生した場合、クローンの設定にコピーされません。
2.7.4. KRA のクローン作成
2.7.5. 他のサブシステムのクローン作成
2.7.6. クローンおよびキーストア
pki_backup_keys
とpki_backup_password
pkispawn
設定ファイルのパラメーター。の BACKUP PARAMETERS
セクションを参照してください。pki_default.cfg(5)詳細については、man ページを参照してください。
PKCS12Export
ユーティリティーを使用してキーを PKCS #12 ファイルに抽出できます。「ソフトウェアデータベースからのサブシステムキーのバックアップ」 .
pkispawn
設定ファイルで定義します。pki_clone_pkcs12_password
とpki_clone_pkcs12_path
パラメーター 詳細については、クローンのインストール
セクションを参照してください。pkispawn(8)マンページ。特に、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 ツールで実行される操作- Web サービス用の
pkiconsole
ユーティリティーと IPv6 対応ブラウザーの両方を含むクライアント通信 - 証明書要求名と証明書サブジェクト名 (ユーザー、サーバー、ルーターの証明書など)
- 公開
- 内部データベースおよび認証ディレクトリーでの LDAP データベースへの接続
- IPv4 アドレスは、
nnnn
またはnnnn,mmmm
の形式である必要があります。たとえば、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 形式およびプロトコル
表3.1 Certificate System 9 でサポートされている 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 ブラウザー
表4.1 プラットフォームでサポートされる 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. インストールする証明書の決定
表5.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 では、コマンド semanage port -l を実行して、現在 SELinux コンテキストを持つすべてのポートをリスト表示することにより、ポートが SELinux によって割り当てられていないことを確認することも役立ちます。
5.6. Certificate System サブシステムのキーおよび証明書を保存するトークン
cert8.db
) および キーデータベース (key3.db
) と呼ばれるファイルのペアであり、証明書システムがキーペアと証明書を生成および保存するために使用します。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. ファイアウォールの設定
表6.1 Certificate System のデフォルトポート
サービス
|
ポート
|
プロトコル
|
---|---|---|
HTTP
|
8080
|
TCP
|
HTTPS
|
8443
|
TCP
|
Tomcat 管理
|
8005
|
TCP
|
pkispawn
ユーティリティーを使用して証明書システムをセットアップする場合、ポート番号をカスタマイズできます。上記のデフォルトとは異なるポートを使用する場合は、「ファイアウォールで必要なポートを開く」の説明に従ってファイアウォールで対応して開きます。ポートの詳細は、「ポートの計画」を参照してください。
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 Security Guide』 またはfirewall-cmd(1)マンページ。- 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
がリストされている場合、FIPS モードが有効になっています。ただし、新しいバージョンでは、新しい モード
行を確認して fips1402level3
を探す方がよいでしょう。いずれの場合も、nfkminfo の
出力には hkfips
キーも含まれているはずです。
6.4.3.2. FIPS モードが Luna SA HSM で有効にされているかどうかの確認
- ルナッシュ 管理コンソールを開く
- hsm show コマンドを使用して、出力 に HSM は FIPS 140-2 承認済み操作モードですというテキストが含まれていることを確認します。 :
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 が HSM に接続できるようにします。pki_token_password
の値は、特定の HSM トークンのパスワードによって異なります。このパスワードにより、pkispawn
ユーティリティーは、HSM で新しいキーを作成するための読み取りおよび書き込みアクセス許可を与えられます。- の値
pki_hsm_modulename
後の pkispawn 操作で HSM を識別するために使用される名前です。文字列は、任意のものとして設定できる識別子です。これにより、pkispawn
と証明書システムは、後の操作で 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~...
name
Cardset
セクションのフィールドには、トークン名がリスト表示されます。
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-11-for-rhel-8-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
セットアップ
設定ファイルを指定して dscreate コマンドを使用してインスタンスを作成します。#
dscreate from-file /tmp/ds-setup.inf
詳細な手順は、『Red Hat Directory Server インストールガイド』を参照してください。
6.5.2. Directory Server での TLS サポートの有効化
6.5.2.1. 例の値を使用した新規 Red Hat Certificate System サブシステムでの LDAPS の有効化方法
- NSS データベースへの同時変更を回避するために、Directory Server インスタンスを停止します。
# systemctl stop dirsrv@instance_name.service
- Directory Manager のパスワードを
/etc/dirsrv/instance_name/password.txt
ファイルに保存します。以下に例を示します。# echo password > /etc/dirsrv/slapd-instance_name/password.txt # chown dirsrv.dirsrv /etc/dirsrv/slapd-instance_name/password.txt # chmod 400 /etc/dirsrv/slapd-instance_name/password.txt
- Directory Manager のパスワードを
/etc/dirsrv/instance_name/pin.txt
ファイルに保存します。以下に例を示します。# echo "Internal (Software) Token:password" > /etc/dirsrv/slapd-instance_name/pin.txt # chown dirsrv.dirsrv /etc/dirsrv/slapd-instance_name/pin.txt # chmod 400 /etc/dirsrv/slapd-instance_name/pin.txt
- NSS データベースのパスワードを設定します。
# certutil -W -d /etc/dirsrv/slapd-instance_name/ -f /etc/dirsrv/slapd-instance_name/password.txt
- Directory Server の一時的な自己署名証明書を作成します。
$
cd /etc/dirsrv/slapd-instance_name$
openssl rand -out noise.bin 2048$
certutil -S \ -x \ -d . \ -f password.txt \ -z noise.bin \ -n "DS Certificate" \ -s "CN=$HOSTNAME" \ -t "CT,C,C" \ -m $RANDOM \ -k rsa \ -g 2048 \ -Z SHA256 \ --keyUsage certSigning,keyEncipherment - Directory Server 証明書エントリーが NSS データベースで利用可能かどうかを確認します。
# certutil -L -d /etc/dirsrv/slapd-instance_name/
- 証明書をエクスポートします。
# certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" -a > ds.crt
- Directory Server 証明書が自己署名されていることを確認します。
# certutil -L -d /etc/dirsrv/slapd-instance_name -n "DS Certificate" Issuer: "CN=server.example.com" Subject: "CN=server.example.com"
- Directory Server インスタンスを停止します。
#
systemctl start dirsrv@instance_name - セキュアな接続を有効にします。
# ldapmodify -x -p 389 -h $HOSTNAME -D "cn=Directory Manager" -w password << EOF dn: cn=config changetype: modify replace: nsslapd-security nsslapd-security: on dn: cn=RSA,cn=encryption,cn=config changetype: add objectclass: top objectclass: nsEncryptionModule cn: RSA nsSSLPersonalitySSL: DS Certificate nsSSLToken: internal (software) nsSSLActivation: on EOF
- オプションで、デフォルト (636) とは異なる LDAPS ポートを設定します。
- たとえば、LDAPS ポートを 11636 に設定するには、次のようにします。
ldapmodify -x -p 389 -h $HOSTNAME -D "cn=Directory Manager" -w password << EOF dn: cn=config changetype: modify replace: nsslapd-secureport nsslapd-secureport: 11636 EOF
- この標準以外のポートの SELinux ポリシーを設定します。
# semanage port -a -t ldap_port_t -p tcp 11636
- Directory Server インスタンスを再起動します。
# systemctl restart dirsrv@instance_name
/var/log/dirsrv/slapd- instance_name/errors
ファイルで、Directory Server が TLS モードで起動したことを確認します。[30/Jun/2016:00:23:31 +0200] - SSL alert: Security Initialization: Enabling default cipher set. [30/Jun/2016:00:23:31 +0200] - SSL alert: Configured NSS Ciphers [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_RSA_WITH_AES_128_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_DSS_WITH_AES_128_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_RSA_WITH_AES_256_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_DSS_WITH_AES_256_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_RSA_WITH_AES_128_GCM_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_RSA_WITH_AES_128_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_RSA_WITH_AES_128_CBC_SHA256: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_RSA_WITH_AES_256_CBC_SHA: enabled [30/Jun/2016:00:23:31 +0200] - SSL alert: TLS_RSA_WITH_AES_256_CBC_SHA256: enabled [30/Jun/2016:00:23:31 +0200] SSL Initialization - Configured SSL version range: min: TLS1.0, max: TLS1.2 [30/Jun/2016:00:23:31 +0200] - 389-Directory/1.3.4.11 B2016.166.1911 starting up
openldap-clients
と NSS データベースを使用して TLS 接続を確認します。$
LDAPTLS_CACERTDIR=/etc/dirsrv/slapd-instance_name \ ldapsearch -H ldaps://$HOSTNAME:11636 \ -x -D "cn=Directory Manager" -w Secret.123 \ -b "dc=example,dc=org" -s base "(objectClass=*)"
6.5.3. 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
parameter は、対応するサブシステムデータベースを Directory Server インスタンス上に作成するために pkispawn
ユーティリティーが使用する名前です。
pki_ds_hostname
パラメーターの値は、Directory Server インスタンスのインストール場所によって異なります。これは、「Certificate System 用の Directory Server インスタンスの準備」 および 「Directory Server での TLS サポートの有効化」 で使用される値によって異なります。
pki_ds_secure_connection_ca_pem_file
: Directory Server の CA 証明書のエクスポートされたコピーを含むファイルのファイル名を含む完全修飾パスを設定します。このファイルは、pkispawn が
利用できるようになる前に存在している必要があります。pki_ds_ldaps_port
: Directory Server がリッスンしているセキュアな LDAPS ポートの値を設定します。デフォルトは 636 です。
6.5.4. 一時的な証明書の置き換え
- 新しい 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.5. TLS クライアント認証の有効化
pkispawn は、
内部 Directory Server 上に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 更新は 後でパッケージを使用します。
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 ステップインストールを使用するタイミング
- セキュリティーの強化。
- サブシステム証明書のカスタマイズ。
- の暗号リストのカスタマイズ
sslRangeCiphers
/etc/pki/instance_name/server.xml
ファイルのパラメーターを、既存の Certificate System に接続する新しい Certificate System インスタンスをインストールする際に使用します。 - 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
管理
ユーザー、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
セクションに次のパラメーターを設定して、インストール中に自動的に作成される管理者
ユーザーのデータを指定します。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
セクションに次のパラメーターを追加して、RSA プロファイルを ECC プロファイルで上書きします。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
- 必要に応じて、共有 CA インスタンスにすでにインストールされている KRA を使用して TPS がサーバー側のキー生成を使用するように設定するには、
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
と呼ばれます。
外部 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
真に: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