package com.rutils; import java.io.InputStream; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.security.KeyStore; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; public class Main{ public static void main(String[] args){ try{ CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream certInputStream = Main.class.getResourceAsStream("/mycertificate.crt"); X509Certificate caCert = (X509Certificate)cf.generateCertificate(certInputStream); KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(null, null); keyStore.setCertificateEntry("mycertificate", caCert); TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(keyStore); SSLContext context = SSLContext.getInstance("TLS"); context.init(null, tmf.getTrustManagers(), null); HttpClient client = HttpClient.newBuilder().sslContext(context).build(); HttpRequest request = HttpRequest.newBuilder().uri(new URI("https://localhost:8000/greet")).build(); HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } catch(Exception e){ e.printStackTrace(); } } }