我想创建和配置SSLContext
对象,然后让mysql.jdbc.Driver
使用它来建立安全连接。有没有比自定义jdbc.Driver
更好的方法?
答案 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的主机名匹配规则应该足够明智。)