私が知っているように、Azure SDK for Javaはパッケージに含まれるSSLContext
andを使用しましたSSLSocketFactory
javax.net.ssl
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
私の理解が正しければsslContext.getInstance(*yourparamters*)
、さまざまな用途に使用できると思います。SSLContext
私の経験に基づいて、このメソッドを使用してSSLContext
、指定されたセキュア ソケット プロトコルを実装するオブジェクトを返すことができます。たとえば、 を使用する場合SSLV3
、次のようにコーディングできます。
SSLContext context=SSLContext.getInstance("SSLv3");
実際には、同じ方法を使用して と を設定しTLS
ますSSL
。SSLSocketFactory に関するサンプルを参照できることをお勧めします
【更新】</p>
これは、一般的な SSLSocketFactory に SSL コンテキストを追加する方法です。Azure Java SDK でこれを行う方法を知りたいです。
私が理解している場合、サーバーごとに異なるSocketFactroyを取得したいようです。このシナリオでは、すべての socketfactory を管理する socketfactory 管理クラスを作成することをお勧めします。この簡単なコードを見てください:
public class SSLScoketFactoryManage {
public static SSLSocketFactory getSSLSocketFactory(String keyStoreName, String password) throws UnrecoverableKeyException, KeyStoreException, NoSuchAlgorithmException, KeyManagementException, IOException {
KeyStore ks= getKeyStore(keyStoreName, password);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
keyManagerFactory.init(ks, password.toCharArray());
SSLContext context = SSLContext.getInstance("TLS");
context.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom());
return context.getSocketFactory();
}
}
次のように、このメソッドをさまざまなソケットで使用できます。
SSLSocketFactory sslFactory = getSSLSocketFactory(keyStore, keyStorePassword);
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setSSLSocketFactory(sslFactory);
ご不明な点がございましたら、お知らせください。