如何调用带不可信SSL证书的REST Web服务?

作者:chszs,转载需注明。
作者博客主页:http://blog.csdn.net/chszs


在我们的开发环境中,我们为应用程序配置了自签名的SSL证书,很显然,我们不会为开发服务器花证书的钱。所以,我们就面临着“如何调用带不可信SSL证书的REST Web服务”这样的问题。

我使用Jersey REST客户端调用REST Web服务,代码示意如下:

作者chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

TrustManager[] trustAllCerts = new TrustManager[] { 
  new X509TrustManager() {
      public X509Certificate[] getAcceptedIssuers() {
          return null;
      }
        public void checkClientTrusted(X509Certificate[] certs, String authType) {}
        public void checkServerTrusted(X509Certificate[] certs, String authType) {}
    }
};

SSLContext context = SSLContext.getInstance("TLS");
context.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());

ClientConfig config = new DefaultClientConfig();
config.getProperties().put(
  HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, 
  new HTTPSProperties(new HostnameVerifier() {
      @Override
      public boolean verify(String s, SSLSession sslSession) {
          return true;
      }
  },
  context)
);

Client client = Client.create(config);
client.setFollowRedirects(true);
WebResource resource = client.resource("https://myserver/myws");
resource.accept(MediaType.APPLICATION_JSON_TYPE);
String result = resource.post(String.class);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值