bcgit / bc-java

Bouncy Castle Java Distribution (Mirror)
https://www.bouncycastle.org/java.html
MIT License
2.33k stars 1.14k forks source link

BC Approved mode doesn't support ECDHE ciphers on java-8 #1896

Closed hping2 closed 2 weeks ago

hping2 commented 2 weeks ago

We are blocked by BC approved mode on java-8.

Server side using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 and TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 with java-17. Client side using: bc-fips-1.0.2.4.jar, bcpkix-fips-1.0.7.jar, bctls-fips-1.0.19.jar and java-8 1.8.0_432. With BC Approved mode, the TLS handshake failed, on the server side TLS debug log, we saw: no cipher suites in common, on client side, we saw javax.net.ssl.SSLException: org.bouncycastle.tls.TlsFatalAlertReceived: handshake_failure(40). For NOT in bc approved mode, TLS works without issue.

Client side java.security:

security.provider.1=org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
security.provider.2=org.bouncycastle.jsse.provider.BouncyCastleJsseProvider fips:BCFIPS
security.provider.3=sun.security.provider.Sun
security.provider.4=sun.security.rsa.SunRsaSign
security.provider.5=sun.security.ec.SunEC
security.provider.6=com.sun.crypto.provider.SunJCE

keystore.type=FIPS

ssl.KeyManagerFactory.algorithm=PKIX
ssl.TrustManagerFactory.algorithm=PKIX

From server side TLS debugging, with BC approved mode ON I saw client side ClientHello only has supported_group versions: [ffdhe2048, ffdhe3072, ffdhe4096] which are DHE only, it doesn’t support ECDHE, later handshake failed with "no cipher suites in common". While in the non-approved mode case, I read ClientHello [secp256r1, secp384r1, secp521r1, ffdhe2048, ffdhe3072, ffdhe4096] (those secp256r1 … secp521r1 are for ECDHE), and TLS has no problem.

I have one client side error stack and two server side TLS debug loggings. For comparisons, one is for the case Without BC Approved mode and the other is With BC Approved mode, both are with same server cipher settings, same agent side setting except the BC_Approved mode switch off/on.

According to the doc, I believe BC supports ECDHE related ciphers in the Approved mode, but it is not working on my setup.

Stack trace for BC approved mode on client side logging:

ERROR 2024-11-05 11:50:08,686 [WebSocketAgent_AsyncHttpClient-7-1] [processor: ; event: ] com.xxx.transport.handlers.GenericWebSocketHandler: WebSocket connection error: TlsFatalAlertReceived: handshake_failure(40)
TRACE 2024-11-05 11:50:08,686 [WebSocketAgent_AsyncHttpClient-7-1] [processor: ; event: ] io.netty.handler.logging.LoggingHandler: [id: 0x3b01588f, L:/100.64.0.1:63565 ! R:runtime-manager.xxx/23.20.23.95:443] USER_EVENT: SslHandshakeCompletionEvent(javax.net.ssl.SSLException: org.bouncycastle.tls.TlsFatalAlertReceived: handshake_failure(40))
TRACE 2024-11-05 11:50:08,688 [WebSocketAgent_AsyncHttpClient-7-1] [processor: ; event: ] io.netty.handler.logging.LoggingHandler: [id: 0x3b01588f, L:/100.64.0.1:63565 ! R:runtime-manager.xxx/23.20.23.95:443] EXCEPTION: io.netty.handler.codec.DecoderException: javax.net.ssl.SSLException: org.bouncycastle.tls.TlsFatalAlertReceived: handshake_failure(40)
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLException: org.bouncycastle.tls.TlsFatalAlertReceived: handshake_failure(40)
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:500) ~[netty-codec-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) ~[netty-codec-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [keystore-generator.jar:?]
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [keystore-generator.jar:?]
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [keystore-generator.jar:?]
    at java.lang.Thread.run(Thread.java:750) [?:1.8.0_432]
Caused by: javax.net.ssl.SSLException: org.bouncycastle.tls.TlsFatalAlertReceived: handshake_failure(40)
    at org.bouncycastle.jsse.provider.ProvSSLEngine.unwrap(ProvSSLEngine.java:505) ~[bctls-fips-1.0.19.jar:1.0.19]
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:626) ~[?:1.8.0_432]
    at io.netty.handler.ssl.SslHandler$SslEngineType$3.unwrap(SslHandler.java:310) ~[keystore-generator.jar:?]
    at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1445) ~[keystore-generator.jar:?]
    at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) ~[keystore-generator.jar:?]
    at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) ~[keystore-generator.jar:?]
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) ~[netty-codec-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) ~[netty-codec-4.1.108.Final.jar:4.1.108.Final]
    ... 17 more
Caused by: org.bouncycastle.tls.TlsFatalAlertReceived: handshake_failure(40)
    at org.bouncycastle.tls.TlsProtocol.handleAlertMessage(TlsProtocol.java:245) ~[bctls-fips-1.0.19.jar:1.0.19]
    at org.bouncycastle.tls.TlsProtocol.processAlertQueue(TlsProtocol.java:740) ~[bctls-fips-1.0.19.jar:1.0.19]
    at org.bouncycastle.tls.TlsProtocol.processRecord(TlsProtocol.java:563) ~[bctls-fips-1.0.19.jar:1.0.19]
    at org.bouncycastle.tls.RecordStream.readFullRecord(RecordStream.java:209) ~[bctls-fips-1.0.19.jar:1.0.19]
    at org.bouncycastle.tls.TlsProtocol.safeReadFullRecord(TlsProtocol.java:926) ~[bctls-fips-1.0.19.jar:1.0.19]
    at org.bouncycastle.tls.TlsProtocol.offerInput(TlsProtocol.java:1368) ~[bctls-fips-1.0.19.jar:1.0.19]
    at org.bouncycastle.jsse.provider.ProvSSLEngine.unwrap(ProvSSLEngine.java:486) ~[bctls-fips-1.0.19.jar:1.0.19]
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:626) ~[?:1.8.0_432]
    at io.netty.handler.ssl.SslHandler$SslEngineType$3.unwrap(SslHandler.java:310) ~[keystore-generator.jar:?]
    at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1445) ~[keystore-generator.jar:?]
    at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) ~[keystore-generator.jar:?]
    at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) ~[keystore-generator.jar:?]
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) ~[netty-codec-4.1.108.Final.jar:4.1.108.Final]
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) ~[netty-codec-4.1.108.Final.jar:4.1.108.Final]
    ... 17 more

Stack trace for BC approved mode on and failed TLS on server side logging:

"ClientHello": {
  "client version"      : "TLSv1.2",
  "random"              : "4B28A1740F62542ED9108CDF1078D311F76BB00C4A6FB0A70F008C7658D5EE1C",
  "session id"          : "",
  "cipher suites"       : "[TLS_RSA_WITH_AES_128_CBC_SHA256(0x003C), TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(0x00A3), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_RSA_WITH_AES_256_CCM(0xC09D), TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(0x0040), TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(0x0067), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_RSA_WITH_AES_128_CCM(0xC09C), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(0x00A2), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xC028), TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(0x009F), TLS_ECDHE_ECDSA_WITH_AES_128_CCM(0xC0AC), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xC027), TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(0x009E), TLS_DHE_RSA_WITH_AES_256_CCM_8(0xC0A3), TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8(0xC0AF), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F), TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_256_CCM(0xC0AD), TLS_DHE_RSA_WITH_AES_128_CCM_8(0xC0A2), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(0xC009), TLS_RSA_WITH_AES_256_CBC_SHA256(0x003D), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(0xC024), TLS_RSA_WITH_AES_128_CCM_8(0xC0A0), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_DHE_DSS_WITH_AES_256_CBC_SHA(0x0038), TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(0x006B), TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8(0xC0AE), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(0xC00A), TLS_RSA_WITH_AES_256_CCM_8(0xC0A1), TLS_DHE_RSA_WITH_AES_256_CCM(0xC09F), TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(0x006A), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(0xC023), TLS_DHE_RSA_WITH_AES_256_CBC_SHA(0x0039), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_DHE_RSA_WITH_AES_128_CCM(0xC09E), TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x0033), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_DHE_DSS_WITH_AES_128_CBC_SHA(0x0032), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_EMPTY_RENEGOTIATION_INFO_SCSV(0x00FF)]",
  "compression methods" : "00",
  "extensions"          : [
    "extended_master_secret (23)": {
      <empty>
    },
    "encrypt_then_mac (22)": {

    },
    "supported_groups (10)": {
      "versions": [ffdhe2048, ffdhe3072, ffdhe4096]
    },
    "status_request_v2 (17)": {
      "cert status request": {
        "certificate status type": ocsp_multi
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }, "cert status request": {
        "certificate status type": ocsp
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }
    },
    "status_request (5)": {
      "certificate status type": ocsp
      "OCSP status request": {
        "responder_id": <empty>
        "request extensions": {
          <empty>
        }
      }
    },
    "signature_algorithms (13)": {
      "signature schemes": [rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, rsa_sha224, dsa_sha224, rsa_pkcs1_sha1, dsa_sha1]
    },
    "ec_point_formats (11)": {
      "formats": [uncompressed]
    },
    "server_name (0)": {
      type=host_name (0), value=runtime-manager.xxx
    }
  ]
}
)
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.780 GMT|SSLExtensions.java:185|Ignore unavailable extension: supported_versions
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.780 GMT|ClientHello.java:827|Negotiated protocol version: TLSv1.2
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.780 GMT|SSLExtensions.java:185|Ignore unavailable extension: session_ticket
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.780 GMT|ServerNameExtension.java:327|no server name matchers, ignore server name indication
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.780 GMT|SSLExtensions.java:204|Consumed extension: server_name
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.780 GMT|SSLExtensions.java:185|Ignore unavailable extension: max_fragment_length
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:204|Consumed extension: status_request
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:204|Consumed extension: supported_groups
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:204|Consumed extension: ec_point_formats
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:204|Consumed extension: status_request_v2
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|ExtendedMasterSecretExtension.java:166|Ignore unavailable extension: extended_master_secret
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:204|Consumed extension: extended_master_secret
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:204|Consumed extension: signature_algorithms
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:185|Ignore unavailable extension: supported_versions
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:185|Ignore unavailable extension: signature_algorithms_cert
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|RenegoInfoExtension.java:284|Safe renegotiation, using the SCSV signaling
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: server_name
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:219|Ignore unavailable extension: max_fragment_length
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: status_request
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: supported_groups
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: ec_point_formats
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:219|Ignore unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: status_request_v2
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: extended_master_secret
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:219|Ignore unavailable extension: session_ticket
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SignatureScheme.java:446|Unsupported signature scheme: dsa_sha256
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SignatureScheme.java:446|Unsupported signature scheme: dsa_sha224
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SignatureScheme.java:446|Unsupported signature scheme: rsa_pkcs1_sha1
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SignatureScheme.java:446|Unsupported signature scheme: dsa_sha1
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:236|Populated with extension: signature_algorithms
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:219|Ignore unavailable extension: supported_versions
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:219|Ignore unavailable extension: signature_algorithms_cert
javax.net.ssl|DEBUG|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|SSLExtensions.java:219|Ignore unavailable extension: renegotiation_info
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:299|No X.509 cert selected for EC
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:299|No X.509 cert selected for EdDSA
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:299|No X.509 cert selected for EC
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.781 GMT|X509Authentication.java:299|No X.509 cert selected for EdDSA
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.782 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|C4|catalina-exec-6|2024-11-05 05:00:26.782 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ERROR|C4|catalina-exec-6|2024-11-05 05:00:26.782 GMT|TransportContext.java:370|Fatal (HANDSHAKE_FAILURE): no cipher suites in common (
"throwable" : {
  javax.net.ssl.SSLHandshakeException: no cipher suites in common
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:365)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)
    at java.base/sun.security.ssl.ServerHello$T12ServerHelloProducer.chooseCipherSuite(ServerHello.java:471)
    at java.base/sun.security.ssl.ServerHello$T12ServerHelloProducer.produce(ServerHello.java:297)
    at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:440)
    at java.base/sun.security.ssl.ClientHello$T12ClientHelloConsumer.consume(ClientHello.java:1109)
    at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:842)
    at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:801)
    at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
    at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)
    at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1277)
    at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1264)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
    at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:1209)
    at org.apache.tomcat.util.net.SecureNio2Channel.tasks(SecureNio2Channel.java:530)
    at org.apache.tomcat.util.net.SecureNio2Channel.handshakeUnwrap(SecureNio2Channel.java:581)
    at org.apache.tomcat.util.net.SecureNio2Channel.handshakeInternal(SecureNio2Channel.java:326)
    at org.apache.tomcat.util.net.SecureNio2Channel.handshake(SecureNio2Channel.java:225)
    at org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1711)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1333)
    at org.apache.tomcat.util.net.SecureNio2Channel$HandshakeReadCompletionHandler.completed(SecureNio2Channel.java:107)
    at org.apache.tomcat.util.net.SecureNio2Channel$HandshakeReadCompletionHandler.completed(SecureNio2Channel.java:100)
    at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129)
    at java.base/sun.nio.ch.Invoker.invokeDirect(Invoker.java:160)
    at java.base/sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:573)
    at java.base/sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:276)
    at java.base/sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:297)
    at org.apache.tomcat.util.net.SecureNio2Channel.processSNI(SecureNio2Channel.java:379)
    at org.apache.tomcat.util.net.SecureNio2Channel.handshakeInternal(SecureNio2Channel.java:234)
    at org.apache.tomcat.util.net.SecureNio2Channel.handshake(SecureNio2Channel.java:225)
    at org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1711)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    at org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1333)
    at org.apache.tomcat.util.net.Nio2Endpoint.setSocketOptions(Nio2Endpoint.java:341)
    at org.apache.tomcat.util.net.Nio2Endpoint$Nio2Acceptor.completed(Nio2Endpoint.java:481)
    at org.apache.tomcat.util.net.Nio2Endpoint$Nio2Acceptor.completed(Nio2Endpoint.java:417)
    at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129)
    at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:221)
    at java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:113)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
    at java.base/java.lang.Thread.run(Thread.java:840)}

)
javax.net.ssl|WARNING|C4|catalina-exec-6|2024-11-05 05:00:26.782 GMT|SSLEngineOutputRecord.java:182|outbound has closed, ignore outbound application data

Stack trace for BC approved mode OFF and successful TLS on server side logging:

"ClientHello": {
  "client version"      : "TLSv1.2",
  "random"              : "E6197B65416B10C9141C1926B0F4D55EF03E90C380355206F3DB1ADAAEBE5C82",
  "session id"          : "",
  "cipher suites"       : "[TLS_RSA_WITH_AES_128_CBC_SHA256(0x003C), TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(0x00A3), TLS_RSA_WITH_AES_128_GCM_SHA256(0x009C), TLS_RSA_WITH_AES_256_CCM(0xC09D), TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(0x0040), TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(0x0067), TLS_RSA_WITH_AES_256_GCM_SHA384(0x009D), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(0xC013), TLS_RSA_WITH_AES_128_CCM(0xC09C), TLS_RSA_WITH_AES_256_CBC_SHA(0x0035), TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(0x00A2), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(0xC028), TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(0x009F), TLS_ECDHE_ECDSA_WITH_AES_128_CCM(0xC0AC), TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(0xC027), TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(0x009E), TLS_DHE_RSA_WITH_AES_256_CCM_8(0xC0A3), TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8(0xC0AF), TLS_RSA_WITH_AES_128_CBC_SHA(0x002F), TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(0xC02C), TLS_ECDHE_ECDSA_WITH_AES_256_CCM(0xC0AD), TLS_DHE_RSA_WITH_AES_128_CCM_8(0xC0A2), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(0xC009), TLS_RSA_WITH_AES_256_CBC_SHA256(0x003D), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(0xC024), TLS_RSA_WITH_AES_128_CCM_8(0xC0A0), TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(0xC02B), TLS_DHE_DSS_WITH_AES_256_CBC_SHA(0x0038), TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(0x006B), TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8(0xC0AE), TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(0xC00A), TLS_RSA_WITH_AES_256_CCM_8(0xC0A1), TLS_DHE_RSA_WITH_AES_256_CCM(0xC09F), TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(0x006A), TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(0xC023), TLS_DHE_RSA_WITH_AES_256_CBC_SHA(0x0039), TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F), TLS_DHE_RSA_WITH_AES_128_CCM(0xC09E), TLS_DHE_RSA_WITH_AES_128_CBC_SHA(0x0033), TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(0xC014), TLS_DHE_DSS_WITH_AES_128_CBC_SHA(0x0032), TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(0xC030), TLS_EMPTY_RENEGOTIATION_INFO_SCSV(0x00FF)]",
  "compression methods" : "00",
  "extensions"          : [
    "extended_master_secret (23)": {
      <empty>
    },
    "encrypt_then_mac (22)": {

    },
    "supported_groups (10)": {
      "versions": [secp256r1, secp384r1, secp521r1, ffdhe2048, ffdhe3072, ffdhe4096]
    },
    "status_request_v2 (17)": {
      "cert status request": {
        "certificate status type": ocsp_multi
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }, "cert status request": {
        "certificate status type": ocsp
        "OCSP status request": {
          "responder_id": <empty>
          "request extensions": {
            <empty>
          }
        }
      }
    },
    "status_request (5)": {
      "certificate status type": ocsp
      "OCSP status request": {
        "responder_id": <empty>
        "request extensions": {
          <empty>
        }
      }
    },
    "signature_algorithms (13)": {
      "signature schemes": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, dsa_sha256, ecdsa_sha224, rsa_sha224, dsa_sha224, ecdsa_sha1, rsa_pkcs1_sha1, dsa_sha1]
    },
    "ec_point_formats (11)": {
      "formats": [uncompressed]
    },
    "server_name (0)": {
      type=host_name (0), value=runtime-manager.xxx
    }
  ]
}
)
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:185|Ignore unavailable extension: supported_versions
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|ClientHello.java:827|Negotiated protocol version: TLSv1.2
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:185|Ignore unavailable extension: session_ticket
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|ServerNameExtension.java:327|no server name matchers, ignore server name indication
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:204|Consumed extension: server_name
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:185|Ignore unavailable extension: max_fragment_length
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:204|Consumed extension: status_request
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:204|Consumed extension: supported_groups
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:204|Consumed extension: ec_point_formats
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:204|Consumed extension: status_request_v2
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|ExtendedMasterSecretExtension.java:166|Ignore unavailable extension: extended_master_secret
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:204|Consumed extension: extended_master_secret
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:204|Consumed extension: signature_algorithms
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:185|Ignore unavailable extension: supported_versions
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:185|Ignore unavailable extension: signature_algorithms_cert
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|RenegoInfoExtension.java:284|Safe renegotiation, using the SCSV signaling
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: server_name
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:219|Ignore unavailable extension: max_fragment_length
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: status_request
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: supported_groups
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: ec_point_formats
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:219|Ignore unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: status_request_v2
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:227|Ignore impact of unsupported extension: extended_master_secret
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SSLExtensions.java:219|Ignore unavailable extension: session_ticket
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SignatureScheme.java:446|Unsupported signature scheme: dsa_sha256
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SignatureScheme.java:446|Unsupported signature scheme: dsa_sha224
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SignatureScheme.java:446|Unsupported signature scheme: ecdsa_sha1
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.984 GMT|SignatureScheme.java:446|Unsupported signature scheme: rsa_pkcs1_sha1
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|SignatureScheme.java:446|Unsupported signature scheme: dsa_sha1
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|SSLExtensions.java:236|Populated with extension: signature_algorithms
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|SSLExtensions.java:219|Ignore unavailable extension: supported_versions
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|SSLExtensions.java:219|Ignore unavailable extension: signature_algorithms_cert
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|SSLExtensions.java:219|Ignore unavailable extension: renegotiation_info
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:299|No X.509 cert selected for EC
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:299|No X.509 cert selected for EdDSA
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:299|No X.509 cert selected for EC
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:299|No X.509 cert selected for EdDSA
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.985 GMT|X509Authentication.java:280|X509KeyManager class: sun.security.ssl.SunX509KeyManagerImpl
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|ServerHello.java:450|use cipher suite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|StatusResponseManager.java:762|Staping disabled or is a resumed session
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|ServerNameExtension.java:452|No expected server name indication response
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: server_name
javax.net.ssl|ALL|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|MaxFragExtension.java:292|Ignore unavailable max_fragment_length extension
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: max_fragment_length
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: status_request
javax.net.ssl|WARNING|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:258|Ignore, no extension producer defined: ec_point_formats
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|AlpnExtension.java:383|Ignore unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: application_layer_protocol_negotiation
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: status_request_v2
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: extended_master_secret
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|SSLExtensions.java:272|Ignore, context unavailable extension: session_ticket
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.987 GMT|ServerHello.java:375|Produced ServerHello handshake message (
"ServerHello": {
  "server version"      : "TLSv1.2",
  "random"              : "16DE1C68EA885AA5449D5071A2108F805472F915CBEF2D3FA7D922E304089867",
  "session id"          : "1DB433888176032CE1964F609BEE731C90FA8E401D84BC7CD181C2AA980FA390",
  "cipher suite"        : "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(0xC02F)",
  "compression methods" : "00",
  "extensions"          : [
    "renegotiation_info (65,281)": {
      "renegotiated connection": [<no renegotiated connection>]
    }
  ]
}
)
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.988 GMT|CertificateMessage.java:271|Produced server Certificate handshake message (
"Certificates": [
  "certificate" : {
    "version"            : "v3",
    "serial number"      : "02CEDF813BF3DB8178F271A3A427C622",
    "signature algorithm": "SHA256withRSA",
    "issuer"             : "CN=DigiCert TLS RSA SHA256 2020 CA1, O=DigiCert Inc, C=US",
    "not before"         : "2024-07-24 24:00:00.000 GMT",
    "not  after"         : "2025-07-24 23:59:59.000 GMT",
    "subject"            : "CN=xxxx", L=xxx",
    "subject public key" : "RSA",
    "extensions"         : [
      {
        ObjectId: 1.3.6.1.4.1.11129.2.4.2 Criticality=false
      },
      {
        ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
        AuthorityInfoAccess [
          [
           accessMethod: ocsp
           accessLocation: URIName: http://ocsp.digicert.com
        ,
           accessMethod: caIssuers
           accessLocation: URIName: http://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1-1.crt
        ]
        ]
      },
      {
        ObjectId: 2.5.29.35 Criticality=false
        AuthorityKeyIdentifier [
        KeyIdentifier [
        0000: B7 6B A2 EA A8 AA 84 8C   79 EA B4 DA 0F 98 B2 C5  .k......y.......
        0010: 95 76 B9 F4                                        .v..
        ]
        ]
      },
      {
        ObjectId: 2.5.29.19 Criticality=true
        BasicConstraints:[
          CA:false
          PathLen: undefined
        ]
      },
      {
        ObjectId: 2.5.29.31 Criticality=false
        CRLDistributionPoints [
          [DistributionPoint:
             [URIName: http://crl3.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl]
        , DistributionPoint:
             [URIName: http://crl4.digicert.com/DigiCertTLSRSASHA2562020CA1-4.crl]
        ]]
      },
      {
        ObjectId: 2.5.29.32 Criticality=false
        CertificatePolicies [
          [CertificatePolicyId: [2.23.140.1.2.2]
        [PolicyQualifierInfo: [
          qualifierID: 1.3.6.1.5.5.7.2.1
          qualifier: 0000: 16 1B 68 74 74 70 3A 2F   2F 77 77 77 2E 64 69 67  ..http://www.dig
        0010: 69 63 65 72 74 2E 63 6F   6D 2F 43 50 53           icert.com/CPS

        ]]  ]
        ]
      },
      {
        ObjectId: 2.5.29.37 Criticality=false
        ExtendedKeyUsages [
          serverAuth
          clientAuth
        ]
      },
      {
        ObjectId: 2.5.29.15 Criticality=true
        KeyUsage [
          DigitalSignature
          Key_Encipherment
        ]
      },
      {
        ObjectId: 2.5.29.17 Criticality=false
        SubjectAlternativeName [
          DNSName: xxx
        ]
      },
      {
        ObjectId: 2.5.29.14 Criticality=false
        SubjectKeyIdentifier [
        KeyIdentifier [
        0000: 1E 69 ED FF CB E6 0F 13   47 3A CE DE A9 F5 A8 C9  .i......G:......
        0010: D8 D7 83 7B                                        ....
        ]
        ]
      }
    ]},
  "certificate" : {
    "version"            : "v3",
    "serial number"      : "0A3508D55C292B017DF8AD65C00FF7E4",
    "signature algorithm": "SHA256withRSA",
    "issuer"             : "CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US",
    "not before"         : "2020-09-24 24:00:00.000 GMT",
    "not  after"         : "2030-09-23 23:59:59.000 GMT",
    "subject"            : "CN=DigiCert TLS RSA SHA256 2020 CA1, O=DigiCert Inc, C=US",
    "subject public key" : "RSA",
    "extensions"         : [
      {
        ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
        AuthorityInfoAccess [
          [
           accessMethod: ocsp
           accessLocation: URIName: http://ocsp.digicert.com
        ,
           accessMethod: caIssuers
           accessLocation: URIName: http://cacerts.digicert.com/DigiCertGlobalRootCA.crt
        ]
        ]
      },
      {
        ObjectId: 2.5.29.35 Criticality=false
        AuthorityKeyIdentifier [
        KeyIdentifier [
        0000: 03 DE 50 35 56 D1 4C BB   66 F0 A3 E2 1B 1B C3 97  ..P5V.L.f.......
        0010: B2 3D D1 55                                        .=.U
        ]
        ]
      },
      {
        ObjectId: 2.5.29.19 Criticality=true
        BasicConstraints:[
          CA:true
          PathLen:0
        ]
      },
      {
        ObjectId: 2.5.29.31 Criticality=false
        CRLDistributionPoints [
          [DistributionPoint:
             [URIName: http://crl3.digicert.com/DigiCertGlobalRootCA.crl]
        , DistributionPoint:
             [URIName: http://crl4.digicert.com/DigiCertGlobalRootCA.crl]
        ]]
      },
      {
        ObjectId: 2.5.29.32 Criticality=false
        CertificatePolicies [
          [CertificatePolicyId: [2.23.140.1.1]
        []  ]
          [CertificatePolicyId: [2.23.140.1.2.1]
        []  ]
          [CertificatePolicyId: [2.23.140.1.2.2]
        []  ]
          [CertificatePolicyId: [2.23.140.1.2.3]
        []  ]
        ]
      },
      {
        ObjectId: 2.5.29.37 Criticality=false
        ExtendedKeyUsages [
          serverAuth
          clientAuth
        ]
      },
      {
        ObjectId: 2.5.29.15 Criticality=true
        KeyUsage [
          DigitalSignature
          Key_CertSign
          Crl_Sign
        ]
      },
      {
        ObjectId: 2.5.29.14 Criticality=false
        SubjectKeyIdentifier [
        KeyIdentifier [
        0000: B7 6B A2 EA A8 AA 84 8C   79 EA B4 DA 0F 98 B2 C5  .k......y.......
        0010: 95 76 B9 F4                                        .v..
        ]
        ]
      }
    ]}
]
)
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.991 GMT|ECDHServerKeyExchange.java:492|Produced ECDH ServerKeyExchange handshake message (
"ECDH ServerKeyExchange": {
  "parameters": {
    "named group": "secp256r1"
    "ecdh public": {
      0000: 04 3E 13 E4 82 89 11 F5   84 D1 44 F3 93 CD 74 D6  .>........D...t.
      0010: 49 B8 E3 D7 8E 7A 8A 6C   4E 0B 00 85 01 DE FC 8B  I....z.lN.......
      0020: A4 C1 C2 BE 66 26 AB 99   BF E8 6D 8A 2F 9C E7 4A  ....f&....m./..J
      0030: 2E 11 8B EB 4B 73 E7 04   2E B4 11 72 16 E8 11 07  ....Ks.....r....
      0040: 3A                                                 :
    },
  },
  "digital signature":  {
    "signature algorithm": "rsa_pss_rsae_sha256"
    "signature": {
      0000: 2D 39 63 EC 23 C4 44 BD   16 62 96 B8 60 D6 E1 99  -9c.#.D..b..`...
      0010: D1 D4 71 7A 76 3E 91 C1   99 27 23 9E 45 48 D3 2D  ..qzv>...'#.EH.-
      0020: 38 AA CD 38 24 EE 14 3B   BF 8F B5 B8 D1 5A AA 64  8..8$..;.....Z.d
      0030: B4 2E 7B 61 3C CF 79 26   AB C5 D0 EC 70 69 FC CD  ...a<.y&....pi..
      0040: 52 8D E5 E2 7F 9C 8B 06   1D 1C C0 A2 88 F0 FD C5  R...............
      0050: C4 BE 70 98 02 0C 31 3E   97 37 85 0F 01 85 AF 24  ..p...1>.7.....$
      0060: 86 D0 BE E2 15 76 42 3E   C3 8D 6E 02 CE 7A D3 27  .....vB>..n..z.'
      0070: 78 E3 E0 91 63 1C 6E 2E   10 D3 68 67 E0 A9 E7 A7  x...c.n...hg....
      0080: 9D 49 13 5B C8 16 B7 7E   69 8C 0C BC A8 07 9B 89  .I.[....i.......
      0090: AB C6 C2 EA 6D 30 14 DC   4A 4C AA 2B 54 DE CC 58  ....m0..JL.+T..X
      00A0: D4 A5 75 52 1F 24 7C 29   4C 23 D6 CD C9 7E 96 F6  ..uR.$.)L#......
      00B0: BD 83 34 66 CD AA D9 95   12 77 09 72 CC C8 7A 2F  ..4f.....w.r..z/
      00C0: 77 D9 5C 87 66 81 DE CD   ED A0 2C 49 34 98 1A 92  w.\.f.....,I4...
      00D0: 35 CE 10 D8 8C C9 4C D1   D7 0D 00 A2 C3 77 9D 82  5.....L......w..
      00E0: 48 61 9F 71 D8 C0 64 25   D3 E8 EA C9 DB 91 E1 D6  Ha.q..d%........
      00F0: 55 CE E4 ED 20 F6 41 1A   27 8F 7B 96 0F 33 DA 42  U... .A.'....3.B
    },
  }
}
)
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.991 GMT|CertificateRequest.java:634|Produced CertificateRequest handshake message (
"CertificateRequest": {
  "certificate types": [ecdsa_sign, rsa_sign, dss_sign]
  "supported signature algorithms": [ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, ecdsa_secp521r1_sha512, rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512, rsa_pss_pss_sha256, rsa_pss_pss_sha384, rsa_pss_pss_sha512, rsa_pkcs1_sha256, rsa_pkcs1_sha384, rsa_pkcs1_sha512, ecdsa_sha224, rsa_sha224]
  "certificate authorities": [CN=xxx ST=CA, C=US, CN=DigiCert TLS RSA SHA256 2020 CA1, O=DigiCert Inc, C=US, CN=xxx]
}
)
javax.net.ssl|DEBUG|88|catalina-exec-65|2024-11-05 04:58:47.991 GMT|ServerHelloDone.java:97|Produced ServerHelloDone handshake message (
<empty>
)
javax.net.ssl|DEBUG|98|catalina-exec-66|2024-11-05 04:58:48.159 GMT|CertificateMessage.java:372|Consuming client Certificate handshake message (
"Certificates": [
  "certificate" : {
    "version"            : "v3",
    "serial number"      : "0192F95E384C",
    "signature algorithm": "SHA256withRSA",
    "issuer"             : "CN=xxx",
    "not before"         : "2024-11-04 22:49:14.000 GMT",
    "not  after"         : "2026-11-04 22:49:14.000 GMT",
    "subject"            : "CN=xxx",
    "subject public key" : "RSA",
    "extensions"         : [
      {
        ObjectId: 2.5.29.17 Criticality=false
        SubjectAlternativeName [
          DNSName: rootOrg=c303925d-d366-4ab4-adbb-202612415263
          DNSName: org=c303925d-d366-4ab4-adbb-202612415263
          DNSName: env=56a13ef7-830c-444a-8bf1-557b13a567f1
        ]
      }
    ]}
]
)
javax.net.ssl|DEBUG|98|catalina-exec-66|2024-11-05 04:58:48.160 GMT|ECDHClientKeyExchange.java:503|Consuming ECDHE ClientKeyExchange handshake message (
"ECDH ClientKeyExchange": {
  "ecdh public": {
    0000: 04 7B FF A3 04 63 43 E1   DC 4F 7A D1 B5 EC FC 91  .....cC..Oz.....
    0010: EE C6 F1 89 C1 1C C0 E0   79 D2 E6 25 1B 7B 7B B3  ........y..%....
    0020: 0D 14 20 CC 86 C4 E1 F3   47 3E 92 D6 D7 34 0C 36  .. .....G>...4.6
    0030: FC 6D 49 27 3E 05 52 C1   1F 68 4C C6 6D 14 29 B0  .mI'>.R..hL.m.).
    0040: FE                                                 .
  },
}
)
javax.net.ssl|DEBUG|98|catalina-exec-66|2024-11-05 04:58:48.161 GMT|CertificateVerify.java:809|Consuming CertificateVerify handshake message (
"CertificateVerify": {
  "signature algorithm": rsa_pss_rsae_sha256
  "signature": {
    0000: 4B 8D 9A 2F 94 DC B8 3D   62 5F A9 07 F5 49 3B 6A  K../...=b_...I;j
    0010: 22 BF F1 FE 09 FB F7 9D   36 B3 2E 63 04 8E B0 E7  ".......6..c....
    0020: 97 40 FC 86 CC 9A 3A 09   11 37 63 FA 82 E3 18 67  .@....:..7c....g
    0030: 6A 28 DE A1 04 EF 51 48   0F 9F 2B 5F 6C 64 E8 90  j(....QH..+_ld..
    0040: D7 5F D7 CD A1 35 4B 39   8F 4E A2 3E 35 7A A7 46  ._...5K9.N.>5z.F
    0050: D6 A6 26 9F FE B3 4A A9   E2 FF EA 90 64 53 56 1B  ..&...J.....dSV.
    0060: D4 88 87 87 23 DE 73 CB   36 7A 70 B2 6F F2 3A B4  ....#.s.6zp.o.:.
    0070: 2D 15 6F 8B 7D 13 39 28   21 57 BF 91 2A 6C 9D 6D  -.o...9(!W..*l.m
    0080: 8A BC A8 77 82 FF 38 11   8E B7 63 E5 6D 7B 2D D6  ...w..8...c.m.-.
    0090: FB 91 BA 0C 25 11 E8 EE   5E 5A CC 63 B2 90 C0 88  ....%...^Z.c....
    00A0: 10 85 1A 3A 6F CE AC 8B   54 25 1E BD 77 89 56 D5  ...:o...T%..w.V.
    00B0: FF C5 39 7B 1D 65 6B 09   9F 01 7B 08 8F F4 2C 35  ..9..ek.......,5
    00C0: 3A 4F 0F 57 A2 30 FF 1B   F2 08 D5 19 07 46 7A BA  :O.W.0.......Fz.
    00D0: 69 03 24 CE 30 FD 33 0E   A9 50 7B DA 2A D1 0C F0  i.$.0.3..P..*...
    00E0: 67 30 8C F2 6C 05 32 90   AB 3F C1 08 A0 EA 20 0F  g0..l.2..?.... .
    00F0: 73 0D 10 AA 5A 8A AB 38   A5 1C 41 7B 4A 75 D3 54  s...Z..8..A.Ju.T
  }
}
)
javax.net.ssl|DEBUG|98|catalina-exec-66|2024-11-05 04:58:48.162 GMT|ChangeCipherSpec.java:149|Consuming ChangeCipherSpec message
javax.net.ssl|DEBUG|98|catalina-exec-66|2024-11-05 04:58:48.162 GMT|Finished.java:608|Consuming client Finished handshake message (
"Finished": {
  "verify data": {
    0000: 65 9A 72 62 7D 43 AB D6   49 71 6A 73
  }'}
)
javax.net.ssl|DEBUG|98|catalina-exec-66|2024-11-05 04:58:48.162 GMT|ChangeCipherSpec.java:115|Produced ChangeCipherSpec message
javax.net.ssl|DEBUG|98|catalina-exec-66|2024-11-05 04:58:48.162 GMT|Finished.java:459|Produced server Finished handshake message (
"Finished": {
  "verify data": {
    0000: 28 F6 4D 09 AE 24 FF E0   57 8D 3C 61
  }'}
)
[2024-11-05 04:58:48,231+0000] [tid: ] INFO  RequestLogFilter [http-nio2-8081-exec-2]: 127.0.0.1 "GET /fqdn HTTP/1.1" 200
hping2 commented 2 weeks ago

Hey Roy, I think this is also related with our programatic error, the issue can be closed with invalid.

We had a weak SecureRandom() set at CryptoServicesRegistrar.setSecureRandom(new SecureRandom()), this might cause the TLS handshake internally skips the Ecliptic Curve algorithms as we see at the ClientHello message.