Kenneth Howe created GEODE-6740: ----------------------------------- Summary: TLS endpoint identification fails using hostnames Key: GEODE-6740 URL: https://issues.apache.org/jira/browse/GEODE-6740 Project: Geode Issue Type: Bug Components: core Reporter: Kenneth Howe
Tried to start a cluster with the following Geode security properties. {code} ssl-enabled-components=cluster,web,jmx,locator,server ssl-endpoint-identification-enabled=true {code} The certificate has the valid hostname wildcard as the SAN list. All the Geode config files and parameters use this hostname. {code} -Dgemfire.locators=3177423e-d7dd-4b27-932d-d33b4bdf5783.locator.jackson-services-subnet.service-instance-ec7f6a7b-eb04-45e7-9f1f-eaff60a5be25.bosh[55221],983d2e55-988e-437d-8b10-8b3dffc8cc82.locator.jackson-services-subnet.service-instance-ec7f6a7b-eb04-45e7-9f1f-eaff60a5be25.bosh[55221],8c222f26-22da-4e42-8d1e-e13a86808600.locator.jackson-services-subnet.service-instance-ec7f6a7b-eb04-45e7-9f1f-eaff60a5be25.bosh[55221] {code} {code} Certificate: Data: Version: 3 (0x2) Serial Number: 21:fc:3f:07:bc:47:5b:46:e3:07:da:c3:39:27:45:c4:83:67:39:4d Signature Algorithm: sha256WithRSAEncryption Issuer: CN=gemfire-ssl Validity Not Before: May 2 21:43:51 2019 GMT Not After : May 1 21:43:51 2020 GMT Subject: CN=gemfire-locator-ssl Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: B8:84:1E:B6:74:C3:B4:BC:61:88:93:52:27:71:E2:92:EA:72:85:C4 X509v3 Subject Alternative Name: DNS:*.locator.jackson-services-subnet.service-instance-ec7f6a7b-eb04-45e7-9f1f-eaff60a5be25.bosh X509v3 Authority Key Identifier: keyid:41:33:74:8E:ED:6D:94:2E:B1:9C:01:68:9B:6F:3C:B7:AF:5A:ED:6C X509v3 Basic Constraints: critical CA:FALSE {code} This resulted in the error starting up the locators {code} [severe 2019/05/02 19:45:54.422 UTC locator-707059cc-9aad-47a9-8fa9-b045a14d5b80 <main> tid=0x1] SSL Error in connecting to peer /10.0.8.9[55222]. javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 10.0.8.9 found at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037) at sun.security.ssl.Handshaker.process_record(Handshaker.java:965) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379) at org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1069) at org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:932) at org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:894) at org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:873) at org.apache.geode.internal.tcp.Connection.<init>(Connection.java:1264) at org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1066) at org.apache.geode.internal.tcp.ConnectionTable.handleNewPendingConnection(ConnectionTable.java:305) at org.apache.geode.internal.tcp.ConnectionTable.getSharedConnection(ConnectionTable.java:413) at org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:598) at org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:947) at org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:557) at org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:336) at org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:251) at org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:616) at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1686) at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1864) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2865) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:2785) at org.apache.geode.distributed.internal.StartupOperation.sendStartupMessage(StartupOperation.java:75) at org.apache.geode.distributed.internal.ClusterDistributionManager.sendStartupMessage(ClusterDistributionManager.java:2248) at org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:567) at org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:769) at org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:362) at org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:348) at org.apache.geode.distributed.internal.InternalDistributedSystem.newInstance(InternalDistributedSystem.java:342) at org.apache.geode.distributed.DistributedSystem.connect(DistributedSystem.java:215) at org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:630) at org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:309) at org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:643) at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:551) at org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:193) Caused by: java.security.cert.CertificateException: No subject alternative names matching IP address 10.0.8.9 found at sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:168) at sun.security.util.HostnameChecker.match(HostnameChecker.java:94) at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:455) at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:436) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:200) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621) ... 38 more {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)