diff --git a/httpclient-2/.gitignore b/httpclient-2/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/httpclient-2/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/httpclient-2/README.md b/httpclient-2/README.md
new file mode 100644
index 0000000000..52d8b8fcff
--- /dev/null
+++ b/httpclient-2/README.md
@@ -0,0 +1,12 @@
+## HttpClient 4.x
+
+This module contains articles about HttpClient 4.x
+
+### The Course
+
+The "REST With Spring" Classes: http://bit.ly/restwithspring
+
+### Relevant Articles:
+
+- [How to Set TLS Version in Apache HttpClient](https://www.baeldung.com/TODO)
+- More articles: [[<-- prev]](../httpclient)
diff --git a/httpclient-2/pom.xml b/httpclient-2/pom.xml
new file mode 100644
index 0000000000..1a27d9b5fe
--- /dev/null
+++ b/httpclient-2/pom.xml
@@ -0,0 +1,43 @@
+
+
+ 4.0.0
+ httpclient-2
+ 0.1-SNAPSHOT
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+ org.apache.httpcomponents
+ httpclient
+ ${httpclient.version}
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+
+
+ httpclient-2
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ 4.5.8
+
+
+
\ No newline at end of file
diff --git a/httpclient-2/src/main/java/com/baeldung/tlsversion/ClientTlsVersionExamples.java b/httpclient-2/src/main/java/com/baeldung/tlsversion/ClientTlsVersionExamples.java
new file mode 100644
index 0000000000..c58763b1c0
--- /dev/null
+++ b/httpclient-2/src/main/java/com/baeldung/tlsversion/ClientTlsVersionExamples.java
@@ -0,0 +1,64 @@
+package com.baeldung.tlsversion;
+
+import javax.net.ssl.SSLSocket;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.ssl.SSLContexts;
+import org.apache.http.util.EntityUtils;
+
+import java.io.IOException;
+
+public class ClientTlsVersionExamples {
+
+ public static CloseableHttpClient setViaSocketFactory() {
+ SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
+ SSLContexts.createDefault(),
+ new String[] { "TLSv1.2", "TLSv1.3" },
+ null,
+ SSLConnectionSocketFactory.getDefaultHostnameVerifier());
+
+ return HttpClients.custom().setSSLSocketFactory(sslsf).build();
+ }
+
+ public static CloseableHttpClient setTlsVersionPerConnection() {
+ SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(SSLContexts.createDefault()) {
+
+ @Override
+ protected void prepareSocket(SSLSocket socket) {
+ String hostname = socket.getInetAddress().getHostName();
+ if (hostname.endsWith("internal.system.com")) {
+ socket.setEnabledProtocols(new String[] { "TLSv1", "TLSv1.1", "TLSv1.2", "TLSv1.3" });
+ } else {
+ socket.setEnabledProtocols(new String[] { "TLSv1.3" });
+ }
+ }
+ };
+
+ return HttpClients.custom().setSSLSocketFactory(sslsf).build();
+ }
+
+ // To configure the TLS versions for the client, set the https.protocols system property during runtime.
+ // For example: java -Dhttps.protocols=TLSv1.1,TLSv1.2,TLSv1.3 -jar webClient.jar
+ public static CloseableHttpClient setViaSystemProperties() {
+ return HttpClients.createSystem();
+ // Alternatively:
+ // return HttpClients.custom().useSystemProperties().build();
+ }
+
+ public static void main(String[] args) throws IOException {
+ // Alternatively:
+ // CloseableHttpClient httpClient = setTlsVersionPerConnection();
+ // CloseableHttpClient httpClient = setViaSystemProperties();
+ try (CloseableHttpClient httpClient = setViaSocketFactory();
+ CloseableHttpResponse response = httpClient.execute(new HttpGet("https://httpbin.org/"))) {
+
+ HttpEntity entity = response.getEntity();
+ EntityUtils.consume(entity);
+ }
+ }
+}
\ No newline at end of file
diff --git a/httpclient/README.md b/httpclient/README.md
index d88739e901..23fe7c7271 100644
--- a/httpclient/README.md
+++ b/httpclient/README.md
@@ -18,3 +18,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
- [Advanced HttpClient Configuration](https://www.baeldung.com/httpclient-advanced-config)
- [HttpClient 4 – Do Not Follow Redirects](https://www.baeldung.com/httpclient-stop-follow-redirect)
- [Custom User-Agent in HttpClient 4](https://www.baeldung.com/httpclient-user-agent-header)
+- More articles: [[next -->]](../httpclient-2)
diff --git a/pom.xml b/pom.xml
index 6553716d63..065d6abbdd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -424,6 +424,7 @@
hazelcast
helidon
httpclient
+ httpclient-2
httpclient-simple
hystrix
@@ -935,6 +936,7 @@
hazelcast
helidon
httpclient
+ httpclient-2
httpclient-simple
hystrix