我可以使用JDBC通过我的服务器连接到HANA数据库。我正在试图找出我与数据库的连接是否安全?
public void createDataSource() {
DataSource dataSource = DataSourceBuilder.create()
.driverClassName(JDBC_DRIVER)
.URL("jdbc:sap://localhost:30013/?encrypt=true&validateCertificate=true")
.username("username")
.password("password")
.build();
Connection c = dataSource.getConnection();
}现在,我从文档中了解到,当我在URL中设置参数时,
encrypt=true
它启用或禁用TLS加密。要使SAP云连接成功,必须将加密设置为TRUE。
另一个参数是:
validateCertificate=true
如果设置为true,则指定验证服务器的证书。
在这里,我无法理解的是,何时它将被部署到生产,这是我们所需要做的安全数据库连接吗?有人能指出我错过了什么吗?
发布于 2022-06-17 10:52:28
证书的好处在于,您通常不必担心它们。
java虚拟机(JVM)附带了一组所谓的证书颁发机构( CA)的根证书(包括DigiCert全局根CA)。根据java发行版的不同,可能会有一些细微的差异,但是顶级CA应该受到所有人的信任。
您可以使用以下命令查看受信任can的列表:
关键工具-list -v -cacerts -storepass转换
只要您的数据库的SSL证书是由其中一个CA(或其中的一个中间证书)签名的,您就不需要任何额外的配置,而且它只是开箱即用。这也是你应该瞄准的场景,因为它是最简单的。
但是,您也可以将您自己的可信证书列表传递给JVM,或者,这可能是为一个JDBC连接设置一个自定义信任库的最佳通用设置。例如,在一个被文档化的设置中,您可以使整个数据库字符串可配置,允许人们将自己的can挂载到容器中,并在数据库连接字符串中配置它们。有关详细信息,请参阅SAP文档中的“用于SAP的JDBC连接属性”。
jdbc:sap://localhost:30013/?encrypt=true&validateCertificate=true&trustStore=file:cert/truststore.jks&trustStorePassword=123456
https://stackoverflow.com/questions/68994900
复制相似问题