java https tlsv1,如何在Java中使用TLSV1或SSLV3进行第一次握手(Client Hello)?

When I execute the following code, why is the first handshake SSLv2, not TLSv1 or SSLv3?

How to use TLSV1 or SSLV3 for first handshake in Java?

String host = "www.google.com";

String url = "/adsense/?sourceid=aso&subid=ZH_CN-ET-AS-ADSBY6&medium=link&hl=zh_CN";

SSLContext ctx = SSLContext.getInstance("TLS");

ctx.init(new KeyManager[0], new TrustManager[] {new DefaultTrustManager()}, new SecureRandom());

SSLContext.setDefault(ctx);

SSLSocketFactory factory = ctx.getSocketFactory();

Socket socket = factory.createSocket(host, 443);

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

out.write("GET " + url + " HTTP/1.0");

out.flush();

out.close();

in.close();

解决方案

For TLSv1:

Starting the client jvm with

-Dhttps.protocols="TLSv1"

or using

System.setProperty("https.protocols", "TLSv1");

solved the problem for me.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值