spring-boot - 在 GCP Compute Engine 上的 spring-boot 应用程序中获取“ssl3_get_record:wrong version number”
问题描述
我已经创建了一个带有 React 前端的 spring-boot 后端 java 应用程序,并且我正在尝试使用 GCP。
我让它在 AppEngine 上运行,并希望将应用程序的长时间运行版本放在 Compute Engine 中的虚拟机上,但是当我将它部署在计算引擎中的虚拟机上并尝试使用 HTTPS 连接到应用程序时,它给了我“ssl3_get_record :错误的版本号”。即使我尝试使用“localhost”连接到 vm 本身内部的应用程序也是如此。
这是一个使用嵌入式 tomcat 服务器的漂亮的 spring boot 应用程序。它包含一个用于 CORS 映射的 WebSecurityConfigureAdaptor 和一个 WebMvcConfigurer。
有没有人遇到过这个问题,或者可以给我一些关于我需要做些什么来解决它的指导?
编辑:
根据要求添加 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.
解决方案
ssl3_get_record:wrong version number
意味着客户端无法打开与服务器的连接,因为它们可能不支持相同的 TLS 版本或设置。
SSLv3 很久以前就退役了。要么是旧的 Java 版本,要么他们从未更新过函数名。你用的是什么java版本?
日志表明应用程序可能在 HTTP/2 ( ALPN, offering h2
) 和 TLSv1.3 上运行。根据我的经验,这些在老客户中肯定得不到很好的支持,就像 Java 企业通常使用的那样。考虑禁用 HTTP/2 或 TLS1.3,然后重试。
目前广泛使用和支持的 SSL 版本是 TLS 1.2。请参阅有关在 Java 应用程序中强制使用 TLS 版本的其他问题。由于 OpenJDK Java 11 获得 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
该应用程序可能在自签名证书上运行。您可以从 let's encrypt 获取公共证书。
推荐阅读
- c# - SyntaxNode ReplaceNode 不替换节点
- excel - 将奇数行的单元格区域 BF 移动到偶数行的单元格区域 GK
- matlab - 如何在 Simulink 中实现函数以生成定义了宏函数的 C 代码?
- php - 使用 .htaccess 和 404 原始路径重写 URL
- python - numba jitclass 是否支持泛型?
- airflow - 对于手动触发的 DAG,我应该使用什么 start_date?
- jquery - Jquery复选框分配值
- python - PyQt 从 GUI 获取价值
- android - 在小米设备中安装 apk 时无法安装 (-113)
- javascript - 使用平滑过渡更改图像 src