2

SSLContextオブジェクトを作成して構成し、それをmysql.jdbc.Driver使用して安全な接続を確立したいと思います。カスタムよりも優れたアプローチはありjdbc.Driverますか?

4

1 に答える 1

2

このから来るを使用してsを作成するカスタムcom.mysql.jdbc.SocketFactoryクラスを作成できます。次に、プロパティを使用してそのクラス名をMySQL JDBCコネクタに渡すことができます(ドキュメントの表を参照)。SSLSocketSSLSocketFactorySSLContextsocketFactory

これにはパラメーターのないコンストラクターが必要ですが、そのSocket connect(String host, Properties props)メソッドはpropsパラメーターを介してJDBCプロパティを取得する必要があります(必要な場合)。

証明書の有効性を確認するだけでなく、ホスト名が一致することも確認する必要があることに注意してください。SSLSocketJava 7を使用している場合は、作成したばかりのJava 7を返す前に、次のように実行できます。

SSLParameters sslParams = new SSLParameters();
sslParams.setEndpointIdentificationAlgorithm("HTTPS");
sslSocket.setSSLParameters(sslParams);

(HTTPSのホスト名照合ルールは、MySQLを含むほとんどのプロトコルで十分に適切である必要があります。)

于 2013-02-22T10:25:05.410 に答える