任何人都可以详细指导如何使用SSL加密通过Wildfly 10应用服务器连接到AWS RDS MySql实例

时间:2016-12-30 19:37:19

标签: mysql ssl jboss amazon-rds wildfly-10

我无法在wildfly 10和Mysql之间设置SSL / TLS。我一直在尝试对数据源进行以下配置:。

<datasource jta="true" jndi-name="java:/jdbc/transit" pool-name="transit" enabled="true" use-ccm="true">
                    <connection-url>jdbc:mysql://myInstance.rds.amazonaws.com:3306/dbname?ssl=true</connection-url>
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                    <driver>mysql-connector-java-5.1.40.jar_com.mysql.jdbc.Driver_5_1</driver>
                    <security>
                        <user-name>example</user-name>
                        <password>secret</password>
                    </security>
                    <validation>
                        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                        <background-validation>true</background-validation>
                        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                    </validation>
                </datasource>

2 个答案:

答案 0 :(得分:0)

使用SSL的JDBC配置是特定于数据库供应商的。数据源的标记和标记提供了添加所需JDBC配置选项以启用SSL数据库连接所需的灵活性。检查数据库供应商可以将哪些字符串或属性添加到连接URL或连接属性,并可以在JBoss端的数据源配置中配置它,这可能需要在JBoss端提供信任库以在数据库服务器上提供信任。这可以通过以下方式添加:

JAVA_OPTS =“$ JAVA_OPTS -Djavax.net.ssl.trustStore = / path / to / db_cert.truststore 在域模式下,需要为将使用数据源的服务器设置系统属性javax.net.ssl.trustStore。

JBoss管理和配置指南在第13章讨论数据源配置:

https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/version-7.0/configuration-guide/#datasource_management

答案 1 :(得分:0)

对于寻求上述步骤的具体实施的任何人,请按照以下步骤操作:

  1. 确保MySql构建时支持安全连接(OpenSSL或yaSSL)
  2. 确保启用了ssl(MySql中的-ssl选项) 生成证书(mysql_ssl_rsa_setup)
  3. 导入MySQL服务器CA证书(适用于AWS RDS:您可以从AWS站点下载证书,链接:https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pemhttps://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem)到Java信任库或在当前目录中创建信任库,并导入服务器的CA证书
  4. 导入与您刚刚导入的CA证书匹配的客户端证书,或者创建新的客户端证书。
  5. 设置系统属性。
  6. 要在WildFly中设置数据源,您可以在连接URL中设置属性,如:

    JDBC:MySQL的:// $ {主机名}:3306 /测试autoReconnect的=真安培; useSSL =真安培; verifyServerCertificate =真安培; trustCertificateKeyStoreUrl =文件:/// $ {pathToYourTruststore} /信任&安培; trustCertificateKeyStorePassword = $ {你的密码} &安培; clientCertificateKeyStoreUrl =文件:/// $ {pathToYourKeystore} /密钥库&安培; clientCertificateKeyStorePassword = $ {你的密码}&安培; requireSSL =真