Создал(а) 'MTLS_HttpClient.java'
This commit is contained in:
74
MTLS_HttpClient.java
Normal file
74
MTLS_HttpClient.java
Normal file
@@ -0,0 +1,74 @@
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.ssl.SSLContexts;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.KeyStore;
|
||||
|
||||
|
||||
|
||||
public class Http3 {
|
||||
|
||||
private static final String KEYSTOREPATH = "keystore.jks"; // or .p12
|
||||
private static final String TRUSTSTOREPATH = "truststore.jks"; // or .p12
|
||||
private static final String KEYSTOREPASS = "123123";
|
||||
private static final String KEYPASS = "123123";
|
||||
|
||||
KeyStore readStore() throws Exception {
|
||||
try (FileInputStream trustKeyStoreFile = new FileInputStream(new File(KEYSTOREPATH))) {
|
||||
KeyStore keyStore = KeyStore.getInstance("JKS"); // or "PKCS12"
|
||||
keyStore.load(trustKeyStoreFile, KEYSTOREPASS.toCharArray());
|
||||
return keyStore;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
KeyStore readTrust() throws Exception {
|
||||
try (FileInputStream trustStoreStream2 = new FileInputStream(new File(TRUSTSTOREPATH))) {
|
||||
KeyStore trustStore = KeyStore.getInstance("JKS"); // or "PKCS12"
|
||||
trustStore.load(trustStoreStream2,KEYSTOREPASS.toCharArray());
|
||||
return trustStore;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void query() throws Exception {
|
||||
|
||||
System.out.println(System.getProperty("user.dir"));
|
||||
System.out.println(KEYSTOREPATH);
|
||||
|
||||
SSLContext sslContext = SSLContexts.custom()
|
||||
.loadTrustMaterial(readTrust(),null)
|
||||
//.loadTrustMaterial(null, new TrustSelfSignedStrategy())
|
||||
//.loadTrustMaterial(null, (x509CertChain, authType) -> true) //вариант принимающий всё
|
||||
.loadKeyMaterial(readStore(), KEYPASS.toCharArray()) // use null as second param if you don't have a separate key password
|
||||
.build();
|
||||
|
||||
|
||||
HttpClient httpClient = HttpClients.custom().setSSLContext(sslContext).build();
|
||||
|
||||
HttpPost query = new HttpPost("https://192.168.200.10/index.php?koko=1");
|
||||
query.setHeader("р1","yes"); //заголовок
|
||||
query.setEntity(new StringEntity("ratatatat")); //тело
|
||||
|
||||
|
||||
HttpResponse response = httpClient.execute(query);
|
||||
HttpEntity entity = response.getEntity();
|
||||
|
||||
System.out.println("----------------------------------------");
|
||||
System.out.println(response.getStatusLine());
|
||||
String responseBody = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||
System.out.println("Response body: " + responseBody);
|
||||
EntityUtils.consume(entity);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user