SSLSocketFactory设置握手超时和套接字属性

sup*_*ell 5 ssl android

我有一个协议,其中有一个普通的普通套接字升级到SSL/TLS.我需要能够控制处理SSL握手的超时以及其他参数,例如允许的协议版本.(例如关闭SSLv3).

除了握手超时之外你可以做所有这些javax.net.ssl.SSLSocketFactory,你可以调用createSocket(socket, host port, autoClose),设置返回的附加设置SSLSocket,然后调用startHandshake握手.但似乎没有任何方法可以设置握手超时设置,默认设置相当小.

永远不要害怕,android.net.SSLCertificateSocketFactory就在这里!,这可以让你控制握手超时设置,但它也改变了createSocket(socket, host, port, autoClose)做实际握手的行为,所以当你把SSLSocket从工厂拿回来时,为时已晚,无法做其他事情.会影响握手(如关闭SSLv3).

有两种方法可以做到吗?我需要能够在Api v8上做到这一点

(SSLContext/SSLParameters看起来可能有用但是Api v9,但它看起来也像SSLCertificateSocketFactory创建自己的上下文,因此设置默认值将无济于事).

Vad*_*iak -1

对于特定的协议选择,您在调用 startHandshake 之前是否尝试过 SSLSocket.setEnabledProtocols ?

对于握手超时设置,您可以使用 SSLCertificateSocketFactory。