0

Web サービスの呼び出し中に SSL 証明書を無視する方法を教えてください。API 応答を取得するために https weburl を呼び出していますが、ピアが認証されていないというエラーが発生します。一部のメソッドが非推奨になっているため、古い例は機能していません。このエラーが発生しないように、誰かが私に教えたり、サンプルコードを提供したりできます。

証明書が原因で問題が発生していることを知りました。私は db 呼び出しにサード パーティの API を使用しています。彼らのドメインには ssl 証明書があります。つまり、www.dbprovider.com (SSL 証明書は *.dbprovider.com) です。

したがって、問題は、コマンドを実行しようとしたときにピア証明書が利用できないことです

openssl s_client -ssl3 -showcerts -connect myapp.dbprovider.com:443

openssl s_client -tls1 -showcerts -connect myapp.dbprovider.com:443

誰かが私が今それで何をすべきか教えてもらえますか. 彼らが私にいくつかの構成を提供できるようにdbproviderサイトに何らかの制御がありますか、または証明書を無視するコードを書く必要があります(ただし、証明書を無視するためにピア証明書を取得していません)

4

1 に答える 1

0

SSLSocketFactoryここで説明されているようにカスタムを使用します:http: //hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d5e512。自己署名証明書を無視するそのようなファクトリの1つはですEasySSLProtocolSocketFactory

  ProtocolSocketFactory factory = new EasySSLProtocolSocketFactory();
  try {
    URI uri = new URI(config.getBaseUrl());
    int port = uri.getPort();
    if (port == -1) {
      port = 443;
    }
    Protocol easyHttps = new Protocol(uri.getScheme(), factory, port);
    hostConfiguration.setHost(uri.getHost(), port, easyHttps);
  } catch (URISyntaxException e) {
    throw new IOException("could not parse URI " + config.getBaseUrl(), e);
  }

ソース: http: //frightanic.com/software-development/self-signed-certificates-in-apache-httpclient/

于 2013-02-19T12:48:16.093 に答える