配置客户端与 API7 网关之间的 mTLS
双向传 输层安全性(mTLS),作为 TLS(传输层安全性)的一种高级应用,旨在通过客户端与服务器之间的双向身份验证机制,显著提升通信安全性。这一过程依赖于精心设计的握手流程,双方不仅交换加密密钥,还相互验证对方的数字证书,从而确保通信双方身份的准确无误。
本指南将阐述如何在客户端应用程序和 API7 企业版之间配置 mTLS,以有效阻止未经授权的访问并加固整体安全防线。
下面是一个互动演示,提供配置 mTLS 的实践入门。通过点击并按照步骤操作,你将更好地了解如何在 API7 企业版中使用。
前提条件
- 安装 API7 企业版。
- 在网关组上有一个运行的 API, 并确保你的服务已配置主机名
test.com
。
生成证书和密钥
-
生成证书颁发机构(CA)的密钥和证书。
openssl genrsa -out ca.key 2048 && \
openssl req -new -sha256 -key ca.key -out ca.csr -subj "/CN=ROOTCA" && \
openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.crt -
为 API7 企业版生成一个公用名为
test.com
的密钥和证书,并使用 CA 证书签名。openssl genrsa -out server.key 2048 && \
openssl req -new -sha256 -key server.key -out server.csr -subj "/CN=test.com" && \
openssl x509 -req -days 36500 -sha256 -extensions v3_req \
-CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial \
-in server.csr -out server.crt -
为客户端生成一个公用名为
CLIENT
的密钥和证书,并使用 CA 证书签名。openssl genrsa -out client.key 2048 && \
openssl req -new -sha256 -key client.key -out client.csr -subj "/CN=CLIENT" && \
openssl x509 -req -days 36500 -sha256 -extensions v3_req \
-CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial \
-in client.csr -out client.crt -
生成证书和密钥后,检查并确保以下文件已保存至你的本地设备。
❶
server.crt
: 服务器证书❷
server.key
: 服务器证书的密钥❸
ca.crt
: CA 证书
创建证书
- 从侧边导航栏中选择网关组的 证书,进入 SSL 证书 选项卡。
- 单击 新增 SSL 证书。
- 在对话框中,执行以下操作:
- 在 名称 字段中,输入
测试 SSL 证书
。 - 在 证书 字段中,上传
server.crt
文件。 - 在 私钥 字段中,上传
server.key
文件。 - 单击 新增。
- 从侧边导航栏中选择网关组的 证书,然后单击 CA 证书 选项卡。
- 单击 新增 CA 证书。
- 在对话框中,执行以下操作:
- 在 名称 字段中,输入
测试 CA 证书
。 - 在 证书 字段中,上传
ca.crt
文件。 - 单击 新增。
创建 SNI
- 从侧边导航栏中选择网关组的 SNI。
- 单击 新增 SNI。
- 在对话框中,执行以下操作:
- 在 名称 字段中,输入
测试 SNI
。 - 在 域名 字段中,输入
test.com
。 - 在 SSL 协议 字段中,选择
TLS 1.2
和TLS 1.3
。 - 在 SSL 证书 字段中,选择你之前创建的
测试 SSL 证书
。 - 打开 mTLS 开关。
- 在 CA 证书 字段中,选择你之前创建的
测试 CA 证书
。 - 单击 新增。
- 在 使用情况 字段中,你应该会看到一个与主机名
test.com
匹配的已发布服务。然后你就可以进行验证了。