レガシーサーバで作業する必要があり、RC4
がJava 8から削除されたため、RC4ベースの暗号を再度有効にする必要があります。リリースノートで説明したように、SSLSocket/SSLEngine.setEnabledCipherSuites()
を使用する必要があります。 Apache HTTP Clientを使用しているので、これを行う方法を見つけることができませんでした。前もって感謝します! (私はまた、かなりのセミトレーラーの問題を発見したので、新しいものを投稿すると思った)Apache HTTPクライアントを使用する場合、EnabledCipherSuitesを設定するにはどうすればよいですか?
0
A
答えて
1
私は同じ問題に直面しており、これを理解することができました。あなたはSecureProtocolSocketFactoryクラスのメソッドpublicソケットのcreateSocket()をオーバーライドする必要があり、 "SecureProtocolSocketFactoryImpl" クラスで
SecureProtocolSocketFactoryImpl protFactory = new SecureProtocolSocketFactoryImpl();
httpsClient.getHostConfiguration().setHost(host, port, httpsProtocol);
。その方法では
あなたはそうそこには以下のような何かを行うことができるようになります。この
SSLSocket soc = (SSLSocket) getSSLContext().getSocketFactory().createSocket(
socket,
host,
port,
autoClose
);
のようなソケットを取得します。
ciphersToBeEnabled[0] = "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA";
soc.setEnabledCipherSuites(ciphersToBeEnabled);
あなたはアイデアを得ることを願っています。何か問題がある場合は、下記にコメントしてください。これを行うだけでは、RC4関連の暗号は有効になりません。 jre/lib/security/fileのjava "java.security"ファイルを変更し、無効化されたアルゴリズムリストからCR4を削除する必要があります。
0
HttpClient
を取得するには、HttpClientBuilder
を使用することをお勧めします。このビルダーでは、を設定し、次にRegistry<ConnectionSocketFactory>
とすることができます。このConnectionSocketFactory
では、クライアントが制限したい暗号とプロトコルを設定できます。
サンプルコード:
Registry<ConnectionSocketFactory> socketFactoryRegistry;
{
SSLContext sslcontext = <your SSLContext>;
socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", new PlainConnectionSocketFactory())
.register("https", new SSLConnectionSocketFactory(sslcontext,
<your supported protocols, could be null>,
<your supported ciphers, could be null>,
<your HostnameVerifier>
.build();
}
HttpClientBuilder b = HttpClientBuilder.create()
.setConnectionManager(new BasicHttpClientConnectionManager(socketFactoryRegistry))
.set<anything else you want>(<with what you want>);
HttpClient client = b.build();
関連する問題
- 1. Mac用のPaw HTTPクライアントで自動拡張を設定するにはどうすればよいですか?
- 2. Apacheの設定でファイル名にワイルドカードエイリアスを使用するにはどうすればよいですか?
- 3. プリンタ設定を設定するのにC#を使用するにはどうすればよいですか?
- 4. Apache HttpClientでSSLクライアント証明書を使用するにはどうすればよいですか? Pythonで
- 5. HTTPレスポンスヘッダーを使用してクライアントにCSSを送信するにはどうすればよいですか?
- 6. プロキシを使用するには、httpcore 4を設定するにはどうすればよいですか?
- 7. Node.js httpクライアントでPOSTするにはどうすればよいですか?
- 8. jQueryを使用してスタイルシートの場所を設定するにはどうすればよいですか?
- 9. showsTouchWhenHighlightedを使用するようにUIButtonを設定するにはどうすればよいですか?
- 10. HTTPSを使用するようにYii Frameworkを設定するにはどうすればよいですか?
- 11. Prologモードを使用するようにAquamacsを設定するにはどうすればよいですか?
- 12. Business Objects BI 4.1でApache用のリバースプロキシを設定するにはどうすればよいですか?
- 13. HTTPクライアント用にプロキシを設定する
- 14. 設定ファイルを使用してElastic Beanstalkソリューションスタックを設定するにはどうすればよいですか?
- 15. ユーザーがモバイルの場合、mobile.myUrl.comに書き直すにはどうすればよいですか? (Apacheを使用するか、Webapp内で使用しますか?)
- 16. NSISを使用する場合、カスタムページでアンインストーラを作成するにはどうすればよいですか?
- 17. バインディングソースがnullの場合、Imageのデフォルトソースを設定するにはどうすればよいですか?
- 18. この特定のURL設定でSVNを提供するようにApacheを設定するにはどうすればよいですか?
- 19. gitwebとgitoliteを一緒に使うように設定するにはどうすればいいですか?
- 20. JerseyとApache Httpクライアントでプロキシ認証を使用するには?
- 21. PythonでレガシーデータベースでAutoFieldを使用するモデルを設定するにはどうすればよいですか?
- 22. Formtasticをソーサリーで使用する。ログインフォームを設定するにはどうすればよいですか?
- 23. ColdFusionでgithubマシンユーザを設定するにはどうすればいいですか(Windowsの場合)?
- 24. .NETで使用するためにFitNesseを設定するにはどうすればよいですか?
- 25. SMTPを使用してSpring JavaMailSenderをSES用に設定するにはどうすればよいですか?
- 26. カピバラ/レールでセレンを使用する場合、サーバーをどのように設定するのですか?
- 27. Apache 2.XでDelphiのASAPI DLLを設定するにはどうすればよいですか?
- 28. DataContractsを使用するアプリケーションを設定するにはどうすればよいですか?
- 29. Ninject.Web 3.0.0 RC3を使用するASP.NET Webフォームアプリケーションを設定するにはどうすればよいですか?
- 30. タイムアウト後にApache Httpクライアントがレスポンスを待機するようにするにはどうすればよいですか?