有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java RMI服务器/客户端的强制SSL/TLS版本

在所有有文档记录的地方,它都说JavaRMI可以应用SSL/TLS。我有一个客户机/服务器应用程序的工作示例,它正是这样做的。但是我怎样才能将使用过的协议强制到TLS1.2?我需要确保从未使用任何SSL版本或TLS1.0


共 (1) 个答案

  1. # 1 楼答案

    我找到了答案,最后我自己编写了一个RMIServerSocketFactory的实现:

    public class TlsServerSocketFactory implements RMIServerSocketFactory {
    
        public ServerSocket createServerSocket(int port) throws IOException
        {
            SSLServerSocketFactory sf = ((SSLServerSocketFactory) SSLServerSocketFactory.getDefault());
            SSLServerSocket s = (SSLServerSocket) (sf.createServerSocket(port));
    
            s.setUseClientMode(false);
            s.setEnabledProtocols(new String[]{"TLSv1.1", "TLSv1.2"}); // NO POODLES HERE!
            s.setEnabledCipherSuites(s.getSupportedCipherSuites());
    
            return s;
        }
    }
    

    对于ClientFactory,这几乎是相同的过程,但这不是我需要的。 哦,我必须得到JDK1.8,因为TLS1是1.6的最大值