モジュール java.base
パッケージ javax.net.ssl

クラスSSLSocketFactory

java.lang.Object
javax.net.SocketFactory
javax.net.ssl.SSLSocketFactory

public abstract class SSLSocketFactory
extends SocketFactory
SSLSocketFactorySSLSocketを作成します。
導入されたバージョン:
1.4
関連項目:
SSLSocket
  • コンストラクタの詳細

    • SSLSocketFactory

      public SSLSocketFactory()
      コンストラクタはサブクラスでだけ使用されます。
  • メソッドの詳細

    • getDefault

      public static SocketFactory getDefault()
      デフォルトのSSLソケット・ファクトリを返します。

      このメソッドがはじめて呼び出されると、セキュリティ・プロパティssl.SocketFactory.providerが検査されます。 null以外の場合、その名前のクラスがロードされ、インスタンス化されます。 それに成功した場合、オブジェクトがSSLSocketFactoryのインスタンスであれば、そのオブジェクトはデフォルトのSSLソケット・ファクトリになります。

      それ以外の場合、このメソッドはSSLContext.getDefault().getSocketFactory()を返します。 この呼出しに失敗した場合は、使用できないファクトリが返されます。

      戻り値:
      デフォルトのSocketFactory
      関連項目:
      SSLContext.getDefault()
    • getDefaultCipherSuites

      public abstract String[] getDefaultCipherSuites()
      デフォルトで使用可能になっている暗号化方式群のリストを返します。 別のリストが使用可能になっていないかぎり、SSL接続のハンドシェークではこの暗号化方式群のいずれかが使用されます。 デフォルトの暗号化方式群を使用するとき、最小限のサービス品質を保証するには、機密性保護とサーバー認証が必要です(つまり、匿名の暗号化方式群は使用できない)。

      返される配列には、Java Cryptography Architecture標準アルゴリズム名ドキュメントの「JSSE暗号スイート名」セクションの標準暗号スイート名のリストからの暗号スイートが含まれ、プロバイダがサポートする他の暗号スイートも含まれます。

      戻り値:
      デフォルトで使用可能になっている暗号化方式群の配列
      関連項目:
      getSupportedCipherSuites()
    • getSupportedCipherSuites

      public abstract String[] getSupportedCipherSuites()
      SSL接続で使用可能にできる暗号化方式群の名前を返します。 通常は、その一部のみがデフォルトで使用可能になります。デフォルトのサービス品質要件を満たしていない暗号化方式群は、使用不可になります。 それらの暗号化方式群は、特殊なアプリケーションで使用します。

      返される配列には、Java Cryptography Architecture標準アルゴリズム名ドキュメントの「JSSE暗号スイート名」セクションの標準暗号スイート名のリストからの暗号スイートが含まれ、プロバイダがサポートする他の暗号スイートも含まれます。

      戻り値:
      暗号化方式群名の配列
      関連項目:
      getDefaultCipherSuites()
    • createSocket

      public abstract Socket createSocket​(Socket s, String host, int port, boolean autoClose) throws IOException
      指定されたポートの指定されたホストに接続されている既存のソケットの上位ソケットを返します。 このコンストラクタを使用すれば、SSLからプロキシのトンネルを確立したり、既存のソケットの上位でSSLを使用するようにネゴシエートしたりできます。 指定するホストとポートは、論理接続先を示します。 ソケットは、このファクトリに設定されているソケット・オプションを使用して構成されます。
      パラメータ:
      s - 既存のソケット
      host - サーバー・ホスト
      port - サーバー・ポート
      autoClose - このソケットを閉じるときに、ベースとなるソケットを閉じる
      戻り値:
      指定されたホストとポートに接続されるソケット
      例外:
      IOException - ソケットの作成時に入出力エラーが発生した場合
      NullPointerException - パラメータsがnullである場合
    • createSocket

      public Socket createSocket​(Socket s, InputStream consumed, boolean autoClose) throws IOException
      既存の接続済ソケットの上位サーバー・モードSocketで、そのSocketのベースとなるInputStreamからすでに使用/削除されたデータを読み取れるものを作成します。

      このメソッドは、Server Name Indication (SNI)拡張(TLS拡張(RFC6066)のセクション3を参照)の検査など、インバウンド・データを監視しながらも有効なSSL/TLS接続を作成する必要のあるサーバー・アプリケーションに使用できます。 このメソッドを呼び出す前に、ベースとなるInputStreamからすでに削除されたデータを、ByteArrayInputStreamなどを使ってconsumedストリーム内にロードしておく必要があります。 このSocketのハンドシェークが始まると、EOFに達するまでconsumed内のすべてのデータが読み取られますが、その後、後続のデータはすべて、ベースとなるInputStreamから通常どおり読み取られます。

      返されるソケットは、このファクトリに確立されたソケット・オプションを使用して構成され、ハンドシェーク時にサーバー・モードを使用するように設定されます(SSLSocket.setUseClientMode(boolean)を参照)。

      パラメータ:
      s - 既存のソケット
      consumed - 既存のSocketInputStreamからすでに削除された使用済インバウンド・ネットワーク・データ。 削除されたデータが存在しない場合、このパラメータはnullになる可能性がある。
      autoClose - このソケットを閉じるときに、ベースとなるソケットを閉じる。
      戻り値:
      このファクトリに確立されたソケット・オプションに準拠するSocket
      例外:
      IOException - ソケットの作成時に入出力エラーが発生した場合
      UnsupportedOperationException - ベースとなるプロバイダがこの操作を実装していない場合
      NullPointerException - snullである場合
      導入されたバージョン:
      1.8