经常有客户或者伙伴为SAP集成套件(CPI)的证书问题所困扰,这里我们利用SAP的社区博客就证书相关的问题进行一次全面的总结和陈述,希望能够解惑,如果有相关疑问也欢迎能够提问或者指正。
作者:
sam_sun,
alan.han#overview,
#content:blogposts 均来自SAP大中华区客户成功部门
技术背景
SAP Cloud Integration Suite作为集成套件,用于集成SAP系统与第三方集成的中间构件。在集成过程,安全性是其中较为重要的一环,为了保证整个集成环节中的安全性,SAP提供了安全证书机制保证系统间建立安全的链接,以及在服务端和用户端安装SSL安全证书。
本文根据通信场景综合两种情况:入站(inbound)和出站(outbound),读者可根据入站和出站两种场景去更新相关系统证书。

目前各大CA机构颁发的SSL证书为一年有效期,存在过期续订和更新的问题。如果未及时更新证书,会存在通信握手失败的问题,因此对于运维和实施人员需要关心以下系统的证书有效期提示。
以下提示出现时,您需要注意务必更新SSL证书,否则会导致集成场景不能正常工作,影响业务系统。
情况1
S/4HANA Trust Manager(TCODE: STRUST)系统中证书列表中出现证书过期的提示

情况2
管理员登录S/4HANA系统时,出现SSL过期提醒

情况3
S/4HANA ABAP调用CPI接口时,抛出异常信息。

情况4
CPIs管理员登录CPI开发界面下面Monitor —> Manage Keystore
Valid Until出现红色提示。

Outbound外围系统SSL证书过期提示

Inbound CPI SSL证书(3个根目录证书)有效期提示
入站(Inbound)场景
入站是指,从发送方系统到CPI任何请求都会通过负载均衡器, 负载均衡器证书允许发送方系统与负载均衡器进行 SSL 握手,并允许租户入站通信。
对于以下调用情况无需做任何处理
- Cloud Integration租户(发送方是CPI的用户)
- 在外部或发送器系统上
- 发送者是浏览器或 SoapUI、Postman 等工具,在租户上调用 OData或 iFlow(使用端点 URL)
- 发件人是 SuccessFactors、C4C、S/4HANA Cloud 或任何 SAP Cloud 解决方案
- 通信出站且租户向外部系统发送请求
解决方案
- 准备证书。证书分为一年期和多年期,可以根据您当前安全要求选择1年期和多年期的证书。多年期证书下载(SAP推荐方式)如下
- 登陆CPI,进入Monitor, 点击KeyStore。

- 下载三个证书 sap_digicert global ca g2,sap_digicert global root ca,sap_digicert global root g2。这个三个证书都需要导入到S4系统中。
一年期证书下载方式如下
- 找到部署好的Endpoint地址,复制到浏览器中。

- 在浏览器下载可用的一年期证书。


- 打开SAP GUI,输入Tcode: /nstrust
- 点开 SSL client SSL client (Anonymous or specific Client PSE) >> <server name> >> certificate list
注意:请根据实际Client证书路径选择要导入的证书。常用的: SSL Client SSL Client(标准), SSL Client SSL Client(匿名)。如果不清楚,请咨询Basis工程师。
- 从本地系统依次导入下载的三张SSL证书。点击编辑,导入证书。


- 点击添加到证书列表

- 导入之后,再次点击编辑按钮,保存证书链条。
- 证书现已添加到 SAP 系统的 SSL 客户端 SSL 客户端(匿名)或特定客户端 PSE 信任存储中。 保存 PSE。 对于较旧的 NW 版本,ICM 可能需要重新启动。
出站(Outbound)场景
出站(Outbound)是指从SAP Integration Suite集成套件发向其他目标系统的请求,这些目标系统可能是SAP自家的云或者地端系统,也可能是非SAP的第三方系统。我们需要澄清的是,在上一步入站场景中我们提到的SSL证书是SAP集成套件的服务器证书,用来验证站点的所有者(SAP集成套件),而在出站场景中提到的SSL证书指的是SAP集成套件作为发送端的客户端证书,用以标识客户端(SAP集成套件),这两者是不一样的,但是都可以在同一个地方找到。
解决方案
- 登陆CPI,进入Monitor, 点击KeyStore。

- 找到名称为第三方过期的的证书,以163服务器为例。

- 下载第三方服务的SSL证书。


- 在CPI Keystore中更新第三方SSL证书。

过期的第三方SSL证书完成了更新,重新调用测试是否工作正常。
SAP Cloud Connector (SCC)证书更新
解决方案
要更新子账户证书,请按如下步骤执行
- 在SCC管理界面中,从左侧菜单中选择SCC连接的BTP子账户。

- 在页面右上角,点击“刷新证书”按钮

- 在弹出的对话框中输入BTP子账户的用户名和密码,然后点击“刷新”,更新后的证书将自动安装到您的SCC中。

如何配置证书过期邮件提醒
为了避免SCC证书过期,导致SCC与BTP子账户连接断开,进而导致集成流失败,影响正常业务,您可以在SCC配置证书过期邮件提醒,在证书过期前提前收到邮件通知。
首先,需要配置SMTP服务器信息:
- 进入SCC管理界面,在左侧菜单点击“Alerting”
- 点击右上角“Email Configuration”按钮,在弹出的对话框中输入以下信息
- Send to: 邮件收件人
- Sent from: 邮件发件人
- SMTP server: 您的邮箱SMTP服务器地址
- SMTP端口: 您的邮箱SMTP服务器端口
- TLS enabled: SMTP服务器是否需要打开TLS连接
- User和Password: 发件人邮箱的登录账号密码
- 保存并测试发送邮件,确保能收到SCC发出的邮件
下一步,配置邮件提醒的具体内容:
- 在Alerting界面,点击Observation Configuration
- 在弹出的对话框中,打开最下面的Certificate开关,并输入证书过期前多少天发送提醒
- 如有其他需要发送邮件通知的内容,可以同时打开对应开关,如CPU使用率,磁盘剩余空间阈值,SCC与BTP连接的健康度等
- 保存

SCC背景知识
- SCC使用场景在企业的IT环境中,有许多系统是仅允许在企业内部网络环境访问的。但是,由于SAP集成套件是一个在公有云环境的SaaS,如果要与内网的系统做集成,就需要一个从外网访问内网的机制,而SCC就是实现这个机制的工具,你可以理解为类似反向代理的原理。
从架构上来看,SCC必须安装在企业内网里的一台服务器上,并且这台服务器需要具备访问公网的通路,或至少需要能访问SAP BTP平台的通路。下面的架构图展现了SCC的在不同网络环境所处的位置,以及和BTP平台连接的通路。

- SCC所使用的证书及其作用证书用于TLS安全传输认证使用,SCC通过使用TLS隧道与 SAP BTP平台建立连接。
- 如何确认集成场景中有没有使用SCC?如果您不确定在SAP集成套件的集成场景里有没有使用SCC,可以通过在集成流integration flow中,sender或receiver的proxy type是on-premise,这就代表集成流需要通过SCC去访问内网的系统
- 如何找到SCC所在的服务器?如果您是SAP S/4HANA PCE私有云客户:
- 请查询您的系统交付文档,里面如果有系统名为DCL或PCL的系统,即为安装了SCC的服务器(DCL=SCC测试系统,PCL=SCC生产系统)
- 系统交付文档会列出SCC管理页面的访问地址,以及管理员的用户名/密码等重要信息
如果您是在本地网络环境部署的SCC,请自行查询相关的服务器访问信息
- 如何查询SCC证书是否过期?步骤如下:
- 登录到SCC管理界面(一般来说管理界面的地址是:http://<scc_hostname>:8443/),并使用管理员账号登录。如果忘记管理员账号密码,可以参考SAP Note 2388242重置管理员账号密码。
- 在管理界面左侧菜单,点击SCC所连接的BTP子账户ID
- 如果证书过期,Subaccount Certificate会显示红色字样“Certificate has expired”(如下图)。如果还未过期,会显色证书过期时间(绿色字样)

参考文档
- [Upcoming Exchange of Cloud Integration Server Certificate – Runtime](https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=598213575#Whenyougetanemailsaying<ActionRequired>SAPCloudIntegrationUpcomingExchangeofCloudIntegrationServerCertificate–Runtime-downloadcertificate)
- 3193513 - Cloud Integration Certificate Is Expiring in STRUST
- Cloud Integration – Keystore Monitor now available for Tenant Administrator
- How to configure HTTPS Inbound Connection in Cloud Integration Cloud Foundry using Client Certificat...
- SAP S/4HANA: Maintaining Certificates in Trust Manager
- SAP Cloud Connector更新子账户的证书
- Cloud Connector 邮件提醒设置