https://bz.apache.org/bugzilla/show_bug.cgi?id=58741

            Bug ID: 58741
           Summary: Large number of public certificates in keystore causes
                    handshake timeout with Http11Nio2Protocol
           Product: Tomcat 8
           Version: 8.0.24
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: Connectors
          Assignee: dev@tomcat.apache.org
          Reporter: sis...@workforcesoftware.com

SSL Handshake seems to be timing out with Http11Nio2Protocol and large number
of entries in the keystore.

I have a connector definition as something like below in server.xml.

    <Connector port="10443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol" maxHttpHeaderSize="4096"
           maxThreads="1050" minSpareThreads="25"
           maxKeepAliveRequests="-1" keepAliveTimeout="180000"
           enableLookups="false" disableUploadTimeout="true"
           acceptCount="10" scheme="https" secure="true" SSLEnabled="true"
           clientAuth="want" sslProtocol="TLSv1.2"
sslEnabledProtocols="TLSv1.2,TLSv1"
           connectionTimeout="180000"
           keystoreFile="workforce.keystore"
           keystorePass="xxx" algorithm="SunX509"
           truststoreFile="workforce.keystore"
           truststorePass="xxx"
           truststoreType="JKS"
           keyAlias="tomcat"
           compression="on"
           compressionMinSize="2048"
         
trustManagerClassName="com.workforcesoftware.tomcatssl.WorkforceTrustManager"
           useServerCipherSuitesOrder="true"
           ciphers="TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_128_CBC_SHA"
           compressableMimeType="text/html,text/xml,text/js,text/css"/>

Steps to reproduce,

1) Define a connector with something like above.
2) Use a large keystore file. I have a large keystore with one private key with
alias tomcat (as defined in keyAlias) and large number of public certificates
that I trust (> 1400). Sample keystore file is attached.
3) Start/Restart the tomcat.
4) Try to access the application/tomcat using the specified connector from the
browser.
5) SSL handshake seems to be timing out. SSL/Handshake debug log is attached.

When I change the protocol from Http11Nio2Protocol to Http11NioProtocol, SSL
handshake seems to be working fine. Besides this, I have also tried separating
out keystore (with only tomcat entry) and trust store (with all public
certificates), but with that configuration, the handshake still seems to be
timing out.

Thanks

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to