Sensitive settings
You can encrypt any sonar property stored in \<sonarqubeHome\>/conf/sonar.properties or defined in SonarQube Server UI.
You can encrypt any system property stored in <sonarqubeHome>/conf/sonar.properties
or defined in SonarQube Server UI. The encryption algorithm used is AES with 256-bit keys.
In case of a Kubernetes deployment, see also Encrypting sensitive data.
You must have the Administer System permission in SonarQube Server.
Prerequisites
SonarQube Server must be up and running.
Step 1: Create the encryption key
In SonarQube Server UI, go to Administration > Configuration > Encryption.
Select Generate Secret Key. An encryption key is generated.
You can use any other tool to generate the encryption key. It should be a Base64 Encoded AES-256 Key.
Step 2: Store the encryption key in a secured file on disk
1. Copy the generated encryption key to a file on the machine hosting the SonarQube Server. The file location is defined through the sonar.secretKeyPath
property which can be set in <sonarqubeHome>/conf/sonar.properties
(see also Configuration methods).
sonar.secretKeyPath
Path to the file containing the key used to encrypt⁴⁾ sensitive system properties in the UI or in sonar.properties
.
Warning: The slashes have to be escaped.
Default value: ${user.home}/.sonar/sonar-secret.txt
where user.home
refers to the user directory.
For example, if using the default value, sonar-secret.text
may be stored in C:\Users\User1\.sonar
or, if the service is registered and runs as the local system, in C:\Windows\System32\Config\systemprofile\.sonar
2. Restrict file permissions to the account running the SonarQube Server (ownership and read-access only).
3. Restart your SonarQube Server.
Step 3: Encrypt the sensitive settings
To encrypt a property or setting:
In SonarQube Server UI, go to Administration > Configuration > Encryption.

Enter the value of the property.
Select the Encrypt button. The encrypted value of the property is generated.
Select the copy tool to copy this value.
You can now:
In
<sonarqubeHome>/conf/sonar.properties
, replace the value of the property with the copied encrypted value.
sonar.jdbc.password={aes-gcm}CCGCFg4Xpm6r+PiJb1Swfg== # Encrypted DB password
...
sonar.secretKeyPath=C:/path/to/my/secure/location/my_encryption_key.txt
Or set the encrypted value in the corresponding SonarQuber Server UI’s field.
Last updated
Was this helpful?