我已经设置了一个SonarQube并配置了CertBot证书,使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
我正在使用云SQL PostGres作为数据库。我希望只允许SSL连接到数据库和这里,以及如何实现它、生成客户端证书等等。
在将“只允许SSL连接”设置为true之后,我理解有一种方法可以使用描述的这里客户端证书连接到数据库。
下面是启动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连接到数据库?
发布于 2019-09-10 03:00:00
您应该在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
请参阅可用的SSL连接参数和SSL客户端配置的文档。
发布于 2019-09-12 12:52:54
将客户端密钥格式从PEM转换为PK8:
openssl pkcs8 -topk8 -inform PEM -outform DER -in client-key.pem -out client-key.pk8 -nocrypt
确保用新的路径/文件名更新sonar.jdbc.url
中的sonar.jdbc.url
查询参数的值。
https://stackoverflow.com/questions/57869137
复制相似问题