代码之家  ›  专栏  ›  技术社区  ›  developer_hatch

Java中的Tomcat 6和TLV1.2

  •  9
  • developer_hatch  · 技术社区  · 8 年前

    我有一个部署在Tomcat 6中的Java应用程序。该应用程序通过套接字向另一个服务发送消息,它只需要使用tlsv1.2协议。 在tomcat6.conf文件中,我放置了以下配置:

    JAVA_HOME=/usr/lib/jvm/jre1.7.0_75
    JAVA_OPTS="${JAVA_OPTS} -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -Dhttps.protocols=TLSv1.2"
    

    但stll使用旧的tls版本。

    在Java或Tomcat中是否有强制使用TLV1.2的配置?


    编辑1: @peter walser提供的答案很好,可以工作。问题是 我不能修改代码 因为是第三方提供的JAR,我只能配置环境,不能配置代码。

    2 回复  |  直到 8 年前
        1
  •  2
  •   Peter Walser    8 年前

    https.protocols HttpsURLConnection URL.openStream() Diagnosing TLS, SSL, and HTTPS

    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
    socket.setEnabledProtocols(new String[] {"TLSv1.2"});
    

    SSLContext

    Client client = ClientBuilder.newBuilder()
        .sslContext(SSLContext.getInstance("TLSv1.2"))
        // more settings, such as key/truststore, timeouts, logging
        .build();
    
        2
  •  2
  •   Roshana Pitigala Laxmansinghsodhanohdiyala    8 年前

    The Apache Tomcat 5.5 Servlet/JSP Container - SSL Configuration HOW-TO


    <Connector protocol="org.apache.coyote.http11.Http11AprProtocol" port="8443" .../>
    

    $CATALINA_BASE/conf/server.xml $CATALINA_BASE <Connector> server.xml

    <!--
    <Connector 
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       SSLCertificateFile="/usr/local/ssl/server.crt" 
       SSLCertificateKeyFile="/usr/local/ssl/server.pem"
       clientAuth="optional" SSLProtocol="TLSv1"/>
    -->
    


    SSLProtocol < SSLProtocol="TLSv1.2"

    <Connector 
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       SSLCertificateFile="/usr/local/ssl/server.crt" 
       SSLCertificateKeyFile="/usr/local/ssl/server.pem"
       clientAuth="optional" SSLProtocol="TLSv1.2"/>