There are two ways to run SonarQube over HTTPS:
- By building a standard reverse proxy infrastructure
- By configuring the SonarQube server that natively supports SSL (since version 4.0)
Building a Standard Reverse Proxy Infrastructure
The reverse proxy must be configured to set the value "X_FORWARDED_PROTO: https" in each HTTP request header. Without this property, redirection initiated by the SonarQube server will fall back on HTTP.
Configuring the SonarQube Server that Natively Supports SSL
The configuration is pretty standard. The information to access the certificate must be provided in the configuration of the web server.
Here's a simple example:
Generating the SSL Certificate
Run the following command:
It adds the certificate to USER_HOME/.keystore
Configuring the SonarQube Web Server
Open the SONARQUBE_HOME/conf/sonar.properties file and update it as below:
Restart the web server. You should now only be able to access the SonarQube server over HTTPS on port 8999.
Running an Analysis
Update the settings of your analyzer (SONARQUBE_HOME/conf/sonar-runner.properties for SonarQube Runner or settings.xml for Maven...): sonar.host.url=https://localhost:8999
Analyze one of your projects to check that it works fine.