2016-12-19 3 views
0

Ich habe eine Locke wie wie unten gezeigtvorbei Attribute in Apache HTTP-Client

curl -s -g https://example.com:8086 --tlsv1 --cacert /etc/myfolder/certificate.pem --cert /etc/myfolder/ssl/certificate.pem --key /etc/myfolder/com/certificate.pem 

Ich habe verwendet Apache Java-HTTP-Client für die oben curl Zugriff

String url = "https://example.com:8086"; 
HttpClient client = HttpClientBuilder.create().build(); 
HttpGet httpGet = new HttpGet(url); 
httpGet.setHeader("Content-Type", "application/json"); 
HttpResponse httpresponse = client.execute(httpGet); 
EntityUtils.toString(httpresponse.getEntity()); 

aber ich weiß nicht, wie passieren certiifcates und Attribute wie -s-g--tlsv1--cacert /etc/myfolder/certificate.pem--cert /etc/myfolder/ssl/certificate.pem--key /etc/myfolder/com/certificate.pem

Kann jemand bitte helfen Sie mir auf dieser

+2

Sie müssen möglicherweise Keystore und Truststore verwenden: https://docs.oracle.com/cd/E19830-01/819-4712/ablqw/index.html –

+0

@JiriTousek können Sie mir ein Beispielbeispiel mit Java –

+0

zeigen können wir das tun mit Apache http Client –

Antwort

0
SSLContext sslContext = SSLContexts.custom() 
     .loadTrustMaterial(new File("/etc/myfolder/certificate.keystore")) 
     .loadTrustMaterial(new File("/etc/myfolder/ssl/certificate.keystore"), "store password".toCharArray(), "key password".toCharArray()) 
     .build(); 
CloseableHttpClient client = HttpClientBuilder.create() 
    .setSSLSocketFactory(new SSLConnectionSocketFactory(
      sslContext, 
      new String[] {"TLSv1"}, 
      null, 
      SSLConnectionSocketFactory.getDefaultHostnameVerifier())) 
HttpGet httpGet = new HttpGet("https://targethost/"); 
try (CloseableHttpResponse response1 = client.execute(httpGet)) { 
    System.out.println(response1.getStatusLine()); 
    EntityUtils.consume(response1.getEntity()); 
} 

Bitte beachten Sie auf das Format Ihrer PEM-Dateien ab, die Sie wahrscheinlich zuerst müssen sie in eine Java-Schlüsselspeicher laden.

Verwandte Themen