14.3. システムパスワードの管理
「パスワードおよびウォッチドッグ (nuxwdog)」で説明されているように、Certificate System は、サーバーにバインドするパスワードを使用するか、サーバーの起動時にトークンのロックを解除します。
password.conf
ファイルは、システムパスワードをプレーンテキストで保存します。ただし、一部の管理者は、パスワードファイルを完全に削除して、nuxwdog
が各パスワードの手動入力を要求し、予定外のシャットダウンの場合は自動再起動を保存することを希望します。
Certificate System インスタンスが起動すると、サブシステムは自動的に
password.conf
ファイルを確認します。ファイルが存在する場合は、それらのパスワードを使用して内部 LDAP データベースなどの他のサービスに接続します。そのファイルが存在しない場合は、ウォッチドッグデーモンは、PKI サーバーが起動するのに必要なすべてのパスワードを要求します。
注記
password.conf
ファイルが存在する場合、サブシステムでは必要なパスワードがすべて存在し、適切にフォーマットされたことを前提としています。パスワードが欠落しているか、フォーマットが間違っていると、システムは正しく起動できません。
必要なパスワードは、
CS.cfg
ファイルの cms.passwordlist
パラメーターに一覧表示されます。
cms.passwordlist=internaldb,replicationdb,CA LDAP Publishing cms.password.ignore.publishing.failure=true
注記
cms.password.ignore.publishing.failure
パラメーターを使用すると、LDAP 公開ディレクトリーのいずれかへの接続に失敗しても、CA サブシステムが正常に起動できるようになります。
CA、KRA、OCSP、および TKS サブシステムでは、デフォルトの予想されるパスワードは以下のとおりです。
- internal (NSS データベースの場合)
- internaldb (内部 LDAP データベースの場合)
- replicationdb (レプリケーションパスワードの場合)
- パブリッシュ用に外部 LDAP データベースにアクセスするためのパスワード (CA のみ)注記パブリッシャーが
password.conf
ファイルの削除後に設定されている場合は、password.conf
ファイルに書き込まれません。nuxwdog
が設定されていない場合、サーバーは、次回インスタンスを再起動したときに新しい公開パスワードを要求するプロンプトにアクセスできません。 - 外部のハードウェアトークンのパスワード
TPS の場合は、これにより 3 つのパスワードが要求されます。
- internal (NSS データベースの場合)
- tokendbpass (内部 LDAP データベースの場合)
- 外部のハードウェアトークンのパスワード
このセクションでは、Certificate System がこれらのパスワードを取得するメカニズムを 2 つ説明します。
password.conf
ファイル (デフォルト)- nuxwdog (watchdog)
14.3.1. password.conf ファイルの設定
注記
このセクションは参照用途としてのみ提供されています。正しい操作とセキュアな操作には、
nuxwdog
ウォッチドッグを使用する必要があります。完全なコンプライアンスに必要なため、nuxwdog
を有効にするには 「Certificate System の Watchdog サービスの使用」 を参照してください。
デフォルトでは、パスワードは、サブシステム
conf/
ディレクトリーにプレーンテキストファイル password.conf
に保存されます。したがって、テキストエディターを使用して変更できます。
このファイルに保存されているパスワードのリストには、以下が含まれます。
- 内部データベースへのアクセスおよび更新に Certificate System インスタンスによって使用されるバインドパスワード。
- HSM のパスワード。
- 認証ディレクトリーにアクセスするために Certificate System インスタンスによって使用されるバインドパスワード (CMC Shared Token の場合)。
- LDAP 公開ディレクトリーにアクセスして更新するためにサブシステムによって使用されるバインドパスワード。これは、証明書および CRL を LDAP 準拠のディレクトリーに公開するように設定されている場合にのみ必要です。
- サブシステムがレプリケーションデータベースにアクセスするために使用するバインドパスワード。
- TPS インスタンスでは、トークンデータベースへのアクセスおよび更新に使用されるバインドパスワード。
password.conf
ファイルには、サブシステムの秘密鍵を開くのに必要なトークンパスワードも含まれます。
サブシステムに使用する名前と場所のパスワードファイルは
CS.cfg
ファイルに設定されています。
passwordFile=/var/lib/pki/instance_name/conf/password.conf
内部パスワードストアとレプリケーションデータベースには、サブシステムのインストールと設定時に設定されたランダムに生成された PIN があります。内部 LDAP データベースのパスワードは、インスタンスの設定時に管理者によって定義されました。
password.conf
ファイルのパスワードエントリーの形式は、以下のとおりです。
name=password
以下に例を示します。
internal=413691159497
HSM トークンが必要な場合は、以下の形式を使用します。
hardware-name=password
以下に例を示します。
hardware-NHSM-CONN-XC=MyHSM$S8cret
password.conf
ファイルの内容の例:
internal=376577078151 internaldb=secret12 replicationdb=1535106826 hardware-NHSM-CONN-XC=MyHSM$S8cret
14.3.2. Certificate System の Watchdog サービスの使用
Certificate System では、ウォッチドッグサービスを使用して、開始するためにセキュリティーデータベースにアクセスするためにパスワードを必要とするサービスを開始します。暗号化されていないパスワードをシステムに保存しないという要件がある場合、ウォッチドッグサービスは次のようになります。
- サーバーの起動時に関連するパスワードを要求し、そのメッセージをキャッシュします。
- クラッシュが原因でサーバーが自動的に再起動される場合に、キャッシュされたパスワードを使用します。
14.3.2.1. Watchdog サービスの有効化
ウォッチドッグサービスを有効にするには、以下を実行します。
- このホストで Shared Secret 機能を使用する場合は、「CMC 共有シークレット機能の有効化」 の説明に従って Shared Secret 機能を有効にします。
/var/lib/pki/instance_name/conf/
ディレクトリーからserver.xml
およびpassword.conf
ファイルをバックアップします。以下に例を示します。# cp -p /var/lib/pki/instance_name/conf/server.xml /root/ # cp -p /var/lib/pki/instance_name/conf/password.conf /root/
- Certificate System インスタンスのサービスを停止し、無効にします。
# systemctl stop pki-tomcatd@instance_name.service # systemctl disable pki-tomcatd@instance_name.service
- Hardware Security Module (HSM) を使用する場合は、ウォッチドッグサービスを有効にして、ハードウェアトークンのパスワードを入力するようにします。
- ハードウェアトークンの名前を表示します。
# egrep "^hardware-" /var/lib/pki/instance_name/conf/password.conf hardware-HSM_token_name=password
上記の例で強調表示された文字列は、ハードウェアトークン名です。 /var/lib/pki/instance_name/conf/ca/CS.cfg
ファイルにcms.tokenList
パラメーターを追加して、ハードウェアトークンの名前に設定します。以下に例を示します。cms.tokenList=HMS_token_name
- インスタンスのウォッチドッグ設定を有効にします。
# pki-server instance-nuxwdog-enable instance_name
または、すべてのインスタンスでウォッチドッグを有効にします。# pki-server nuxwdog-enable
詳細は、pki-server-nuxwdog(8) の man ページを参照してください。 - デフォルトでは、
nuxwdog
は、/etc/sysconfig/pki-tomcat
ファイルのTOMCAT_USER
変数で設定したユーザーとしてサーバーを起動します。必要に応じて、ユーザーおよびグループを変更する場合は、次のコマンドを実行します。- インスタンスの watchdog
systemd
ユニットファイルを、/etc/systemd/system/
ディレクトリーにコピーします。# cp -p /usr/lib/systemd/system/instance_name-nuxwdog@.service /etc/systemd/system/
注記/etc/systemd/system/
ディレクトリーのユニットファイルの優先度は高く、更新中は置き換えられません。 /etc/pki/instance_name/nuxwdog.conf
ファイルの[Service]
セクションに以下のエントリーを追加します。User new_user_name
systemd
設定をリロードします。# systemctl daemon-reload
- ウォッチドッグを使用する Certificate System サービスを有効にします。
# systemctl enable pki-tomcatd-nuxwdog@instance_name.service
- 必要に応じて、「Certificate System の Watchdog が有効になっていることの確認」 を参照してください。
- Certificate System インスタンスを起動するには、以下のコマンドを実行してプロンプトを入力します。
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
14.3.2.2. Watchdog が有効になっている Certificate System の起動および停止
Certificate System インスタンスの管理方法は、「実行管理 (systemctl)」 を参照してください。
14.3.2.3. Certificate System の Watchdog が有効になっていることの確認
ウォッチドッグサービスが有効になっていることを確認するには、次のコマンドを実行します。
- pki-tomcatd-nuxwdog サービスが有効になっていることを確認します。
# systemctl is-enabled pki-tomcatd-nuxwdog@instance_name.service enabled
- pki-tomcatd サービスが無効になっていることを確認します。
#
systemctl is-disabled pki-tomcatd@instance_name.service
disabled /etc/pki/instance_name/server.xml
ファイルで以下を行います。passwordFile
パラメーターがCS.cfg
ファイルを参照することを確認します。以下に例を示します。passwordFile="/var/lib/pki/instance_name/ca/CS.cfg"
passwordClass
パラメーターがcom.netscape.cms.tomcat.NuxwdogPasswordStore
に設定されていることを確認します。passwordClass="com.netscape.cms.tomcat.NuxwdogPasswordStore"
14.3.2.4. Watchdog サービスの無効化
ウォッチドッグサービスを無効にするには、次のコマンドを実行します。
- ウォッチドッグを使用する Certificate System インスタンスのサービスを停止して無効にします。
# systemctl stop pki-tomcatd-nuxwdog@instance_name.service # systemctl disable pki-tomcatd-nuxwdog@instance_name.service
- インスタンスのウォッチドッグなしで通常のサービスを有効にします。
# pki-server instance-nuxwdog-disable instance_name
- インスタンスのウォッチドッグ設定を無効にします。
# systemctl enable pki-tomcatd@instance_name.service
詳細は、pki-server-nuxwdog(8) の man ページを参照してください。 password.conf
ファイルを元の場所に復元します。以下に例を示します。# cp /root/password.conf.bak /var/lib/pki/instance_name/conf/password.conf
- Certificate System インスタンスを起動します。
# systemctl start pki-tomcatd@instance_name.service