src/main/java/com/zx/maintain/util/sms/yzx/SSLHttpClient.java
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
package com.zx.maintain.util.sms.yzx;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.Principal;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
public class SSLHttpClient {
/**
* 4.1.1
* 注册SSL连接
* @param hostname 请求的主机名(IP或者域名)
* @param protocol 请求协议名称(TLS-安全传输层协议)
* @param port 端口号
* @param scheme 协议名称
* @return HttpClient实例
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public DefaultHttpClient registerSSL(String hostname,String protocol,int port,String scheme)throws NoSuchAlgorithmException, KeyManagementException {
//创建一个默认的HttpClient
DefaultHttpClient httpclient = new DefaultHttpClient();
//创建SSL上下文实例
SSLContext ctx = SSLContext.getInstance(protocol);
//服务端证书验证
X509TrustManager tm = new X509TrustManager() {
/**
* 验证客户端证书
*/
@Override
public void checkClientTrusted(X509Certificate[] chain,String authType)
throws java.security.cert.CertificateException {
//这里跳过客户端证书 验证
}
/**
* 验证服务端证书
* @param chain 证书链
* @param authType 使用的密钥交换算法,当使用来自服务器的密钥时authType为RSA
*/
@Override
public void checkServerTrusted(X509Certificate[] chain,String authType)
throws java.security.cert.CertificateException {
if (chain == null || chain.length == 0)
throw new IllegalArgumentException("null or zero-length certificate chain");
if (authType == null || authType.length() == 0)
throw new IllegalArgumentException("null or zero-length authentication type");
boolean br = false;
Principal principal = null;
for (X509Certificate x509Certificate : chain) {
后面还有 28 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
