云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

专属服务器_数据库权限设置_试用

小七 141 0

简介

我们最近将PI 7.4系统升级到SPS 15。在特性方面没有什么特别之处,因为SAP在PI领域的开发现在几乎处于停滞状态。但是,作为升级的一部分,它包含了新的IAIK库,现在支持tls1.2。正如我一年前在上一篇博文中提到的,这是去年比较流行的问题/讨论之一,因为它是一个关键功能。一年后,这仍然是我迁移到这个新的SAP社区平台以来浏览量最大的博客之一,所以我猜这个话题在今天仍然和去年一样重要。

如前所述,这个新库是作为SAP Note 2284059–NW Java server中SSL库的更新的一部分提供的,它提供了与库的配置相关的大量详细信息。与此相关的另一个有用资源是Markus Schalk的blog Outbound support for TLS 1.1/1.2.

在这个blog中,大数据好不好,我将致力于分享我自己在这个升级项目中的经验,目的是突出一些关键领域,人工智能网络,以供经历类似旅程的人注意。

升级库

因此,一旦我们安装了IAIK库,我们就可以开始测试我们的HTTPS接口。如SAP说明中所述,SAP强烈建议在部署到生产中之前对所有连接进行测试。

我们可以通过使用XPI Inspector对HTTP SSL连接进行故障排除来验证是否使用了新的IAIK库和TLS 1.2功能。如下所示,SSL调试日志显示发送客户机hello请求sslversion3.3(即tls1.2)。另外,还包括重新协商信息和签名算法TLS扩展。

连接重置!

一旦我们开始测试,我们注意到java.net.SocketException异常:某些接口上的连接重置错误。

我们的一个外部合作伙伴确认,在使用TLS 1.2时,他们还需要发送SNI(服务器名称指示)扩展。否则,SSL握手将失败并导致上述错误。

SSL配置文件

SAP说明中提到,可以使用自定义SSL配置文件进一步配置SSL握手。所以首先,我们需要找到一个默认配置文件的副本。这一点很重要,因为那里配置了许多现有的属性,如果我们从一个空白文件开始,所有这些默认属性都将丢失。

令人惊讶的是,尽管SAP说明提到了SSL配置文件,但它没有提供它的副本,也没有提到在哪里可以找到它。幸运的是,马库斯已经完成了这个练习,并提到它可以在iaik中找到_ssl.jar文件PI系统中的文件。但是,他提供的路径不适用于我们的系统(可能是因为我们的是双栈),所以我列出了在我的系统中找到它的地方取而代之的是:-

/usr/sap//DVEBMGS/j2ee/cluster/bin/ext/mail activation iaik/iaik_ssl.jar文件

一旦我们有了默认的配置文件,我们按照注释的第5.5节配置了SNI支持。由于我们的接口既连接到需要SNI的服务器,企业信息软件,也连接到不支持SNI的服务器,微淘客,因此我们将以下属性添加到文件中。

extension=server_名称.非关键

随后,这个自定义属性文件被放置在PI系统中,VM参数被配置为读取这个文件。

真正的乐趣开始了!

重新启动系统后,我们原以为这样可以解决问题,但恰恰相反,这才是"乐趣真正开始"的地方!

当一些以前失败的连接开始工作时,其他连接开始显示不同的错误。

为了确保配置正确,我们运行了另一个XPI检查器跟踪,现在我们可以看到服务器名称扩展被包括在内了。

我们注意到非SOAP适配器上的连接(比如我们的Advantco DYNCRM适配器)工作正常,但是SOAP连接面临一个新的问题错误:-

通过HTTPS/代理与主机验证进行通信。无法创建套接字

,因为这是一个意外和奇怪的错误,在排除问题后没有太多进展-猜猜看…。我们决定在SAP支持门户上记录一个事件。任何有过SAP支持经验的人都知道这意味着什么…。乒乓球比赛!

尽管在升级项目期间为SAP MaxAttention支持支付了额外的$$$,但这并没有改变这样一个事实:在获得任何支持之前,事件记录必须在SAP的一级支持中进行。处理SAP支持本身就是对耐心、决心、肌肉锻炼和愤怒管理的考验!

我们甚至被派去大惊小怪,其中一个建议我们将以下格式的属性添加到配置文件中。

extension=server_名称.非关键()

这个问题曾经是:-

说明中没有提到,所以我们不知道如何配置它我们只能列出一个服务器,如果我们有多个服务器需要SNI支持怎么办?

当然,我们是SAP的好客户,听从了建议,浪费了时间去测试,但毫无结果。

经过一番努力,我们终于与开发团队取得了联系。而让所有人都感到意外的是,据透露,上述功能是未经备案的,物联网培训,仅用于内部测试目的。"那为什么你的同事一开始就建议我们这么做

对不起,你看到我的错误修复了吗?