SonarQube:如何连接到启用了SSL的Google Cloud Postgresql服务器

时间:2019-09-10 10:45:01

标签: postgresql ssl sonarqube google-cloud-sql

我已经设置了SonarQube并配置了SSL证书,以使URL始终使用CertBot进行HTTPS。到目前为止,PostgreSQL数据库具有公共IP,以下是 sonar.properties 文件中更改的值:

sonar.jdbc.username=weakusername
sonar.jdbc.password=strongpassword
sonar.web.host=127.0.0.1
sonar.jdbc.url=jdbc:postgresql://xx.xxx.xxx.xxx/sonarqube

sonar.search.javaOpts=-Xms512m  -Xmx512m

# Change max limits
sysctl -w vm.max_map_count=262144

我正在使用Cloud SQL PostGres作为数据库。我想允许“仅SSL仅连接”到数据库,并允许here进行操作,生成客户端证书等的方式。

将“仅允许SSL连接”设置为true后,我知道有一种方法可以使用here中所述的客户端证书连接到数据库。

以下是启动psql客户端的命令:

psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=[INSTANCE_IP] \
      user=postgres dbname=[DB_NAME]"

但是,SonarQube无法连接到数据库(不确定如何告诉SonarQube使用客户端证书)。 为了使SonarQube使用适当的客户端证书并使用SSL连接到数据库,需要对配置文件进行哪些更改?

2 个答案:

答案 0 :(得分:1)

您应将以下内容添加到URL:

jdbc:postgresql://xx.xxx.xxx.xxx/sonarqube?ssl=true&sslmode=verify-ca&sslrootcert=/path/to/server-ca.pem&sslkey=/path/to/client-key.pem&sslcert=/path/to/client-cert.pem

请参阅the available SSL connection parametersSSL client configuration的文档。

答案 1 :(得分:1)

将客户端密钥格式从PEM转换为PK8:

openssl pkcs8 -topk8 -inform PEM -outform DER -in client-key.pem -out client-key.pk8 -nocrypt

请确保使用新的路径/文件名更新sslkeysonar.jdbc.url查询参数的值。