SORU
15 HAZİRAN 2009, PAZARTESİ


Https Bağlantısı Android

Https bir post yapıyorum ve özel bir istisna ssl sunucu sertifikası güvenilmiyor alıyorum. Eğer normal http yaparsam gayet iyi çalışıyor. Sunucu sertifikası bir şekilde kabul etmek zorunda mıyım?

CEVAP
16 HAZİRAN 2009, Salı


Bu ben ne yapıyorum. Sadece sertifika artık kontrol etmiyor.

// always verify the host - dont check for certificate
final static HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
	public boolean verify(String hostname, SSLSession session) {
		return true;
	}
};

/**
 * Trust every server - dont check for any certificate
 */
private static void trustAllHosts() {
	// Create a trust manager that does not validate certificate chains
	TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
		public java.security.cert.X509Certificate[] getAcceptedIssuers() {
			return new java.security.cert.X509Certificate[] {};
		}

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

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

	// Install the all-trusting trust manager
	try {
		SSLContext sc = SSLContext.getInstance("TLS");
		sc.init(null, trustAllCerts, new java.security.SecureRandom());
		HttpsURLConnection
				.setDefaultSSLSocketFactory(sc.getSocketFactory());
	} catch (Exception e) {
		e.printStackTrace();
	}
}

ve

	HttpURLConnection http = null;

	if (url.getProtocol().toLowerCase().equals("https")) {
	    trustAllHosts();
		HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
		https.setHostnameVerifier(DO_NOT_VERIFY);
		http = https;
	} else {
		http = (HttpURLConnection) url.openConnection();
	}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Blunty

    Blunty

    13 Mart 2006
  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • MkElite

    MkElite

    13 NİSAN 2012