java端连接https注意事项

双向证书生成

生成证书
D:\jdk1.5.0_06\bin\keytool.exe -genkey -keyalg RSA  -alias server  -keystore c:\server.keystore  -validity 3650 -dname "cn=localhost,ou=haiyi,o=haiyi,l=china,st=yantai,c=cn"

D:\jdk1.5.0_06\bin\keytool.exe -genkey -keyalg RSA  -alias client  -keystore c:\client.jks  -validity 3650  -dname "cn=localhost,ou=haiyi,o=haiyi,l=china,st=yantai,c=cn"
//不需要导入ie,故不需要转成pkcs12格式 -storetype PKCS12 -rfc
提取cer

D:\jdk1.5.0_06\bin\keytool.exe -export -alias client -file c:\client.cer -keystore c:\client.jks

D:\jdk1.5.0_06\bin\keytool.exe -export -alias server -file c:\server.cer -keystore c:\server.keystore

导入cer

D:\jdk1.5.0_06\bin\keytool.exe -import  -file c:\client.cer -keystore c:\server.keystore

D:\jdk1.5.0_06\bin\keytool.exe -import  -file c:\server.cer -keystore c:\client.jks

java端

        //System.setProperty("https.protocols", "TLSv1");
        System.setProperty("java.protocol.handler.pkgs","javax.net.ssl");
        //需要是jks结尾 
        System.setProperty("javax.net.ssl.trustStore","c:/client.jks");
        System.setProperty("javax.net.ssl.trustStorePassword","123456");
        //双向认证添加
        System.setProperty("javax.net.ssl.keyStore","c:/client.jks");
        System.setProperty("javax.net.ssl.keyStorePassword","123456");
        //设置证书cn与实际访问域名匹配
        HostnameVerifier hv = new HostnameVerifier() {

            public boolean verify(String hostname, SSLSession session) {
                // TODO Auto-generated method stub
                System.out.println(hostname);
                System.out.println(session.getPeerHost());
                return hostname.equals(session.getPeerHost());
            }
        };
        HttpsURLConnection.setDefaultHostnameVerifier(hv);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值