bg-tutorials

如何在SAP应用服务器上生成CSR

本指南将向您展示如何在 SAP NetWeaver Application Server (ABAP) 上生成 CSR(证书签名请求)。在 SAP 中,您并非通过配置文件或一次性的 OpenSSL 命令来创建请求。相反,您需要基于 PSE(Personal Security Environment,个人安全环境)进行操作:在信任管理器(事务 STRUST)中,您选择或创建 SSL 服务器 PSE,设置主题详细信息,然后使用创建证书请求来生成 CSR。当您需要显式控制 Subject Alternative Names(主题备用名称)时,也可以使用 sapgenpse(SAP CommonCryptoLib 的一部分)在操作系统层面生成请求。

生成 CSR 代码之前

在 SAP 中,CSR 是从 PSE(个人安全环境)生成的,该容器同时保存着匹配的私钥。在 ABAP 系统上,您需要在信任管理器(事务 STRUST)中完成此操作。您也可以使用 SAP CommonCryptoLib 中的 sapgenpse 在操作系统层面生成 CSR。无论采用哪种方式,私钥都会与请求一同创建,并保留在服务器上的 PSE 内:私钥永远不会成为您发出的 CSR 的一部分。

首先确定您需要多少个请求。如果您使用实例专属的 SSL 服务器 PSE,则需要为每个应用服务器分别生成一个 CSR。如果您使用单一的系统级 SSL 服务器 PSE(例如SSL server Standard),则一个 CSR 即可覆盖整个系统。

在开始之前,您需要准备好以下信息,因为它们将写入请求的主题(可分辨名称)中:

  • 通用名称(CN):您要保护的确切主机名(FQDN),例如 shop.example.com,或通配符如 *.example.com。
  • 组织(O):您公司的法定名称。
  • 所在地(L)、州或省(S / SP)以及国家(C):您所在的城市、完整拼写的地区名称,以及两字母的国家代码。
  • 密钥长度:使用 RSA 2048 位或更大的密钥。公共证书颁发机构会拒绝小于 2048 位的密钥。

如果您希望在服务器之外生成请求及其私钥,我们的CSR 生成器可以在您的浏览器中同时生成这两者。请选择最适合您工作流程的方法,然后在提交 SSL 订单时提交生成的 CSR。

ABAP 方法:STRUST(信任管理器)

这是在 SAP NetWeaver AS ABAP 上生成 CSR 的标准方式。请在 SAP GUI 中执行以下步骤,如果 PSE 树处于只读状态,请切换到更改模式。

步骤 1:打开信任管理器

在 SAP GUI 中,运行事务 STRUST 以打开信任管理器。

步骤 2:选择或创建 SSL 服务器 PSE

在左侧的树形结构中,选择SSL server PSE。选择您实际用于服务的 PSE:系统级的SSL server Standard,或实例专属的服务器 PSE。双击它以打开。

如果尚未存在 PSE,或您正在替换当前的 PSE,请右键单击该节点并选择创建(或替换)。这将打开创建/替换 PSE 对话框,您可以在其中输入下面所述的主题(DN)字段。

步骤 3:输入主题(DN)字段

填写您的组织详细信息。这些信息将成为证书的可分辨名称:

  • CN(通用名称):您要保护的确切主机名(FQDN),或通配符如 *.yourdomain.com。
  • O(组织):您公司的法定名称,例如 Your Company LLC。
  • OU(组织单位):该字段已被 CA/浏览器论坛弃用,因此请留空或输入 NA。
  • L(所在地/城市):例如 Atlanta。
  • S / SP(州/省):需完整拼写,例如 Georgia。
  • C(国家):两字母的国家代码,例如 US。

将密钥长度设置为 2048 位或更长,然后确认。SAP 将创建 PSE 及其私钥。

步骤 4:创建证书请求

选中 SSL 服务器 PSE 后,选择创建证书请求。SAP 会以 Base64(PKCS#10)格式生成 CSR。在对话框中,复制完整的请求文本,包括 —–BEGIN CERTIFICATE REQUEST—– 和 —–END CERTIFICATE REQUEST—– 这两行,或将其保存为文件。这就是您要提交给证书颁发机构的内容。

关于 SAN(主题备用名称)的说明:现代客户端会根据 SAN 扩展而不是通用名称来验证主机名。部分 STRUST 版本没有提供 SAN 字段。较新的技术栈提供了替换向导(需要 SAP Note 2414090)来引导您完成此操作。如果您的界面没有添加 SAN 的选项,请使用下面的命令行方法,它可以让您显式设置 SAN。

命令行方法:sapgenpse(显式 SAN)

当您必须确保 CSR 中包含 SAN,或者您的界面未提供 SAN 字段时,可使用此方法。这需要支持 SAN 的 SAP CommonCryptoLib(8.4.42 及更高版本已支持并有相关文档)。首先为您的平台设置好环境变量,包括 SECUDIR,以便工具能够找到 PSE 目录。

下面的示例将创建或刷新 PSE,并写入一个包含两个 SAN 条目的 CSR。请在存放 sapgenpse 的目录中运行该命令,并将主机名和 DN 替换为您自己的值:

sapgenpse get_pse -p SAPSSLS.pse -x 
-a sha256WithRsaEncryption -s 2048 
-k GN-dNSName:example.com -k GN-dNSName:www.example.com 
"CN=example.com, OU=NA, O=Your Company LLC, L=Atlanta, SP=Georgia, C=US" 
-r server.csr

各选项的作用如下:

  • -p SAPSSLS.pse 指定 PSE 文件名称,-x 会提示您输入其 PIN 码。
  • -a sha256WithRsaEncryption 将签名算法设置为 SHA-256,-s 2048 将密钥长度设置为 2048 位。
  • 每一个 -k GN-dNSName: 条目都会向 SAN 扩展添加一个 DNS 名称。对于证书需要覆盖的每个主机名,都需重复添加。
  • -r server.csr 将请求写入一个文件,您可以打开并复制该文件的内容。

某些 SAP 界面,例如 Web Dispatcher PSE Management,也没有提供 SAN 字段。在这种情况下,SAP 官方的建议是使用这种命令行方式在界面之外生成 CSR。

验证并提交 CSR

在提交之前,最好确认请求中包含您预期的值。您可以在 STRUST 中查看该请求,将其粘贴到我们的在线CSR 解码器中,或在任何安装了 OpenSSL 的计算机上对其进行解码:

openssl req -noout -text -in server.csr

检查通用名称、组织详细信息、密钥长度以及任何 SAN 条目是否正确。当一切确认无误后,将 CSR 内容复制到 SSL 订单中相应的输入框中。在证书颁发机构验证请求并颁发证书后,请继续参考SAP SSL 安装说明,将响应导入回 PSE 并重启 ICM。

常见问题

哪个事务用于在 SAP 中生成 CSR?

在 SAP NetWeaver AS ABAP 中,运行事务 STRUST 以打开信任管理器。选择 SSL 服务器 PSE,然后选择创建证书请求。SAP 会以 Base64 格式生成 CSR,您可以复制并将其发送给证书颁发机构。另外,您也可以使用 sapgenpse 在操作系统层面生成该请求。

SAP 中的 PSE 是什么?

PSE(个人安全环境)是 SAP 用来存储密钥对及相关证书的安全容器。SSL 服务器 PSE 保存着应用服务器通过 HTTPS 提供的私钥和服务器证书。当您创建证书请求时,私钥会在 PSE 内部生成并保留在其中:私钥永远不会包含在您发送给 CA 的 CSR 中。

如何向 SAP CSR 添加主题备用名称(SAN)?

部分 STRUST 界面没有包含 SAN 字段。较新的技术栈增加了替换向导(需要 SAP Note 2414090)来处理 SAN。如果您的界面没有提供 SAN 选项,请改用 sapgenpse 命令行方法生成请求,并为每个主机名添加一个 -k GN-dNSName: 条目。SAN 支持需要 SAP CommonCryptoLib 8.4.42 或更高版本。

我应该生成一个 CSR 还是为每个应用服务器分别生成一个?

这取决于您的 PSE 设置方式。如果您使用单一的系统级 SSL 服务器 PSE,例如SSL server Standard,那么一个 CSR 即可覆盖整个系统。如果每个实例都有各自的 SSL 服务器 PSE,则需要为每个应用服务器分别生成一个 CSR。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.