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

  • EminemMusic

    EminemMusic

    9 ŞUBAT 2007
  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • HouseholdHacker

    HouseholdHac

    6 Kasım 2007