server.xml でパスワードを暗号化する
パスワード暗号化のサポートによって Tomcat プロトコルを拡張する次のプロトコルが Confluence には用意されています。テーブルが完全に表示されていない場合は、右にスクロールして内容を確認してください。
プロトコル クラス | Tomcat プロトコルに基づく | パスワード暗号化をサポートする属性 |
com.atlassian.secrets.tomcat.protocol. | Http11NioProtocol |
|
com.atlassian.secrets.tomcat.protocol. | Http11Nio2Protocol |
|
com.atlassian.secrets.tomcat.protocol. | Http11AprProtocol |
|
com.atlassian.secrets.tomcat.protocol. | AjpNioProtocol |
|
com.atlassian.secrets.tomcat.protocol. | AjpNio2Protocol |
|
com.atlassian.secrets.tomcat.protocol. | AjpAprProtocol |
|
単一のパスワードの暗号化
暗号化されたパスワードを作成すると、暗号化ツールは 2 つのファイル、encryptedPassword
と encryptionKey
を生成します。
また、以下の手順でコマンドの末尾にオプションの引数として独自の暗号化キーファイル名を追加することもできます。これにより、暗号化ツールは、暗号化キーを使用して新しいファイルを生成する代わりに、このファイル名を使用します。独自のファイル名を使用する場合は、現在のディレクトリにそのファイルが既に存在することを確認してください。
<Confluence-installation-directory>/bin
に移動します。次のコマンドを実行してパスワードを暗号化します。
java -cp "./*" com.atlassian.secrets.cli.tomcat.TomcatEncryptionTool
独自のファイル名を追加する場合は、必ずコマンドの最後に名前を追加し、そのファイルが現在のディレクトリにすでに存在することを確認してください。
java -cp "./*" com.atlassian.secrets.cli.tomcat.TomcatEncryptionTool encryptionKey_1698120035971
プロンプトが出たら、パスワードを入力します。
コマンドの最後に独自のファイル名を追加しなかった場合、暗号化ツールはencryptedPassword
とencryptionKey
という 2 つのファイルを生成します。
コマンドの最後に独自のファイル名を追加した場合、暗号化ツールはencryptedPassword
のみを生成します。2 つの新しいファイルを安全な場所に移動してください。必要に応じてファイルの名前を変更することもできます。
1 つのコネクタの複数のパスワードの暗号化
1 つのコネクタで複数のパスワードを暗号化する場合は、すべてのパスワードに同じ暗号化キーを使用する必要があります。最初のパスワードを暗号化したら、生成された encryptionKey
ファイルを使って、キーのパスを暗号化ツールに渡すことで 2 つ目以降のパスワードを暗号化します。
java -cp "./*" com.atlassian.secrets.cli.tomcat.TomcatEncryptionTool /path/to/encryptionKey
暗号化ツールでは encryptedPassword
ファイルのみが生成されます。
コネクタ設定における暗号化されたパスワードの使用
コネクタ設定で暗号化されたパスワードを使用するには、次のプロパティを設定します。
protocol
-上記のいずれかのプロトコル クラスを使用productEncryptionKey
-encryptionKey
ファイルのパスを指定
その後、コネクタ構成でプレーンテキストのパスワードの代わりに、暗号化されたパスワードを含むファイルへのパスを使用できます。
たとえば、Confluence の conf/server.xml
ファイルでは、キーストアとキー パスワードが暗号化された Http11Nio2
コネクタの構成が次のようになります。
<Connector
protocol="com.atlassian.secrets.tomcat.protocol.Http11Nio2ProtocolWithPasswordEncryption"
port="8443"
(...)
keystoreFile="/var/secrets/keystore/keystore"
keystorePass="/var/secrets/keystore/encryptedKeystorePass"
keyPass="/var/secrets/keystore/encryptedKeyPass"
productEncryptionKey="/var/secrets/encryptionKey"
/>
productEncryptionKey
が 1 つだけ指定されており、keystorePass
と keyPass
の両方を同じキーで暗号化する必要があることに注意してください。