ベース64エンコード
We don't recommend Base64 encoding in production for securing secrets because it doesn't provide encryption, and therefore can't guarantee sufficient data protection.
Base64 encoding is one of the three ways to encrypt database passwords in Bitbucket Data Center and Server. See also, AES encryption and Custom encryption.
この方法ではデータベース パスワードのシンプルな難読化を実現する手段である、Base64 暗号化形式を使用します。
ステップ 1. パスワードを暗号化する
<Bitbucket-installation-directory>/tools/atlassian-password
に移動します。次のコマンドを実行してパスワードを暗号化します。
java -cp "./*" com.atlassian.db.config.password.tools.CipherTool
-- silent -s: ログの記録を最小限に制限します。
-- help -h: すべてのパラメータを含むヘルプ メッセージを出力します
-- mode -m: パスワード処理方法を暗号化または 復号化として定義します。省略した場合は "encrypt" が使用されます
-- password -p: プレーンテキスト パスワード。省略した場合、入力を求められます。パスワードが履歴に保存されないように、このパラメーターを省略することをお勧めします。
main DEBUG [db.config.password.DefaultCipherProvider] Initiate cipher provider class: com.atlassian.db.config.password.ciphers.base64.Base64Cipher
main DEBUG [password.ciphers.base64.Base64Cipher] Initiate Base64Cipher
main DEBUG [password.ciphers.base64.Base64Cipher] Encrypting data...
main DEBUG [password.ciphers.base64.Base64Cipher] Encryption done. Success!
Success!
For Jira, put the following lines in database config xml file:
<atlassian-password-cipher-provider>com.atlassian.db.config.password.ciphers.base64.Base64Cipher</atlassian-password-cipher-provider>
<password>ZGZnZGZn</password>
and restart the instance.
For Bitbucket, set the following properties in bitbucket.properties:
jdbc.password.decrypter.classname=com.atlassian.db.config.password.ciphers.base64.Base64Cipher
jdbc.password=ZGZnZGZn
and restart the instance.
ステップ 2. 暗号化されたパスワードをプロパティ ファイルに追加する
Go to the Bitbucket home directory and back up the
bitbucket.properties
file. Move the backup to a safe place outside of your instance.In the
bitbucket.properties
file, replace thejdbc.password
property with the password generated by CLI. Also, specify thejdbc.password.decrypter.classname
property. For example:jdbc.password.decrypter.classname=com.atlassian.db.config.password.ciphers.base64.Base64Cipher jdbc.password=put-the-obfuscated-password-generated-by-the-cli-tool-here
Restart Bitbucket.
パスワードの復号化
パスワードを復号化するには、-m decrypt パラメータを使用してコマンドを拡張します。
java -cp "./*" com.atlassian.db.config.password.tools.CipherTool -m decrypt
When asked for a password, provide the encrypted one from your bitbucket.properties
file.
トラブルシューティング
This means that Bitbucket couldn't connect to the database to access your configuration, most likely because of an error with decrypting your password.
To solve this problem, open <Bitbucket_home_directory>/log/atlassian-bitbucket.log
, and check for DataSourcePasswordDecryptionException
. For example:
com.atlassian.stash.internal.jdbc.DataSourcePasswordDecryptionException: java.lang.IllegalArgumentException: Illegal base64 character 25
The exception contains details about the error. If the error is java.lang.IllegalArgumentException
, you will need to encrypt the password again.
To investigate this problem, open <Bitbucket_home_directory>/log/atlassian-bitbucket.log
, and check for JdbcSQLException
s. The messages should be pretty clear as to what went wrong.
以下のメッセージが表示される場合があります。
Wrong user name or password [28000-176]
This means that Bitbucket decrypted the password successfully, but the password itself is incorrect. You can verify that by completing these steps:
Open the bitbucket.properties file, and copy the encrypted password.
Check if the decrypted password is the same as the one in your backup bitbucket.properties file.
To disable database password encryption, remove the jdbc.password.decrypter.classname
property from the bitbucket.properties
file, and change the value of jdbc.password
to the unencrypted in your backup.
関連コンテンツ
- 関連コンテンツがありません