Получение ошибок рукопожатия в приложении Grails, которое взаимодействует с API, обновленным до TLS 1.1 - PullRequest
0 голосов
/ 31 мая 2018

Сервер API ранее поддерживал TLS версии 1.0, и все работало нормально.После того, как он прекратил поддержку 1.0, начал получать эти ошибки -

 Remote host closed connection during handshake
[08:50:16.593] [] ERROR UserProfileService         :200  - wslite.rest.RESTClientException: Remote host closed connection during handshake
[08:50:16.593] [] ERROR UserProfileService         :200  - null

При локальной настройке мы запускаем приложение Grails непосредственно в eclipse с помощью команды run-app.Чтобы устранить проблему с TLS, мы добавили конфигурацию jvmArgs в файл конфигурации приложения BuildConfig.groovy, и она заработала -

grails.project.fork = [
    // configure settings for the run-app JVM
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false,jvmArgs: ['-Dhttps.protocols=TLSv1.1']],
]

На сервере с песочницей мы запустили приложение, развернув файл war на tomcatсервер.Мы попытались добавить то же самое изменение конфигурации в атрибут war в файле конфигурации, но это не сработало -

grails.project.fork = [
    // configure settings for the run-war JVM
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false,jvmArgs: ['-Dhttps.protocols=TLSv1.1']],
]

Затем мы также упомянули то же самое в конфигурации tomcat, но все равно безуспешно.Вот журнал catalina, показывающий, что tomcat принимает обновленную конфигурацию TLS -

INFO: CATALINA_HOME:         /opt/tomcat7-cpp2
May 31, 2018 8:49:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.config.file=/opt/tomcat7-cpp2/conf/logging.properties
May 31, 2018 8:49:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
May 31, 2018 8:49:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dhttps.protocol=TLSv1.1,TLSv1.2
May 31, 2018 8:49:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=/opt/tomcat7-cpp2/endorsed
May 31, 2018 8:49:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/opt/tomcat7-cpp2
May 31, 2018 8:49:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/opt/tomcat7-cpp2
May 31, 2018 8:49:18 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.io.tmpdir=/opt/tomcat7-cpp2/temp
May 31, 2018 8:49:18 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found o
n the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

Однако мы не смогли подтвердить, что приложение также читает обновленную конфигурацию TLS, определенную для атрибута war.

Буду признателен за любую помощь или указатели.

1 Ответ

0 голосов
/ 02 июня 2018

Похоже, в вашей конфигурации Tomcat есть опечатка, в которой вы указываете -Dhttps.protocol=TLSv1.1,TLSv1.2.Правильная системная переменная https.protocols (с символами).

...