如何获取HTTPS连接使用的密码

时间:2017-09-25 13:42:16

标签: java ssl tls1.2

如何在Java中获取HTTPS连接使用的密码?在使用以下代码点击URL后,我需要找到使用的TLS版本,无论是TLS 1.1还是1.2:

url = new URL(https_url);
HttpsURLConnection con = (HttpsURLConnection)url.openConnection();

下面给出了firefox浏览器的屏幕截图。 任何人都可以帮我解决这个问题吗? TLS Version

我试过了

SSLSocket socket = (SSLSocket) con.getSSLSocketFactory().createSocket();
String[] test = socket.getSSLParameters().getProtocols();

但是这给出了为连接启用的协议列表。我在哪里需要服务器响应中使用的协议。

附带的屏幕截图显示了我期望阅读的内容(TLS 1.2)

3 个答案:

答案 0 :(得分:0)

我认为con.getCipherSuite();应该为算法做点算...

https://docs.oracle.com/javase/7/docs/api/javax/net/ssl/HttpsURLConnection.html

对于tls来说这可能是一个奇怪的解决方案,但是如果你设法打开一个新的SSL套接字(也许你可以用socket.close();关闭) SSLSocket socket = (SSLSocket) con.getSSLSocketFactory().createSocket(); String[] test = socket.getSSLParameters().getProtocols();在测试值中请注意:您可以获得可用的TLS版本而不仅仅是一个版本。

答案 1 :(得分:0)

  1. 在连接之前在SSLSocketFactory上安装自定义HttpsURLConnection,或在连接时执行任何I / O.
  2. 安排您的SSLSocketFactory可以返回最近创建的SSLSocket,或者确实包含所有SSLSocket
  3. 在您已连接或完成连接上的任何I / O后,从SSLSocketFactory检索相关的SSLSession,并从当前SSLSockets获取当前密码。请注意,由于连接池和HTTP保持活动,将HttpsURLConnections<View> <Text>Some Text</Text> <Image style={{width: 50, height: 50}} source={{uri: 'https://facebook.github.io/react/img/logo_og.png'}} /> <Text>Some Text</Text> <Image style={{width: 50, height: 50}} source={{uri: 'https://facebook.github.io/react/img/logo_og.png'}} /> <Text>Some Text</Text> <Image style={{width: 50, height: 50}} source={{uri: 'https://facebook.github.io/react/img/logo_og.png'}} /> </View> 相关联并非易事。

答案 2 :(得分:-1)

您可以使用以下命令打印协议(TLSv1.2)和套件(TLS_ECDHE_RSA_WITH_AES):

SSLSocket ss = (SSLSocket) SSLSocketFactory.getDefault().createSocket("host", 443);
System.out.println("protocol: "+ss.getSession().getProtocol());
System.out.println("suite:    "+ss.getSession().ss.getSession().getCipherSuite());