2.2. Certificate System サブシステムの概要

2.2.1. 個別インスタンスと共有インスタンス

Red Hat Certificate System は、すべてのサブシステムに個別の PKI インスタンスのデプロイメントをサポートします。
  • 個別の PKI インスタンスは、単一の Java ベースの Apache Tomcat インスタンスとして実行されます。
  • 個別の PKI インスタンスには、単一の PKI サブシステム (CA、KRA、OCSP、TKS、または TPS) が含まれます。
  • 同じ物理マシンまたは仮想マシン (VM) 上に共存する場合、別の PKI インスタンスは一意のポートを使用する必要があります。
または、Certificate System は、共有 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 インスタンスの可用性

Certificate System インスタンスをインストールする前に、ローカルまたはリモートの Red Hat Directory Server LDAP インスタンスが利用できる必要があります。Red Hat Directory Server のインストール方法は、Red Hat Directory Server インストールガイド を参照してください。

2.2.2.2. PKI パッケージ

Red Hat Certificate System は、以下のパッケージで設定されています。
  • 以下のベースパッケージは Certificate System のコアを形成し、ベースの Red Hat Enterprise Linux リポジトリーで利用できます。
    • pki-core
      • pki-base
      • pki-base-java
      • pki-ca
      • pki-javadoc
      • pki-kra
      • pki-server
      • pki-symkey
      • pki-tools
  • 以下に記載するパッケージは、ベースの Red Hat Enterprise Linux サブスクリプションチャンネルでは利用 できません。これらのパッケージをインストールするには、Red Hat Certificate System サブスクリプションプールを割り当て、RHCS リポジトリーを有効にする必要があります。詳細は、「Red Hat サブスクリプションの添付および Certificate System パッケージリポジトリーの有効化」 を参照してください。
    • pki-core
      • pki-console
      • pki-ocsp
      • pki-tks
      • pki-tps
    • redhat-pki
      • redhat-pki: pki-core モジュールのパッケージをすべて含めます。redhat-pki パッケージを個別に選択する場合は、pki-core モジュールを無効にすることを推奨します。
      • redhat-pki-console-theme
      • redhat-pki-server-theme
Red Hat Enterprise Linux 8 システムを使用 (必要に応じて 4章サポート対象のプラットフォーム に記載されているサポート対象のハードウェアセキュリティーモジュールで設定されているものを使用) して、Red Hat Certificate System をインストールする前に、すべてのパッケージが最新の状態であることを確認します。
(pki-javadocを除く) すべての Certificate System パッケージをインストールするには、dnf を使用して redhat-pki メタパッケージをインストールします。
# dnf install redhat-pki
必要に応じて 1 つ以上の最上位の PKI サブシステムパッケージをインストールしてください。実際のパッケージ名については、上記の一覧を参照してください。このアプローチを使用する場合は、必ず redhat-pki-server-theme パッケージもインストールし、必要に応じて redhat-pki-console-theme および pki-console で PKI コンソールを使用するようにしてください。
最後に、開発者および管理者は JSS および PKI javadoc (jss-javadoc および pki-javadoc) をインストールすることもできます。
注記
jss-javadoc パッケージでは、Subscription Manager で Server-Optional リポジトリーを有効にする必要があります。

2.2.2.3. インスタンスのインストールと設定

pkispawn コマンドラインツールを使用して、新しい PKI インスタンスをインストールおよび設定します。個別インストールと設定手順がなく、バッチプロセスとして、または両方の組み合わせ (パスワードを要求するバッチプロセス) のいずれかを対話的に実行することができます。このユーティリティーは、ブラウザーベースのグラフィカルインターフェイスをインストールまたは設定する方法を提供していません。
使用方法は、pkispawn --help コマンドを使用します。
pkispawn コマンド:
  1. プレーンテキストの設定ファイル (/etc/pki/default.cfg) からデフォルトの name=value ペアで読み取ります。
  2. 指定されたペアを対話的にまたは自動的に上書きし、最終結果を Python ディクショナリーとして保存します。
  3. 順序付けされた スクリプトレット を実行し、サブシステムおよびインスタンスインストールを実行します。
  4. 設定スクリプトレットは、Python ディクショナリーを JavaScript Object Notation (JSON) データオブジェクトとしてパッケージ化し、Java ベースの設定サーブレットに渡されます。
  5. 設定サーブレットはこのデータを使用して新しい PKI サブシステムを設定し、制御を pkispawn 実行可能ファイルに渡して、PKI 設定の最終処理を行います。最終的なデプロイメントファイルのコピーは /var/lib/pki/instance_name/<subsystem>/registry/<subsystem>/deployment.cfg に保存されます。
詳細は、pkispawn の man ページを参照してください。
デフォルトの設定ファイル /etc/pki/default.cfg は、上記のプロセスの開始時に読み込まれるデフォルトのインストールと設定値を含むプレーンテキストのファイルです。これは、DEFAULTTomcatCAKRAOCSPTKS、および TPS セクションに分割された name=value ペアで設定されます。
pkispawn-s オプションを使用してサブシステム名を指定すると、そのサブシステムのセクションのみが読み取られます。
セクションには階層があります。サブシステムセクションで指定した name=value のペアは、[Tomcat] セクションのペアを上書きし、[DEFAULT] セクションのペアを上書きします。デフォルトのペアは、インタラクティブ入力か、指定された PKI インスタンス設定ファイル内のペアによってさらに上書きできます。
注記
非対話形式ファイルを使用してデフォルトの name=value ペアを上書きする場合は常に、任意の場所に保存され、いつでも指定できます。これらのファイルは、pkispawn の man ページにある myconfig.txt や、.ini ファイル、またはより一般的には PKI インスタンス設定オーバーライドファイルとも呼ばれます。
詳細は、pki_default.cfg の man ページを参照してください。
設定サーブレット は、/usr/share/java/pki/pki-certsrv.jarcom/netscape/certsrv/system/ConfigurationRequest.class として保存されている Java バイトコードで設定されます。サーブレットは、pkispawn を使用して設定スクリプトレットから JSON オブジェクトとして渡されるデータを処理し、com/netscape/certsrv/system/ConfigurationResponse.class と同じファイルで提供される Java バイトコードを使用して pkispawn に戻ります。
対話型インストールの例では、root 権限で、コマンドラインで pkispawn コマンドを実行するだけです。
# pkispawn
重要
現在、インタラクティブなインストールは、非常に基本的なデプロイメントでのみ存在します。たとえば、クローン作成、Elliptic Curve Cryptography (ECC)、外部 CA、Hardware Security Module (HSM)、下位 CA などの高度な機能を使用する場合、デプロイメントは個別の設定ファイルで必要なオーバーライドパラメーターを提供する必要があります。
非対話的なインストールでは、PKI インスタンス設定の上書きファイルが必要ですが、プロセスは以下の例のようになります。
  1. # mkdir -p /root/pki
  2. vim などのテキストエディターを使用して、以下の内容を含む /root/pki/ca.cfg という名前の設定ファイルを作成します。
    [DEFAULT]
    pki_admin_password=<password>
    pki_client_pkcs12_password=<password>
    pki_ds_password=<password>
  3. # pkispawn -s CA -f /root/pki/ca.cfg
さまざまな設定例は、pkispawn の man ページを参照してください。

2.2.2.4. インスタンスの削除

既存の PKI インスタンスを削除するには、pkidestroy コマンドを使用します。対話的に実行することも、バッチプロセスとして実行することもできます。pkidestroy -h を使用して、コマンドラインで詳細な使用方法を表示します。
pkidestroy コマンドは、サブシステムの作成時に保存された PKI サブシステムデプロイメント設定ファイル (/var/lib/pki/instance_name/<subsystem>/registry/<subsystem>/deployment.cfg) で読み込んで、読み込んだファイルを使用して PKI サブシステムを削除してから、追加のサブシステムがない場合は PKI インスタンスを削除します。詳細は、pkidestroy の man ページを参照してください。
pkidestroy を使用したインタラクティブな削除手順は、以下のようになります。
# 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. 起動、停止、再起動、およびステータスの取得

Red Hat Certificate System サブシステムインスタンスは、Red Hat Enterprise Linux 8 で systemctl 実行管理システムツールを使用して停止および起動できます。
# 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
<unit-file> には、以下のいずれかの値を使用できます。
pki-tomcatd 			With watchdog disabled
pki-tomcatd-nuxwdog 		With watchdog enabled
watchdog サービスの詳細は、「パスワードおよびウォッチドッグ (nuxwdog)」 および『Red Hat Certificate System 管理ガイド』のCertificate System Watchdog Service の使用セクションを参照してください。
注記
RHCS 10 では、これらの systemctl アクションは pki-server エイリアスをサポートします。pki-server <command> subsystem_instance_namesystemctl <command> pki-tomcatd@<instance>.service のエイリアスです。

2.2.3.2. インスタンスの自動起動

Red Hat Enterprise Linux の systemctl ユーティリティーは、サーバー上の各プロセスの自動起動およびシャットダウン設定を管理します。これは、システムが再起動すると、一部のサービスを自動的に再起動できることを意味します。システムユニットファイルは、サービスの起動を制御し、サービスが正しい順序で起動されるようにします。systemd サービスと systemctl ユーティリティーは、Red Hat Enterprise Linux 8 の 『基本的なシステム設定』 ガイドで説明されています。
Certificate System インスタンスは systemctl で管理できます。したがって、このユーティリティーは、インスタンスを自動的に再起動するかどうかを設定できます。Certificate System インスタンスが作成されると、システムの起動時に有効になります。これは systemctl を使用することで変更できます。
# systemctl disable pki-tomcatd@instance_name.service
インスタンスを再度有効にするには、以下を実行します。
# systemctl enable pki-tomcatd@instance_name.service
注記
systemctl enable コマンドおよび systemctl disable コマンドは、証明書システムをすぐに起動したり、停止したりしません。

2.2.4. プロセス管理 (pki-server および pkidaemon)

2.2.4.1. pki-server コマンドラインツール

Red Hat Certificate System の他のプロセス管理ツールは、pki-server です。使用方法は、pki-server --help コマンドを使用して、pki-server の man ページを参照してください。
pki-server コマンドラインインターフェイス (CLI) は、ローカルサーバーインスタンス (サーバー設定やシステム証明書など) を管理します。以下のように CLI を起動します。
$ pki-server [CLI options] <command> [command parameters]
CLI はサーバーインスタンスの設定ファイルおよび NSS データベースを使用するため、CLI では事前に初期化は必要ありません。CLI はファイルに直接アクセスできるため、これは root ユーザーがのみ実行でき、クライアント証明書は必要ありません。また、CLI はサーバーのステータスに関係なく実行できます。実行中のサーバーは必要ありません。
CLI は、階層構造で多数のコマンドをサポートしています。トップレベルのコマンドを一覧表示するには、追加のコマンドまたはパラメーターを指定せずに CLI を実行します。
$ pki-server
コマンドにはサブコマンドがあります。それらを一覧表示するには、コマンド名を指定し、追加オプションを指定せずに CLI を実行します。以下に例を示します。
$ 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
subsystem_id を、有効なサブシステム識別子 (cakratksocsp または tps) に置き換えます。
注記
1 つのインスタンスにはサブシステムのタイプのみを設定できます。
たとえば、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 コマンドラインツール

Red Hat Certificate System 用の別のプロセス管理ツールは、pkidaemon ツールです。
pkidaemon {start|status} instance-type [instance_name]
  • pkidaemon status tomcat: システム上のすべての PKI インスタンスの PKI サブシステムのオン/オフ、ポート、URL などのステータス情報を提供します。
  • pkidaemon status tomcatinstance_name: 特定のインスタンスの各 PKI サブシステムのオン/オフ、ポート、URL などのステータス情報を提供します。
  • pkidaemon start tomcat instance_name.service - systemctl を内部で使用します。
詳細は、pkidaemon の man ページを参照してください。

2.2.4.4. サブシステムの Web サービス URL の検索

CA、KRA、OCSP、TKS、および TPS サブシステムには、エージェント用の Web サービスページと、通常のユーザーおよび管理者が含まれます。これらの Web サービスには、サブシステムのセキュアなユーザーのポート上でサブシステムホストに URL を開くとアクセスできます。CA の場合の例を以下に示します。
https://server.example.com:8443/ca/services
注記
インスタンスのインターフェイス、URL、およびポートの全一覧を取得するには、サービスのステータスを確認します。以下に例を示します。
pkidaemon status instance_name
各サブシステムの主な Web サービスページには、利用可能なサービスページの一覧があります。これらは 表2.1「デフォルトの Web サービスページ」 で要約されています。特定のサービスにアクセスするには、適切なポートにアクセスし、適切なディレクトリーを URL に追加します。たとえば、CA のエンドエンティティー (通常のユーザー) の Web サービスにアクセスするには、以下を実行します。
https://server.example.com:8443/ca/ee/ca
DNS が設定されていない場合は、IPv4 アドレスまたは IPv6 アドレスを使用して、サービスページに接続できます。以下に例を示します。
https://192.0.2.1:8443/ca/services
https://[2001:DB8::1111]:8443/ca/services
注記
すべてのユーザーがサブシステムのエンドユーザーページにアクセスできます。ただし、エージェントまたは管理 Web サービスページにアクセスするには、エージェントまたは管理者の証明書を Web ブラウザーにインストールする必要があります。それ以外の場合は、Web サービスへの認証に失敗します。

表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
[a] クライアント認証値が No のサービスは、クライアント認証を要求するように再設定できます。Yes または No のいずれかの値を持たないサービスは、クライアント認証を使用するように設定することはできません。
[b] このサブシステムタイプにはエンドエンティティーポートとインターフェイスがありますが、他のエンドエンティティーサービスとは異なり、これらのエンドエンティティーサービスには Web ブラウザーからはアクセスできません。
[c] OCSP にはエンドエンティティーポートおよびインターフェイスがありますが、他のエンドクリティーサービスも Web ブラウザーを介してアクセスすることはできません。エンドユーザー OCSP サービスには、OCSP 要求を送信するクライアントがアクセスします。
[d] エージェント、管理者、および Operator サービスはすべて、同じ Web サービスページを介してアクセスされます。各ロールは、そのロールのメンバーにのみ表示される特定のセクションにのみアクセスできます。

2.2.4.5. Certificate System コンソールの起動

重要
このコンソールは非推奨になりました。
CA、KRA、OCSP、および TKS サブシステムには、管理機能を実行するための Java インターフェイスがあります。KRA、OCSP、および TKS では、ユーザーおよびグループのログ設定や管理など、非常に基本的なタスクが含まれます。CA の場合は、証明書プロファイルの作成や公開の設定など、その他の設定が含まれます。
pkiconsole ユーティリティーを使用して SSL/TLS ポート経由でサブシステムインスタンスに接続すると、コンソールが開きます。このユーティリティーは、以下の形式を使用します。
pkiconsole https://server.example.com:admin_port/subsystem_type
subsystem_typecakraocsp、または tks にすることができます。たとえば、これにより KRA コンソールが開きます。
pkiconsole https://server.example.com:8443/kra
DNS が設定されていない場合は、IPv4 アドレスまたは IPv6 アドレスを使用してコンソールに接続できます。以下に例を示します。
https://192.0.2.1:8443/ca
https://[2001:DB8::1111]:8443/ca