How to send https request with certificates in java?

by scotty_walker , in category: Third Party Scripts , 2 months ago

How to send https request with certificates in java?

Facebook Twitter LinkedIn Telegram Whatsapp

1 answer

by elisha_langworth , 2 months ago

@scotty_walker 

You can send an HTTPS request with certificates in Java by using the HttpsURLConnection class. Here is an example code snippet that demonstrates how to do this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

public class HttpsRequestWithCertificatesExample {

    public static void main(String[] args) throws Exception {
        URL url = new URL("https://www.example.com");
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        
        // Load the custom SSL certificates
        System.setProperty("javax.net.ssl.keyStore", "path_to_key_store_file");
        System.setProperty("javax.net.ssl.keyStorePassword", "key_store_password");
        System.setProperty("javax.net.ssl.trustStore", "path_to_trust_store_file");
        System.setProperty("javax.net.ssl.trustStorePassword", "trust_store_password");
        
        // Perform the HTTPS request
        connection.setRequestMethod("GET");
        
        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        
        System.out.println(response.toString());
    }
}


In this code snippet, we first create a URL object representing the HTTPS URL that we want to send a request to. We then open an HttpsURLConnection to the URL.


We set the system properties javax.net.ssl.keyStore, javax.net.ssl.keyStorePassword, javax.net.ssl.trustStore, and javax.net.ssl.trustStorePassword to load the custom SSL certificates needed to establish the secure connection.


We then set the request method to GET, read the response from the server, and print it out.


Please make sure to replace the placeholders path_to_key_store_file, key_store_password, path_to_trust_store_file, and trust_store_password with the actual paths and passwords for your custom SSL certificates.