使用 SSL 连接强制执行 DN 匹配
您可以使用 Oracle 参数 SSL_SERVER_DN_MATCH
强制数据库服务器的可分辨名称 (DN) 与其服务名称匹配。如果您强制执行匹配验证,则 SSL 将确保证书来自服务器。如果您未强制执行匹配验证,则 SSL 将执行检查,但允许连接,而不管是否存在匹配项。如果您未强制执行匹配,则会允许服务器潜在的伪造身份行为。
要强制执行 DN 匹配,请添加 DN 匹配属性并使用下面指定的连接字符串。
将属性添加到客户端连接以强制执行 DN 匹配。
properties.put("oracle.net.ssl_server_dn_match", "TRUE");
使用 SSL 时使用以下连接字符串强制执行 DN 匹配。
final String connectionString = String.format( "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))" + "(CONNECT_DATA=(SID=%s))" + "(SECURITY = (SSL_SERVER_CERT_DN = \"C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=%s\")))", DB_SERVER_NAME, SSL_PORT, DB_SID, DB_SERVER_NAME);