我从this帖子中了解到JB支持TLSv1.2。现在,当我运行下面的测试代码时,我陷入了困境。我得到支持的协议为TLS1.0,而不是TLSv1.2。做错什么了吗?
public class SSLTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ssltest);
SSLSocketFactory mSslSocketFactory = null;
SSLContext sslContext = null;
try {
sslContext = SSLContext.getInstance("Default");
} catch (NoSuchAlgorithmException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
mSslSocketFactory = sslContext.getSocketFactory();
SSLSocket sock = null;
try {
sock = (SSLSocket)mSslSocketFactory.createSocket();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] prots = sock.getEnabledProtocols();
for(int i=0;i<prots.length;i++){
Log.d("TEMP","$$$$$$$$$$$$$$$$$$$$$$$ ::: " + prots[i]);
}
SSLParameters sslp = sock.getSSLParameters();
String[] newprots = sslp.getProtocols();
for(int i=0;i<newprots.length;i++){
Log.d("TEMP","$$$$$$$$$$$$$$$$$$$$$$$ ::: " + newprots[i]);
}
}
输出:
10-11 11:57:53.280: D/TEMP(7928): $$$$$$$$$$$$$$$$$$$$$$$ ::: SSLv3
10-11 11:57:53.280: D/TEMP(7928): $$$$$$$$$$$$$$$$$$$$$$$ ::: TLSv1
10-11 11:57:53.280: D/TEMP(7928): $$$$$$$$$$$$$$$$$$$$$$$ ::: SSLv3
10-11 11:57:53.280: D/TEMP(7928): $$$$$$$$$$$$$$$$$$$$$$$ ::: TLSv1
发布于 2012-10-11 19:20:50
您混淆了启用和支持。支持协议这一事实并不意味着默认启用该协议。
如果您想使用TLS1.2,首先使用setEnabledProtocols
来启用它,如果在getSupportedProtocols
中支持它,那么它应该可以工作。
https://stackoverflow.com/questions/12846593
复制相似问题