如何使用 Docker 配置 SAP SNC

问题描述

我需要容器化一个与 SAP 系统通信的服务。该服务是使用 Spring Boot 编写的。

我有一份在 Linux 机器上手动执行步骤的文档,这将有助于连接到 SAP 系统。它遵循的步骤是:

  1. 下载所需文件
  2. 切换到用户
  3. 解压这些文件
  4. 创建符号链接
  5. 准备证书和密钥
  6. 生成 PSE
  7. 将 SAP 根证书和中间证书添加到 PSE 等等。

我正在考虑编写一个包含上述所有步骤的 Dockerfile。目前不知道还有其他选择。

几个查询:

  1. 编写一个包含我们在任何 Linux 机器上手动执行的所有步骤的 Dockerfile 是否是个好主意,这也有助于我将与 SAP 系统通信的服务容器化。
  2. 是否有其他替代方案或库可用于实现相同的目标。
  3. docker 文件是否已经存在,它将帮助我连接到 SAP 系统。
  4. 如何使用 Dockerfile 在我的应用程序中配置 SAP SNC。

有人可以帮我吗?

感谢您的帮助!提前致谢!

解决方法

如果您有一个基于 Java 的 Spring 应用程序,您可以使用 SAP Jco library,它可用于从外部连接到 SAP 系统。此处描述了配置步骤:

https://help.mulesoft.com/s/article/Enabling-SNC-in-SAP-connector

它在 Mulesoft 帮助中给出,但要点对于任何基于 Java 的系统都是相同的。

需要为 SNC 设置的最重要的 JCo 参数:

参数 姓名 说明
jco.client.snc_mode SNC 模式 1:SNC 已激活 0:SNC 未激活
jco.client.snc_lib SNC 库路径 指定外部库的路径和文件名。默认是在环境变量 SNC_LIB 中定义的系统定义库。示例:C:SAP\J2EE_Engine\SAPCrypto\libs\apcrypto.dll
jco.client.snc_qop SNC 级别 指定用于连接的保护级别。 1:仅认证 2:完整性保护 3:隐私保护(默认) 8:在 SAP 应用服务器上使用 snc/data protection/use 中的值 9:在 SAP 应用服务器上使用 snc/data_protection/max 中的值
jco.client.snc_myname SNC 名称 指定 SNC 名称。应设置此参数以确保使用正确的 SNC 名称进行连接。示例:p:CN=SAPJ2EE,O=MyCompany,C=US
jco.client.snc_partnername SNC 合作伙伴 指定 SAP 应用程序服务器的 SNC 名称。它可以在 SAP 配置文件参数 snc\identity\as 中找到。示例:p:CN=ABC,C=US

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...