https request one-way authentication

The one-way authentication certificate configuration is relatively simple. The server certificate server.cer is placed in the assets directory. The request configuration is as follows:

intercept part of the code

public static synchronized String requestByPost(String urlpath,
			String requestData) throws IOException {
		AssetManager am = CommonDataApplication.getInstance().getApplicationContext().getAssets();
		SSLContext context = null;
		try {
			InputStream ins = am.open("server.cer");
			CertificateFactory cerFactory = CertificateFactory.getInstance("X.509");
			Certificate cer;
			try {
				cer = cerFactory.generateCertificate(ins);
			} finally {
				ins.close();
			}
			// Create a KeyStore containing our trusted CAs
			String keyStoreType = KeyStore.getDefaultType();
			KeyStore keyStore = KeyStore.getInstance(keyStoreType);
			keyStore.load(null, null);
			keyStore.setCertificateEntry("ca", cer);

			// Create a TrustManager that trusts the CAs in our KeyStore
			String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
			TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
			tmf.init(keyStore);

			// Create an SSLContext that uses our TrustManager
			context = SSLContext.getInstance("TLS");
			context.init(null, tmf.getTrustManagers(), null);
		} catch (Exception e) {
			e.printStackTrace ();
		}
		URL url = new URL(urlpath);
		HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
		conn.setSSLSocketFactory(context.getSocketFactory());
		conn.setDoInput(true);
		conn.setConnectTimeout(TIMEOUT);
		
                                                                                           

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326497399&siteId=291194637