java - 如何检查我的应用正在使用哪种 TLS 协议(protocol)进行网络操作

标签 java android ssl tls1.2

我对 android 中的 TLS 有疑问。我的项目需要确保每个设备都只使用 TLS 1.2 进行任何类型的网络操作。因为一些支付网关已经强制要求只允许来自 TLS 1.2 的调用.

SSLParameters sslParameters;
try {
    sslParameters = SSLContext.getDefault()
            .getDefaultSSLParameters();
} catch (NoSuchAlgorithmException e) {
    // ...
}

使用上面的代码我可以知道我的设备中启用了多少协议(protocol)。 E.g=在我的设备中它显示了 3 个协议(protocol)-:

tls 1.0、tls 1.1 和 tls 1.2

我担心的是如何确保从设备发出的网络调用使用的是 tls 1.2。

是否有任何代码可以检查我的设备使用哪种协议(protocol)进行网络通话。

最佳答案

事后您可以从 SSLSession 获取协议(protocol),但您真正应该做的是先发制人地禁用所有 TLS 协议(protocol), TLSv1.2 除外,它您可以通过错误的 SSLParameters 提前完成。

关于java - 如何检查我的应用正在使用哪种 TLS 协议(protocol)进行网络操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51080545/

相关文章:

java - kolmogorov-Smirnov 测试 Java

java - Spring - 仅当值不为空时才设置属性

java - 我的 ScheduledThreadPoolExecutor 没有关闭

android - 如何最小化Android应用程序缓存大小

c# - 建立 SSL\TLS 连接 (X509Chain.Build()) 花费的时间太长

java - 如何在 JSP 中公开 bean?

java - 没有额外空间的 O(n) 中的反转堆栈不会发生

android - 如何从 Developer Console 中删除被拒绝的应用

java - java如何选择最强的密码在jsse中使用?

asp.net - 使用 CN 名称匹配域名在 IIS 7 上创建自签名证书