本文提供在 Linux 主机上运行的 Microsoft Connected Cache for Enterprise 节点上启用 HTTPS 支持的分步说明。
安装过程需要在主机上生成证书签名请求 (CSR) ,使用企业或公共 PKI 对 CSR 进行签名,然后导入回主机计算机。
必备条件
在设置 HTTPS 功能之前,请确保满足以下要求:
缓存节点使用 GA 软件版本
- 打开Azure 门户并导航到托管缓存节点的“连接缓存企业版”资源。
- 在 “缓存节点管理”下,找到要启用 HTTPS 的缓存节点。
- 验证节点是否为 GA 版本 - 应在“ 已迁移 ”列中显示“是”或“N/A”。
- 如果不是正式版 (“否”,请在“ 迁移 ”列) 选择缓存节点,导航到“ 部署 ”选项卡,然后按照说明重新部署连接的缓存。
访问证书颁发机构 (CA)
你需要访问企业 PKI 或公共 CA。 如果使用企业 PKI,检查组织向 CA 提交 CSR 的要求。
文档客户端连接方法
请注意客户端用于连接到连接的缓存服务器的 IP 地址或主机名 (FQDN) 。 在生成 CSR 的过程中,此值将用作 SAN) 输入 (使用者可选名称。
确保端口 443 可用性
若要与连接的缓存建立 HTTPS 连接,需要在主机上提供端口 443。 运行以下命令以检查:
sudo ss -tulpn | grep :443输出示例 含义 tcp LISTEN 0 128 0.0.0.0:443 0.0.0.0:* users: ( (“nginx”,pid=1234,fd=6) ) 端口 443 处于打开状态,并侦听 nginx) 在此示例中 (传入连接。 在连接缓存可以使用端口 443 之前,需要停止冲突的服务。 无输出 端口 443 未使用或未侦听。 继续执行 HTTPS 设置。 验证防火墙配置
例如,如果防火墙或公司代理 (通过 TLS 检查) 拦截到连接的缓存服务器的 HTTPS 流量,则无论证书配置如何,证书验证都将始终失败。
有关任何先决条件的详细信息,请参阅 Linux 上的 HTTPS 参考页。
(CSR) 生成证书签名请求
重要提示
每个缓存节点都需要自己的 CSR/证书 (无法共享) :
- 使用一致的命名:mcc-node1.company.com、mcc-node2.company.com 等。
- 记录哪个证书属于哪个节点
- 通配符证书不起作用。 出于安全目的,用于 HTTPS 连接到连接缓存的 CSR/证书与每个缓存节点唯一关联。
打开终端并导航到包含提取的部署包的文件夹。
向 CSR 生成脚本添加执行权限:
sudo chmod +x ./generateCsr.sh配置 的参数
generateCsr.sh,并使用指定的值运行脚本。基本语法
sudo ./generateCsr.sh [Required Parameters] [Subject Parameters] [SAN Parameters]必需参数
参数 类型 说明 -algo字符串 证书算法: RSA、EC、ED25519或ED448-keySizeOrCurve字符串 对于 RSA:密钥大小 ( 2048、3072、4096) 。 对于 EC:曲线名称 (prime256v1、secp384r1)-csrName字符串 生成的 CSR 文件的名称 使用者参数
参数 必需 说明 示例 -subjectCommonName是 证书的公用名 "localhost","example.com"-subjectCountry否 双字母国家/地区代码 "US","CA","GB"-subjectState否 省/市/自治区/直辖市/自治区 "WA","TX","Ontario"-subjectOrg否 组织名称 "MyCompany","ACME Corp"警告
使用者可选名称 (SAN) 配置对于证书验证至关重要。 证书必须与客户端连接到连接的缓存的方式完全匹配,否则客户端会绕过缓存节点。
例如,如果客户端通过 IP 地址
192.168.1.100进行连接,但证书只有-sanDns "server.local",证书验证将失败。SAN 参数 (至少一个必需的)
参数 说明 示例 -sanDnsDNS 名称 (逗号分隔) "localhost,example.com,api.example.com"-sanIpIP 地址 (逗号分隔) "127.0.0.1,192.168.1.100"-sanUriURI (逗号分隔) "https://example.com,http://localhost"-sanEmailEmail地址 (逗号分隔) "admin@example.com,user@domain.com"-sanRid已注册的 ID (逗号分隔) -sanDirName目录名称 (逗号分隔) -sanOtherName其他名称 (逗号分隔) 有关 CSR 脚本参数的更多详细信息和基于方案的示例,请参阅 Linux 上的 HTTPS 参考页。
验证 CSR 生成过程是否已成功完成。
如果遇到错误,请在脚本输出中指定的文件夹中找到带时间戳
GenerateCsr.log的文件。 查找以“可在此处找到日志:...”开头的输出行- 文件格式: GenerateCsr_YYYYMMDD-HHMMSS.log
- 例子: GenerateCsr_20251201_143022.log是创建于 2025 年 12 月 1 日下午 2:30:22 的文件
在主机上的 “证书”文件夹中 找到生成的 CSR 文件,并在必要时传输该文件。
在脚本输出中指定 “证书”文件夹 的位置,从“创建于...”的 CSR 文件开始。 目录以 (...\Certificates\certs) 结尾。
签署 CSR
选择公共或企业证书颁发机构 (CA) 以签署 CSR。
重要提示
CA 签名必须与客户端受信任的根存储中的根证书匹配。
大多数客户使用其企业 PKI 基础结构来签署其 CSR。 如果需要使用公共 CA,请考虑以下资源:
将 CSR 提交到所选的 CA 并保存已签名的证书。
已签名证书必须采用 X.509 编码的 .crt 格式。 如果 CA 提供其他格式,检查 Linux 上的 HTTPS 参考页,了解如何转换为 .crt 格式。
注意
连接的缓存 当前不支持密码保护格式 (.pfx、.p12、.p7b) 。 作为证书自动化路线图的一部分,将立即添加对这些的支持。
验证签名证书的格式是否正确。
确认 PEM 编码:
grep "BEGIN CERTIFICATE" xxxx.crt预期成功输出:
-----BEGIN CERTIFICATE-----将已签名的证书移动到 Linux 主机上的 “证书”文件夹 。
这将是在生成 CSR 后最初找到的同一文件夹。
注意
不共享私钥,连接缓存仅需要签名证书。
导入已签名 TLS 证书
打开终端并导航到连接缓存安装程序的位置。
向证书导入脚本添加执行权限:
sudo chmod +x ./importCert.sh配置 的参数
importCert.sh,并使用指定的值运行脚本。基本语法
sudo ./importCert.sh [Required Parameters]必需参数
参数 类型 说明 -certName字符串 带或不带 .crt 扩展名的已签名 TLS 证书的完整文件名 () 例子
sudo ./importCert.sh -certName "myTlsCert.crt"验证导入过程是否已成功完成。
如果遇到错误,请在脚本输出中指定的文件夹中找到带时间戳
ImportCert.log的文件。 查找以“可在此处找到日志:...”开头的输出行- 文件格式: ImportCert_YYYYMMDD-HHMMSS.log
- 例子: ImportCert_20251201_143022.log是创建于 2025 年 12 月 1 日下午 2:30:22 的文件
有关如何进一步验证证书导入的说明,请参阅 Linux 上的 HTTPS 验证页。
禁用 HTTPS 支持
如果需要将连接的缓存还原为仅限 HTTP 的通信,请执行以下步骤。 此过程不会删除“证书”文件夹中的任何内容 - CSR 文件、证书或日志。
在 Linux 主机上,打开终端并导航到包含提取的部署包的文件夹。
向 TLS 禁用脚本添加执行权限:
sudo chmod +x ./disableTls.sh(不需要参数) 运行禁用脚本:
sudo ./disableTls.sh验证禁用过程是否已成功完成。
禁用 HTTPS 后,HTTP 请求应正常工作,而 HTTPS 请求应失败。 有关如何测试此验证的说明,请参阅 Linux 上的 HTTPS 验证页 。