我的学习笔记 (3) - ABAP STRUST 事务码和背后的基础知识

我的知识星球里有朋友向我求助,咨询 ABAP 同第三方系统通过 HTTPS 交互时,ABAP 作为客户端的 SSL 证书配置问题。

我的回复是,事务码 STRUST 即 ABAP Trust Manager 里这些配置,一般是 SAP Basis 的职责,ABAP 开发人员遇到问题的话,找 Basis 求助就行了。

这位朋友回复我,公司规模比较小,没有 Basis … 一切都是自己弄 …

SAP ABAP 系统如何配置以支持 TLS 即 Transport Layer Security,在官方帮助文档里有详细介绍,我也借帮助这位朋友排查问题的机会,学习了一下官网的文档

本文是我的学习笔记,写出来以备后用。这些算是计算机基础知识,无论用什么编程语言做开发,都用得上。

在计算机安全领域,特别是在涉及加密和身份验证的场景中,公钥基础设施 (PKI, Public Key Infrastructure) 扮演着至关重要的角色。

PKI 是一套由硬件、软件、政策、标准和程序组成的系统,用于创建、管理、分发、使用、存储和撤销数字证书。它通过使用公钥加密技术来提供安全的数据传输、身份验证、数据完整性和数据保密性。

PKI 系统中最重要的组成部分是公钥和私钥对、数字证书以及认证机构 (CA, Certificate Authority)。

图片出处:https://doubleoctopus.com/wp-content/uploads/2021/08/Certificate-Authority-Secret-double-octopus-1.png

公钥通常是公开的,任何人都可以访问,而私钥则是保密的,只有密钥的拥有者才能使用。

公钥和私钥之间有一个非常重要的关系:使用公钥加密的数据只能由对应的私钥解密,反之亦然。

数字证书是由认证机构 (CA) 签发的,绑定公钥和实体身份的一种电子文档。它包含了持有者的公钥以及一些与持有者身份相关的信息,如姓名、电子邮件地址等。数字证书的目的是通过第三方(即 CA)来验证公钥的有效性,从而确保公钥的持有者的身份是可信的。

认证机构 (CA) 是一个受信任的实体,负责颁发、管理、撤销数字证书。它通过签名来证明证书的真实性和有效性。当一个 CA 签署一个数字证书时,它使用其私钥对证书进行签名。任何人可以使用 CA 的公钥来验证该签名,从而确认证书的真实性。

传输层安全协议(TLS),通常被称为 SSL,利用公钥技术来保障通信安全。因此,服务器必须拥有一对公钥和私钥,并配备相应的公钥证书。

为了标识服务器身份,服务器需要具备一套密钥对和证书;如果服务器还需要标识自己为客户端身份,则还需要另外一套密钥对和证书。这些密钥对和证书存储在服务器的个人安全环境(Personal Security Environment 简称 PSE)中,分别对应于 SSL 服务器 PSE 和 SSL 客户端 PSE。

我们在 ABAP 事务码 STRUST 里可以看到导入和导出证书的菜单。那么待导入系统的证书,是如何生成的呢?

首先,服务器管理员需要生成一对密钥:公钥和私钥。这个过程通常通过命令行工具(如 OpenSSL)或其他加密软件来完成。生成密钥对的命令可能类似如下:

openssl genrsa -out private.key 2048

这条命令生成了一个 2048 位的 RSA 私钥,并将其保存到 private.key 文件中。接下来,公钥可以从私钥中导出:

openssl rsa -in private.key -pubout -out public.key

通过这条命令,生成了与私钥对应的公钥,并将其保存到 public.key 文件中。现在,服务器管理员有了一对密钥:一个私钥和一个公钥。

生成证书请求 (CSR)

在生成密钥对之后,服务器管理员需要生成一个证书签名请求 (CSR, Certificate Signing Request)。CSR 是一种标准格式的请求文件,包含了服务器的公钥以及其他一些关于服务器身份的信息,如域名、公司名称、组织单位等。生成 CSR 的命令如下:

openssl req -new -key private.key -out server.csr

此命令使用之前生成的私钥来创建一个新的 CSR 文件 server.csr。在这个过程中,管理员需要输入一些与服务器身份相关的信息,例如:

  • 国家:CN
  • 省份:Beijing
  • 城市:Beijing
  • 组织名称:MyCompany
  • 组织单位名称:IT Department
  • 公共名称 (Common Name):www.example.com

这些信息将被包含在 CSR 中,并最终包含在数字证书内。

生成 CSR 之后,管理员需要将该请求发送给一个 CA。CA 是一个受信任的第三方机构,它负责验证申请者的身份并签发数字证书。通常情况下,管理员会通过电子邮件或 CA 提供的在线门户将 CSR 文件提交给 CA。

CA 收到 CSR 后,将验证请求中包含的信息是否真实和准确。这通常涉及验证域名的所有权和公司信息的合法性。一旦 CA 验证通过,它将使用自己的私钥对 CSR 中的公钥进行签名,生成一个正式的数字证书,并将该证书发送回服务器管理员。

这个签署过程的实质是:CA 使用其私钥生成一个加密的哈希值(也称为签名),并将这个签名附加到证书上。任何人都可以使用 CA 的公钥来解密这个哈希值,从而验证证书的真实性。

一旦服务器管理员收到 CA 签署的数字证书,就可以使用事务码 STRUST 将该证书安装在服务器上。

安装步骤在 SAP 帮助文档中也有详细介绍

这个证书通常与服务器的私钥配对使用,以支持安全的 HTTPS 连接。在 HTTPS 连接中,服务器将其公钥(包含在证书中)发送给客户端,客户端使用这个公钥加密数据,服务器则使用相应的私钥解密数据。

在整个过程中,生成密钥对、创建 CSR、提交 CSR 并获得 CA 签名的证书是确保服务器与客户端之间安全通信的关键步骤。通过 PKI 和 CA 的引入,公钥的真实性得到了保证,SAP NetWeaver AS for ABAP 与第三方系统之间的 HTTPS 连接,其传输的数据能够被加密,同时通讯双方的身份也能够得到验证,确保了信息的安全。

本文后续会介绍这些证书,如何在 ABAP 同第三方系统进行 HTTPS 通信的代码中得到体现。

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值