首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SSL和命令行Flywaydb ( flyway )部署数据库更改

使用SSL和命令行Flywaydb ( flyway )部署数据库更改
EN

Stack Overflow用户
提问于 2016-01-16 01:19:34
回答 2查看 3.3K关注 0票数 6

我正在做一个概念验证,使用flyway的命令行工具从一个集中的服务器部署到多个数据库平台。(MySQL、Postgres和SQL Server)

我可以在没有SSL的情况下成功部署,但是它使用了未加密的主机信息,比如到目标数据库服务器的登录/密码/端口。我担心的是,未加密的流量可能会被看到。

是否有人有使用SSL部署到MySQL SQL Server的flyway命令行工具的经验

我没有在文档中看到任何信息,除非我错过了它。

感谢您的帮助和建议!

EN

回答 2

Stack Overflow用户

发布于 2017-04-20 12:59:16

在flyway.conf中的flyway示例中,它展示了如何向jdbc url添加附加值。

代码语言:javascript
复制
# MySQL             : jdbc:mysql://<host>:<port>/<database>?<key1>=<value1>&<key2>=<value2>...
# PostgreSQL        : jdbc:postgresql://<host>:<port>/<database>?<key1>=<value1>&<key2>=<value2>...
# Redshift          : jdbc:postgresql://<host>:<port>/<database>?<key1>=<value1>&<key2>=<value2>...  

例如,对于Redshift/Postgres,您可以包含ssl=true标志

代码语言:javascript
复制
flyway.url=jdbc:postgresql://yourserver:5439/dbname?ssl=true

您需要将DB服务器密钥用来签名的公钥添加到您的主机信任存储中(对于Redshift,请参阅http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-ssl-support.html了解详细信息),例如

代码语言:javascript
复制
${JAVA_HOME}/bin/keytool -keystore ${JAVA_HOME}/lib/security/cacerts -import -alias <alias> -file <certificate_filename>

然后,我不得不修改flyway启动脚本/flyway,以便在JAVA_ARGS中包含信任库和密码(它可能应该将这些作为变量)。

代码语言:javascript
复制
JAVA_ARGS="-Djava.security.egd=file:/dev/../dev/urandom -Djavax.net.ssl.trustStore=/etc/pki/java/cacerts -Djavax.net.ssl.trustStorePassword=changeit"
票数 4
EN

Stack Overflow用户

发布于 2018-08-23 15:37:19

对于MySQL,我使用下面的URL进行连接。

jdbc:mysql://hostname:3306/wpastudy?useSSL=true

请注意useSSL=true参数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34816448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档