All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.treeleafj.xmax.http.basic.ssl.PKC12SslSocketFacotryBuilder Maven / Gradle / Ivy

There is a newer version: 1.0.2
Show newest version
package org.treeleafj.xmax.http.basic.ssl;


import org.treeleafj.xmax.safe.Assert;

import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import java.io.FileInputStream;
import java.security.KeyStore;

/**
 * Created by leaf on 2016/3/18.
 */
public class PKC12SslSocketFacotryBuilder {

    private String certPath;

    private String password;

    public PKC12SslSocketFacotryBuilder(String certPath, String password) {
        this.certPath = certPath;
        this.password = password;
    }

    public SSLSocketFactory build() {
        Assert.hasText(certPath, "证书路径不能为空");
        Assert.hasText(password, "证书密码不能为空");
        try {
            KeyStore ks = KeyStore.getInstance("PKCS12");
            ks.load(new FileInputStream(certPath), password.toCharArray());
            KeyManagerFactory tmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
            tmf.init(ks, password.toCharArray());

            KeyManager[] keymanagers = tmf.getKeyManagers();
            SSLContext sslcontext = SSLContext.getInstance("TLS");

            sslcontext.init(keymanagers, null, null);

            return sslcontext.getSocketFactory();
        } catch (Exception e) {
            throw new RuntimeException("构建SslScoketFacotry失败", e);
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy