title: Problems with https (No peer certificate) in android
body: <h2>Problem</h2>
  
  <p>I want to send https request to the site <a href="https://10.2.20.20/fido/EzPay/login.php">https://10.2.20.20/fido/EzPay/login.php</a> my own server and get response from it and save it for example in a string. I have found some example codes in internet and try to test them for my problem but they are not helpful. Below I present some parts of codes which I have tested.</p>
  
  <hr>
  
  <h2>Code Example:</h2>
  
  <p>I try this code, but I always get same exception "No peer certificate" Why ?</p>
  
  <pre><code>try
  {
      HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
  
      DefaultHttpClient client = new DefaultHttpClient();
  
      SchemeRegistry registry = new SchemeRegistry();
      SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
      socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
      registry.register(new Scheme("https", socketFactory, 443));
      SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry);
      DefaultHttpClient httpClient = new DefaultHttpClient(mgr, client.getParams());
  
      // Set verifier      
      HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
  
      // Example send http request
      final String url = "https://10.2.20.20/fido/EzPay/login.php";
      HttpPost httpPost = new HttpPost(url);
      HttpResponse response = httpClient.execute(httpPost);
  
      BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
      String line = "";
      while ((line = rd.readLine()) != null) {
          Log.i(DownloadImageTask.class.getName(), line);
      }
  
  }
  catch(IOException ex)
  {
      Log.e(DownloadImageTask.class.getName(), ex.getMessage());
  }
  </code></pre>
  
  <p><em><strong>Exception.</em></strong></p>
  
  <blockquote>
    <p>03-02 16:58:25.234: W/System.err(1868):
    javax.net.ssl.SSLPeerUnverifiedException: No peer certificate 03-02
    16:58:25.238: W/System.err(1868):     at
    org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
    03-02 16:58:25.238: W/System.err(1868):   at
    org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
    03-02 16:58:25.238: W/System.err(1868):   at
    org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
    03-02 16:58:25.238: W/System.err(1868):   at
    org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
    03-02 16:58:25.250: W/System.err(1868):   at
    org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    03-02 16:58:25.250: W/System.err(1868):   at
    org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    03-02 16:58:25.250: W/System.err(1868):   at
    org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    03-02 16:58:25.250: W/System.err(1868):   at
    org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    03-02 16:58:25.250: W/System.err(1868):   at
    org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    03-02 16:58:25.250: W/System.err(1868):   at
    org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    03-02 16:58:25.250: W/System.err(1868):   at
    com.https.test.DownloadImageTask.doInBackground(Https_testActivity.java:78)
    03-02 16:58:25.250: W/System.err(1868):   at
    com.https.test.DownloadImageTask.doInBackground(Https_testActivity.java:1)
    03-02 16:58:25.250: W/System.err(1868):   at
    android.os.AsyncTask$2.call(AsyncTask.java:264) 03-02 16:58:25.253:
    W/System.err(1868):   at
    java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    03-02 16:58:25.253: W/System.err(1868):   at
    java.util.concurrent.FutureTask.run(FutureTask.java:137) 03-02
    16:58:25.253: W/System.err(1868):     at
    android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208) 03-02
    16:58:25.257: W/System.err(1868):     at
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    03-02 16:58:25.257: W/System.err(1868):   at
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    03-02 16:58:25.257: W/System.err(1868):   at
    java.lang.Thread.run(Thread.java:856)</p>
  </blockquote>
  
  <hr>
  
  <h2>Question</h2>
  
  <p>What I'm doing wrong and how I can solve this issue. Why I get "<strong><em>No peer certificate</em></strong>" exception ?</p>
  
  <p>Thanks.</p>
  
  <h2>Edited</h2>
  
  <hr>
  
  <p>Windows Server settings.</p>
  
  <pre><code>&lt;VirtualHost *:443&gt;
    ServerName 10.2.20.20
  
   Alias /fido/EzPay/ "d:/fido/EzPay/" 
  Alias /fido/EzPay "d:/fido/EzPay/" 
  
  &lt;Directory "d:/fido/EzPay/"&gt;
      Options Indexes FollowSymLinks MultiViews
      AllowOverride all
          Order allow,deny
      Allow from all
  &lt;/Directory&gt;
  
  
    # These are the actual SSL directives needed to get it all working!
    SSLEngine on
    SSLCertificateFile C:/wamp/bin/apache/apache2.2.17/conf/ssl/fidoserver.crt
    SSLCertificateKeyFile C:/wamp/bin/apache/apache2.2.17/conf/ssl/fidoserver.pem
  &lt;/VirtualHost&gt;
  </code></pre>