将SSLContext设置为jdbc连接

时间:2013-02-22 10:02:04

标签: ssl jdbc

我想创建和配置SSLContext对象,然后让mysql.jdbc.Driver使用它来建立安全连接。有没有比自定义jdbc.Driver更好的方法?

1 个答案:

答案 0 :(得分:0)

您可以使用来自此com.mysql.jdbc.SocketFactory的{​​{1}}创建自定义SSLSocket类,以创建SSLSocketFactory。然后,您可以使用SSLContext属性将该类名传递给MySQL JDBC连接器(请参阅documentation中的表)。

这需要一个没有参数的构造函数,但是它的socketFactory方法应该通过Socket connect(String host, Properties props)参数获取JDBC属性(如果需要)。

请注意,您不仅要检查证书的有效性,还要检查主机名是否匹配。如果您使用的是Java 7,可以在返回刚刚创建的props之前执行此操作:

SSLSocket

(对于大多数协议,包括MySQL,HTTPS的主机名匹配规则应该足够明智。)