spring-boot - 调用 Azure Vision API 时出现 SSL/TLS 握手错误
问题描述
我有一个基于 Spring Boot 的微服务,我在其中使用 Microsoft Azure Computer Vision API 从 PDF 文件中读取数据。将微服务容器化后,容器工作正常,我可以在我的机器上向/从计算机视觉 API 发送/接收数据。但是,当我在基于 Azure 的 Linux 虚拟机上运行此容器时,该容器无法与计算机视觉 API 通信并抛出异常java.lang.RuntimeException: javax.net.ssl.SSLKeyException: RSA premaster secret error
。此外,spring-boot jar 能够与 VM 上的 Azure 进行通信,并且不会引发此类异常。
你认为我需要将任何自签名证书传递给容器才能顺利通信吗?
我认为使用这些容器的最大优势在于它使代码平台独立。那么,为什么这个错误只在 Azure VM 上抛出并且在我的机器上运行完全正常?请指教。
解决方案
java.lang.RuntimeException: javax.net.ssl.SSLKeyException: RSA premaster secret error
在本地计算机上工作正常,但在 Azure Linux VM 上运行容器时它无法正常工作,因此 Linux VM 和 Java JRE 之间可能存在兼容性问题。基于上述错误,解决方案是从您的服务器 Classpath 中删除更新的 java 版本并尝试安装旧的 java 版本
请参考此链接在此处与上述错误相关的相同讨论:https ://community.oracle.com/tech/developers/discussion/1533888/another-rsa-premaster-secret-error
其次,尝试在 Java 面板中设置 SSL/TLS 参数,因为 SSL 证书是 Web 服务器上的一段代码,可为在线通信提供安全性。当网络浏览器访问您的安全网站时,SSL 证书会启用加密连接。这有点像在通过邮件发送之前将一封信封在信封中。
推荐阅读
- angular - 为什么重置自定义 Angular 反应式表单控件会显示不一致的行为?
- c# - C# UWP 卡片小部件?
- arrays - 循环一个字节数组以将 64 位转换为十进制
- javascript - 文件未缓存在 ServiceWorker 中
- css - SVG 超过了弹性项目容器
- flutter - 可增长数组的“状态不佳:元素太多”,但整个堆栈都在 Flutter 内部,没有我的任何代码
- mapbox - Mapbox GL JS V2 中 3D 地形的自定义 DEM
- matlab - 用 MATLAB 解决概率问题
- database - 使用阿姆斯壮公理证明 AD->B
- ios - 异步调用导致 EXC_BAD_INSTRUCTION 崩溃