Получение «ssl3_get_record: неправильный номер версии» в приложении с весенней загрузкой на GCP Compute Engine - PullRequest
2 голосов
/ 05 мая 2020
• 1000 версия приложения на виртуальной машине в Compute Engine, но когда я развертываю ее на виртуальной машине в вычислительном механизме и пытаюсь подключиться к приложению с помощью HTTPS, я получаю «ssl3_get_record: неправильный номер версии». Это происходит даже тогда, когда я пытаюсь подключиться к приложению внутри самой виртуальной машины с помощью localhost.

Это довольно урезанное и dry весеннее приложение для загрузки, которое использует встроенный сервер Tomcat. Он содержит WebSecurityConfigureAdaptor и WebMvcConfigurer для сопоставления CORS.

Кто-нибудь сталкивался с этой проблемой или может дать мне несколько советов о том, что мне нужно сделать, чтобы ее исправить?

РЕДАКТИРОВАТЬ:

Добавление curl -i -v https://localhost по запросу

*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 3001 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: self signed certificate
* Closing connection 0
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

1 Ответ

0 голосов
/ 11 мая 2020

ssl3_get_record:wrong version number означает, что клиент не может открыть соединение с сервером, потому что он, вероятно, не поддерживает те же версии или настройки TLS.

SSLv3 был выведен из эксплуатации довольно давно go. Либо это старая старая версия java, либо они никогда не обновляли имя функции. Какие версии java вы используете?

Журналы показывают, что приложение может работать по HTTP / 2 (ALPN, offering h2) и с TLSv1.3. По моему опыту, они определенно плохо поддерживаются в старых клиентах, как это обычно бывает на предприятии java. Рассмотрите возможность отключения HTTP / 2 или TLS1.3 и попробуйте еще раз.

В настоящее время широко используемой и поддерживаемой версией SSL является TLS 1.2. См. Этот другой вопрос о принудительном использовании версий TLS в приложении java. Поскольку OpenJDk Java 11 получает javax. net .ssl.SSLHandshakeException: получено фатальное предупреждение: handshake_failure

Приложение может работать с самозаверяющим сертификатом. Вы можете получить сертификат publi c от Let's encrypt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...