首页 > 解决方案 > 调用 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 上抛出并且在我的机器上运行完全正常?请指教。

标签: spring-bootazurecomputer-visionssl-certificatecontainers

解决方案


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 证书会启用加密连接。这有点像在通过邮件发送之前将一封信封在信封中。

JDK 版本支持的 SSL/TLS 版本


推荐阅读