谁能详细指导如何使用 SSL 加密通过 Wildfly 10 应用服务器连接到 AWS RDS MySql 实例
Can anybody please guide in detail how to connect to an AWS RDS MySql instance via Wildfly 10 application server using SSL encryption
我无法在 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>
JDBC 使用 SSL 的配置是特定于数据库供应商的。数据源的 和 标签提供了添加所需 JDBC 配置选项以启用 SSL 数据库连接所需的灵活性。与数据库供应商核实什么字符串或 属性 可以添加到连接 URL 或连接 属性 并且可以在 JBoss 端的数据源配置中配置它,这可能需要提供JBoss 端的信任库,用于提供对数据库服务器的信任。这可以通过以下方式添加:
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/path/to/db_cert.truststore
在域模式下,需要为将使用数据源的服务器设置系统 属性 javax.net.ssl.trustStore。
JBoss 管理和配置指南在第 13 章讨论了数据源配置:
对于寻找上述步骤的具体实施的任何人,请按照以下步骤操作:
- 确保 MySql 构建时支持安全连接(OpenSSL 或 yaSSL)
- 确保启用了 ssl(MySql 中的 -ssl 选项)
证书已生成 (mysql_ssl_rsa_setup)
- 将 MySQL 服务器 CA 证书(对于 AWS RDS:您可以从 AWS 站点 Link: https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem and https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem 下载证书)导入 Java 信任库或者在当前目录下创建一个truststore,并导入服务器的CA证书
- 导入与您刚刚导入的 CA 证书相匹配的客户端证书,或者创建一个新的客户端证书。
- 设置系统属性。
要在 WildFly 中设置数据源,您可以在连接 url 中设置属性,例如:
jdbc:mysql://${hostname}:3306/test?autoReconnect=true&useSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:///${pathToYourTruststore}/truststore&trustCertificateKeyStorePassword=${ yourPassword}&clientCertificateKeyStoreUrl=file:///${pathToYourKeystore}/keystore&clientCertificateKeyStorePassword=${yourPassword}&requireSSL=true
我无法在 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>
JDBC 使用 SSL 的配置是特定于数据库供应商的。数据源的 和 标签提供了添加所需 JDBC 配置选项以启用 SSL 数据库连接所需的灵活性。与数据库供应商核实什么字符串或 属性 可以添加到连接 URL 或连接 属性 并且可以在 JBoss 端的数据源配置中配置它,这可能需要提供JBoss 端的信任库,用于提供对数据库服务器的信任。这可以通过以下方式添加:
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/path/to/db_cert.truststore 在域模式下,需要为将使用数据源的服务器设置系统 属性 javax.net.ssl.trustStore。
JBoss 管理和配置指南在第 13 章讨论了数据源配置:
对于寻找上述步骤的具体实施的任何人,请按照以下步骤操作:
- 确保 MySql 构建时支持安全连接(OpenSSL 或 yaSSL)
- 确保启用了 ssl(MySql 中的 -ssl 选项) 证书已生成 (mysql_ssl_rsa_setup)
- 将 MySQL 服务器 CA 证书(对于 AWS RDS:您可以从 AWS 站点 Link: https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem and https://s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem 下载证书)导入 Java 信任库或者在当前目录下创建一个truststore,并导入服务器的CA证书
- 导入与您刚刚导入的 CA 证书相匹配的客户端证书,或者创建一个新的客户端证书。
- 设置系统属性。
要在 WildFly 中设置数据源,您可以在连接 url 中设置属性,例如:
jdbc:mysql://${hostname}:3306/test?autoReconnect=true&useSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:///${pathToYourTruststore}/truststore&trustCertificateKeyStorePassword=${ yourPassword}&clientCertificateKeyStoreUrl=file:///${pathToYourKeystore}/keystore&clientCertificateKeyStorePassword=${yourPassword}&requireSSL=true