Da ich mit einigen Legacy-Server arbeiten muss und seit RC4
aus dem Java 8 entfernt wurde, muss ich einige RC4-basierte Chiffren wieder aktivieren. Wie in der Release-Information beschrieben, müssen wir SSLSocket/SSLEngine.setEnabledCipherSuites()
verwenden. Da ich den Apache HTTP Client verwende, konnte ich keinen Weg finden, dies zu tun. Danke im Voraus! (Ich fand auch recht Aufliegers Problem mit aus einer Antwort so gedacht ein neues Posting)Wie setze ichEnabledCipherSuites bei der Verwendung von Apache HTTP Client?
Antwort
Ich war vor dem gleichen Problem, und ich war in der Lage, dies herauszufinden.
SecureProtocolSocketFactoryImpl protFactory = new SecureProtocolSocketFactoryImpl();
httpsClient.getHostConfiguration().setHost(host, port, httpsProtocol);
In der "SecureProtocolSocketFactoryImpl" Klasse haben Sie die Methode public Sockel create() für SecureProtocolSocketFactory Klasse außer Kraft zu setzen.
Bei diesem Verfahren wird bei Ihnen wird also eine Fassung wie diese
SSLSocket soc = (SSLSocket) getSSLContext().getSocketFactory().createSocket(
socket,
host,
port,
autoClose
);
bekommen können, so etwas wie unten tun.
ciphersToBeEnabled[0] = "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA";
soc.setEnabledCipherSuites(ciphersToBeEnabled);
hoffe, Sie bekommen die Idee. Wenn Sie irgendwelche Probleme haben, kommentieren Sie bitte unten. Beachten Sie, dass dies nur RC4-bezogene Verschlüsselungen nicht aktiviert. Sie müssen die Java-Datei "java.security" in jre/lib/security/file ändern und CR4 aus der Liste der deaktivierten Algorithmen entfernen.
Der empfohlene Weg, um die HttpClient
zu erhalten ist durch HttpClientBuilder
verwenden. In diesem Builder können Sie die HttpClientConnectionManager
festlegen, die wiederum eine Registry<ConnectionSocketFactory>
übernehmen kann. In diesem ConnectionSocketFactory
können Sie Verschlüsselungen und Protokolle konfigurieren, die der Client einschränken möchte.
Beispielcode:
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. Apache Http Client 4.5 Authentifizierungsausnahme bei der Integration in ServiceNow
- 2. Wie vergleichen Jersey-Client und Apache HTTP Client?
- 3. Was sind die Nachteile von Client und Backend bei der Verwendung von Comet/persistenten HTTP-Verbindungen?
- 4. Lesen Antwort Header bei der Verwendung von $ http von Angularjs
- 5. Ausnahme bei der Verwendung von Apache POI auf einer JSP
- 6. Apache Http Client SSL-Zertifikat Fehler
- 7. HTTP-Anforderungen bei Verwendung von REST
- 8. Apache Ignite goes OOM bei der Verwendung von Eviction Policy
- 9. Wie setze RequestBody für HTTP-Delete-Methode.
- 10. Apache Ignorieren Rewrite-Regeln bei der Verwendung von mod_proxy
- 11. Apache HTTP-Client org.apache.http.NoHttpResponseException: Der Zielserver konnte nicht antworten
- 12. Best Practice bei der Verwendung von httplib2.Http() Objekt
- 13. Informationen über Fehler bei der Verwendung von EventMachine Http Request
- 14. Signieren von AWS HTTP-Anfragen mit Apache HttpComponents Client
- 15. Wie ignorieren Null Inhalt Länge Header in Apache HTTP-Client
- 16. Die http-Verbindung einfrieren bei der Verwendung von Mobile Netwotk
- 17. Wie Proxy-Authentifizierung mit Jersey und Apache Http Client verwenden?
- 18. Bypass .htaccess bei der Verwendung von download_url
- 19. Wie hostet Bilder bei Verwendung von HTTP/2
- 20. Safari gibt keine Antwort bei Verwendung von HTTP/2
- 21. Rate der Akzeptanz von Sockets bei der Verwendung von gen_tcp
- 22. Apache HTTP Webserver-Anfragen
- 23. Wie versteckt man die URL-Änderung bei der Verwendung von Apache Rewrite?
- 24. Erhalten von Client-IP-Adresse bei Verwendung von ServerEndpoint
- 25. Apache Http Client 4 Formular Post Mehrteilige Daten
- 26. unerwartete "Verwendung" (T_USE) bei der Verwendung von Composer
- 27. bei der Verwendung von EditorFor
- 28. Was sind die Fallstricke bei der Verwendung von WebSockets anstelle von RESTful HTTP?
- 29. Risiko der Verwendung von Apache mod_proxy
- 30. Hystrix: Apache HTTP-Client-Anfragen werden nicht unterbrochen