質問

理想的には、私だけで簡単に SSLSocketChannel.

すでに持っているコンポーネントを読み込みおよび書き込みメッセージ一般 SocketChannel, が、それぞれ接続していまSSLを使うために、ワイヤー;事業にこれらの接続は同じです。

は誰でも知って無料 SSLSocketChannel 実施、適切なセレクター)または似たような?がその場で発音を確認することが この, ものの、セレクターな受け入れでベンダにいます。

私はデカップリングのreading_from/writing_to純ロジックからの挿入および検索のネットワークデータをこのオブジェクトを利用するためには、さらに SSLEngine なに怒っていますので、トリッキーを正しくてもたらされたことないわからないの炉内構造物のSSLプロトコル...

役に立ちましたか?

解決

それはあなたが必要なものを行うことのRestletの実装をチェックアウトし、それがすべてのNIOについてです。

のRestletエンジンのJavadocする

具体HttpClientCall。 SetProtocol(HTTPS) - getResponseEntityChannelはReadableByteChannel(getEntityChannelがWriteableByteChannelを返す)を返す

他のヒント

桟橋にはNIO SSL実装をサーバー: SslSelectorChannelConnector.いぞれの詳細は何か、そしています。

も古いものも第条から その説明についての詳細はNIO+SSLとの例のコードです。

TLSチャネルのまさにそのシンプルなライブラリです:SSLContextの(またはSSLEngineのをラップ)と、内部で重い物を持ち上げるをやって、ByteChannelインタフェースをさらすます。

(免責事項:私は図書館の主な作者だ)。

これはあなたが探している、しかし、SSL / TLS対応のサーバーソケットを作成するために、私は現在、次の(たkeystore.jksのようなコードを使用しています...助けるかもしれないものであるかどうかわからないが、パブリック/プライベート署名した自己が含まれていますキー確認を確保するために使用ペア) - クライアントは、そのペアの公開鍵で署名された証明書が含まれている同様のトラストストアを持っています。

あなたが進行中で取得する必要があります設定されていることになっ周りグーグルのビットます。

String keyStorePath = "keystore.jks";
String keyStorePassword = "password";

KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
KeyStore keyStore = new KeyStore();
keyStore.load(new FileInputStream(keyStorePath), keyStorePassword);
keyManagerFactory.init(keyStore, keyStorePassword.toCharArray());

sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom());

SSLContext sslContext = getServerSSLContext(namespace.getUuid());
SSLServerSocketFactory serverSocketFactory = sslContext.getServerSocketFactory();

// Create sockets as necessary
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top