2017-03-08 132 views
0

问题:我想通过使用泽西客户端来使用HTTPS Restful Webservice。如何使用泽西客户端使用https RestFul Webservice

1)我从第三方CAROOT证书并安装在浏览器(Mozilla的),我能够从RESTClient实现访问Mozilla浏览这些服务。

ⅰ)RootCA.pem ⅱ)SUBCA-Client.pem ⅲ)abc_sdsdllkl_p12.pfx

2)I想要通过使用Jersey客户端配置此web服务中的Java代码。

3)我需要做的是如何在java代码中配置这些证书。

4)我不想在本地JRE中配置这些。

PAttributes pd = new PAttributes(); 
      ClassLoader classLoader = pd.getClass().getClassLoader(); 
      File file = new File(classLoader.getResource("cacerts").getFile()); 
      System.setProperty("javax.net.ssl.trustStore",file.getAbsolutePath()); 
      System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); 
      Client client = Client.create(); 
      WebResource webResource = client.resource("https://xyz/abc/getAttributes"); 
      String input = new PAttributes().getRequestBody(); 
      ClientResponse clientResponse = webResource.accept("application/xml").type("application/xml").post(ClientResponse.class, input); 
      String output = clientResponse.getEntity(String.class); 
      System.out.println("output"+output); 

我已经从浏览器下载了.crt文件,需要配置,不知道该怎么做?

回答

1

在您的java安装文件夹中有一个名为cacerts的文件。这是您的JRE的“Keystore”或“Truststore”。它包含您的JRE所信任的所有证书。您可以添加/删除信任库中的证书。 方便地添加/删除证书,您可以使用GUI PROGRAMM Keystore Explorer

选项1使用密钥库资源管理器和默认的信任库

  1. 打开使用密钥库资源管理器的信任。
    (的信任应该是<JRE-HOME>/lib/security/cacerts下,默认的密码应该是“的changeit”是“changeme”)

  2. 拖动和“.CRT”文件拖放到打开的信任密钥库中的资源管理器

  3. 点击“导入”并保存信任库

现在您的JRE安装已准备好使用web服务。


选项2使用密钥库资源管理器和一个单独的信任存储

  1. 复制默认信任到项目中。默认信托的路径为:<JRE-HOME>/lib/security/cacerts

  2. 使用密钥库浏览器打开复制的信任库。
    (初始密码应该是“的changeit”是“changeme”)

  3. 拖动和“.CRT”文件拖放到打开的信任密钥库中的资源管理器

  4. 具有以下VM启动PROGRAMM -Arguments:

    -Djavax.net.ssl。的trustStore [路径到复制-信任]
    -Djavax.net.ssl.trustStorePassword [信任密码]


选项3使用2个信任库(默认+独立信任库)

如果你想使用默认的信任库和一个单独的网站参考这篇文章https://stackoverflow.com/a/24561444/1638059

+0

我没有得到如何做到这一点,我有两个.crt文件'RootCA.crt'和SubCA-Cli ent.crt,放置这些文件的位置以及如何配置为Java代码。 – user3676578

+0

您使用的是Linux还是Windows? – Schlangguru

+0

我正在使用Windows 10操作系统。我是SSL证书的新手。 – user3676578

相关问题