分享

SAP ABAP 通过 https 消费外部 API 遇到错误消息 SSSLERR_SSL_CONNECT

 汪子熙 2023-04-16 发布于上海

错误消息:

500 Native SSL error :

SSL handshake with api.uat 443 failed: SSSLERR_SSL_CONNECT -57

SAPCRYPTO:SSL_connect failed

received a fatal TLS1.0 internal_error alert from the peer

这个错误是关于 ABAP 作为客户端,无法通过 https 向提供 API 的外部服务器建立安全链接。

已经按照网上的方式使用事务码 strust 导入了 ssl 证书。

SAP 社区有人遇到类似的问题,没有得到解答。

在这个 github issue 里有解答。

有网友已经成功在 7.5 SP02 和 7.4 SP05 两个不同的版本上解决了这个错误。

这是纯粹 SAP basis 的技术领域。

7.5 SP02

按照 SAP note 510007介绍的配置来进行 SAP ABAP SSL 服务器端配置。

7.4 SP05

  • 执行 SAP note 510007 的 Step 7.

  • Download SAP Cryptographic Library, 链接在此

  • 解压之后,将文件拷贝到这个路径下: \usr\sap<SID>\SYS\exe\run

  • 重启服务器

注:在 SAP 内部有专门的团队来处理此类服务器配置问题。我对此类配置问题知之甚少,以上来自 Google 搜索,我没有真正动手尝试过(在我们工作的 SAP 系统上,我没有足够的权限)。

2023年4月14日更新

提问的朋友反馈,按照本文的提示,问题已经解决。

JerryWang

114 次咨询

4.9

科学技术领域答主

4312 次赞同

去咨询

补充 - 什么是 SSL handshake?

SSL handshake是一种SSL/TLS协议中的握手协议,用于在客户端和服务器之间建立安全通信连接。它是在SSL/TLS握手协议的开始阶段完成的,通过几个步骤来协商密钥、验证对方身份、建立安全通道等。

SSL handshake的过程大致如下:

  • 客户端向服务器发起SSL连接请求。

  • 服务器回应客户端,发送其数字证书,证书包含服务器的公钥和服务器信息。

  • 客户端验证服务器的数字证书是否有效和合法,如果合法,则生成一个随机数作为加密密钥。

  • 客户端使用服务器的公钥加密生成的随机数,并发送给服务器。

  • 服务器使用自己的私钥解密客户端发送过来的随机数,然后使用该随机数生成加密密钥。

  • 服务器将使用该加密密钥来加密数据,并将其发送给客户端。

  • 客户端也使用该加密密钥来加密数据,并将其发送给服务器。

  • SSL handshake结束,客户端和服务器之间建立了安全通信连接。

SSL handshake的目的是建立客户端和服务器之间的安全通信连接,确保通信的机密性、完整性和可信度。它是SSL/TLS协议中非常重要的一个环节,也是保证通信安全的关键所在。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多