принимать самоподписанные сертификаты SSL-> где установить по умолчанию TrustManager

Сначала я должен был признать, что знаю, что принятие всех сертификатов может рассматриваться как отсутствие безопасности. У нас есть "реальный» Сертификаты, но только на наших живых системах. Сертификаты в наших тестовых системах являются самозаверяющими. Так что пока мыПри разработке мы должны использовать тест-серверы, что заставляет меня отключать сертификаты.

Здесь, в Stackoverflow и во всем Интернете, я видел множество тем, которые пытаются сделать одно и то же: принимать SSL-сертификаты. Однако ни один из этих ответов, кажется, не относится к моей проблеме, так как яЯ не возиться с.HTTPSUrlConnections

Если я'Когда я делаю запрос, код обычно выглядит так (закомментировано для пояснения):

//creates an HTTP-Post with an URL
HttpPost post = createBaseHttpPost();
//loads the request Data inside the httpPost
post.setEntity(getHttpPostEntity());
//appends some Headers like user-agend or Request UUIDs
appendHeaders(post);

HttpClient client = new DefaultHttpClient();
//mResponse is a custom Object which is returned 
//from the custom ResponseHandler(mResponseHandler) 
mResponse = client.execute(post, mResponseHandler);
return mResponse;

Я прочитал, что я должен вводить свой собственныйTrustManager а такжеX509HostnameVerivier, Я создал их так:

private static final TrustManager[] TRUST_ALL_CERTS = new TrustManager[]{
        new X509TrustManager() {

            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[]{};
            }

            public void checkServerTrusted(X509Certificate[] chain, String authType)
                    throws CertificateException {
            }

            public void checkClientTrusted(X509Certificate[] chain, String authType)
                    throws CertificateException {
            }
        }

    };

    private static X509HostnameVerifier ACCEPT_ALL_HOSTNAMES = 
            new X509HostnameVerifier() {

                public void verify(String host, String[] cns, String[] subjectAlts)
                        throws SSLException {
                }

                public void verify(String host, X509Certificate cert) throws SSLException {
                }

                public void verify(String host, SSLSocket ssl) throws IOException {
                }

                public boolean verify(String host, SSLSession session) {
                    return true;
                }
            };

Если я введуHostnameVerifier внутри моего запроса, как это (клиент по умолчанию DefaultHttpClient)

SSLSocketFactory ssl = (SSLSocketFactory)client.getConnectionManager().getSchemeRegistry().getScheme("https").getSocketFactory();
ssl.setHostnameVerifier(ACCEPT_ALL_HOSTNAMES);

ответ превращается изимя хоста ** не сделалт матч " к "Плохой запрос ", Я думаю, мне нужно установить TrustManager, но яЯ не знаю, где установить его в моем запросе, как яЯ не использую HttpsUrlConnections, упомянутые везде, где я их искал.

Ответы на вопрос(1)

Ваш ответ на вопрос