В настоящее время я настроил классический балансировщик нагрузки AWS с прослушивателем SSL и общедоступным сертификатом, выданным через диспетчер сертификатов AWS, например. query.mydomain
. Это перенаправляет на экземпляр HiveServer2/Thrift.
Я подключаюсь к общедоступной конечной точке с помощью Beeline следующим образом:
beeline -u "jdbc:hive2://query.mydomain:10100/default;ssl=true" -n <имя пользователя> -p <пароль> --verbose=true -d org.apache.hive.jdbc.HiveDriver
По какой-то причине клиент жалуется на то, что имя хоста экземпляра балансировщика нагрузки отсутствует в сертификате.
копать +short query.mydomain @resolver1.opendns.com
13.54.30.146
13.54.75.233
3.106.25.71
Причина: java.security.cert.CertificateException: альтернативное DNS-имя субъекта, соответствующее ec2-13-54-30-146.ap-southeast-2.compute.amazonaws.com, не найдено.
в java.base/sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:212)
в java.base/sun.security.util.HostnameChecker.match(HostnameChecker.java:103)
в java.base/sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:452)
в java.base/sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:412)
в java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:238)
в java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
в java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)
... еще 46
Почему ожидается, что имя хоста экземпляра балансировщика нагрузки будет в сертификате? Я делаю что-то неправильно?