postgresql - SonarQube:如何连接到启用 SSL 的 Google Cloud Postgresql 服务器
问题描述
我已经设置了 SonarQube 并配置了 SSL 证书,以使用CertBot使 URL 始终为 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 Only Connections 到数据库,以及如何做到这一点,生成客户端证书等。
将“仅允许 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 连接到数据库?
解决方案
您应该将以下内容添加到 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 客户端配置,请参阅文档。
推荐阅读
- xpages - XPage file upload control loses filename on refresh
- vue.js - 使用 npm 安装 Vue-edit-json 不起作用
- python - 想要在 Raspberrypi Python 3 Shell IDLE 上播放 .wav 音频文件
- javascript - 通过对象验证属性?
- python - 没有已知函数的数据拟合曲线
- python - 在 Python 中管理长字符串(超过 10 万个字符)
- vue.js - 如何在 V-select 中添加条件?
- delphi - 64 位平台上 Delphi 中的 CryptProtectData
- java - 如何从 Map 获取两个键/值对到 TextView
- python - 调用另一个函数后重新启动一个函数