server.xml のパスワードを暗号化
Jira インスタンスのセキュリティを強化するために、Tomcat の server.xml ファイルでコネクタの設定に使用するパスワードを暗号化できます。
はじめる前に
productEncryptionKey
and encrypted passwords, which may not guarantee complete security, as the configuration in Tomcat's server.xml will contain all the necessary information to decrypt the password. An attacker could potentially impersonate Jira to gain access to the password. To enhance security, we recommend to safeguard the server where Jira and the productEncryptionKey
are located.
パスワード暗号化のサポートによって Tomcat プロトコルを拡張する次のプロトコルが Jira には用意されています。
プロトコル クラス | プロトコル クラスのベースになる Tomcat プロトコル | パスワード暗号化がサポートされている属性 |
---|---|---|
com.atlassian.secrets.tomcat.protocol.Http11NioProtocolWithPasswordEncryption | Http11NioProtocol |
|
com.atlassian.secrets.tomcat.protocol.Http11Nio2ProtocolWithPasswordEncryption | Http11Nio2Protocol |
|
com.atlassian.secrets.tomcat.protocol.Http11AprProtocolWithPasswordEncryption | Http11AprProtocol |
|
com.atlassian.secrets.tomcat.protocol.AjpNioProtocolWithPasswordEncryption | AjpNioProtocol |
|
com.atlassian.secrets.tomcat.protocol.AjpNio2ProtocolWithPasswordEncryption | AjpNio2Protocol |
|
com.atlassian.secrets.tomcat.protocol.AjpAprProtocolWithPasswordEncryption | AjpAprProtocol |
|
単一のパスワードの暗号化
<Jira-installation-directory>/bin
に移動します。次のコマンドを実行してパスワードを暗号化します。
java -cp "./*" com.atlassian.secrets.cli.tomcat.TomcatEncryptionTool
以下に示すオプションの引数を使用することもできます。プロンプトが表示されたら、パスワードを入力します。暗号化ツールによって
encryptedPassword
とencryptionKey
の 2 つのファイルが生成されます。これらのファイルを安全な場所に移動してください。必要に応じて、ファイルの名前を変更することもできます。
1 つのコネクタの複数のパスワードの暗号化
1 つのコネクタで複数のパスワードを暗号化する場合は、すべてのパスワードに同じ暗号化キーを使用する必要があります。最初のパスワードを暗号化したら、生成された encryptionKey
を使って、キーのパスを暗号化ツールに渡すことで 2 つ目以降のパスワードを暗号化します。
java -cp "./*" com.atlassian.secrets.cli.tomcat.TomcatEncryptionTool /path/to/encryptionKey
encryptedPassword
file.
コネクタ設定における暗号化されたパスワードの使用
例外的なエラー
Jira 9.11.0 では、catalina.out
ファイルで例外的なエラーが発生する可能性があります。現在、修正に取り組んでおり、今後のバグ修正リリースの一部として提供する予定です。一時的な回避策は次のとおりです。
<Jira-installation-directory>
に移動します。atlassian-secrets-api
ライブラリを Tomcatlib/
ディレクトリにコピーするには、次のコマンドを実行します:cp atlassian-jira/WEB-INF/lib/atlassian-secrets-api-<version>.jar lib/
You can track this issue at: JRASERVER-76246 - Getting issue details... STATUS
コネクタ設定で暗号化されたパスワードを使用するには、次のプロパティを設定する必要があります。
protocol
-上記のいずれかのプロトコル クラスを使用productEncryptionKey
-encryptionKey
ファイルのパスを指定
次に、コネクタ設定で、プレーン テキストのパスワードの代わりに適切な encryptedPassword
ファイルのパスを使用できます。
たとえば、Jira ではキーストアとキー パスワードが暗号化された Http11Nio2
コネクタの conf/server.xml
構成が次のようになります。
<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
の両方を同じキーで暗号化する必要がありました。