本教程介绍如何在 Microsoft Azure 上为 Web 应用(Azure App Service)安装 SSL 证书。
如何为 Microsoft Azure 生成 CSR 代码
与大多数服务器平台不同,Azure 不允许你从其界面生成 CSR。由于 App Service 是一个托管云平台,你只能上传一个完整的证书(作为单个 .pfx 文件),而不能在服务器本身上创建密钥对。
因此,你需要在其他地方生成 CSR(以及私钥),然后将所有内容打包成 .pfx 文件。在 Windows 上最简单的方法是使用 IIS(Internet Information Services)管理器:在其中创建 CSR,用已签发的证书完成请求,然后将其(包括私钥)导出为 .pfx。请按顺序遵循以下两份指南:
- 参考我们的如何在 IIS 中生成 CSR指南来生成 CSR 并完成请求。请选择与你机器上的 IIS 版本相匹配的步骤。
- 证书安装到 IIS 后,将其导出为 PFX 文件(包含私钥)。这个 .pfx 文件就是你要上传到 Azure 的文件。
更喜欢使用命令行?你也可以用 OpenSSL 来生成 CSR 和 .pfx 文件。请参见下面的第 2 步,了解 Azure 所需的确切导出命令。
如何在 Azure 上为 Web 应用安装 SSL 证书
在将第三方 SSL 证书上传到 Azure Web 应用之前,请确保它符合 Azure App Service 的要求:
- 证书以受密码保护的 .pfx 文件形式导出,并使用三重 DES 加密。
- 私钥长度至少为 2048 位。
- 证书链中包含所有中间证书和根证书。
- 对于 TLS/SSL 绑定,证书需包含扩展密钥用法:服务器身份验证属性(OID 1.3.6.1.5.5.7.3.1)。
计划要求:并非每个 App Service 计划都支持自定义证书。你需要使用基本(Basic)、标准(Standard)、高级(Premium)或隔离(Isolated)层级。免费层和共享层无法保存上传的证书或 TLS 绑定。
第 1 步:准备待上传的证书
证书颁发机构签发证书后,下载 ZIP 压缩包并解压到你的计算机上。如果服务器证书、中间证书和根证书是以独立文件的形式提供的,请先将它们合并为一个文件:
- 用纯文本编辑器打开每个证书。
- 创建一个名为 mergedcertificate.crt 的新文件。
- 将每个证书的内容按以下确切顺序粘贴进去:服务器证书 → 中间证书 → 根证书。
合并后的文件应如下所示,每个块的两侧都用五个连字符包围,块之间没有空行:
-----BEGIN CERTIFICATE-----
(your server certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(intermediate certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(root certificate)
-----END CERTIFICATE-----
第 2 步:将证书导出为 PFX 格式
Azure 只接受一个受密码保护的 .pfx 文件,其中包含证书、证书链和私钥。如果你已经在 IIS 中安装了证书,请参照我们的如何在 IIS 中将证书导出为 PFX 文件指南操作。
如果想通过命令行创建 .pfx 文件,可以使用 OpenSSL:
openssl pkcs12 -export -out myserver.pfx
-inkey <private-key-file>
-in <merged-certificate-file>
-keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1
将 <private-key-file> 替换为你的私钥文件,将 <merged-certificate-file> 替换为第 1 步中合并的证书文件;OpenSSL 会提示你设置导出密码。-keypbe PBE-SHA1-3DES、-certpbe PBE-SHA1-3DES 和 -macalg SHA1 参数会强制使用 Azure 所要求的三重 DES 加密。这些参数在 OpenSSL 3.x 中是必需的,因为该版本默认不再使用旧版的 3DES 算法。如果不加这些参数,Azure 会拒绝上传。
第 3 步:将证书上传到 App Service
现在,在 Azure 门户中将 .pfx 文件添加到你的 Web 应用:
- 登录 Azure 门户,并打开你的 App Service(Web 应用)。
- 在左侧菜单中,转到证书 → 自带证书 (.pfx) → 添加证书。
- 选择上传证书作为来源,选中你的 .pfx 文件,并输入 PFX 密码。
- 为证书起一个便于识别的名称,然后选择验证,验证通过后再选择添加。
此时证书会出现在自带证书 (.pfx)下,但它还没有开始提供服务。你仍需将它绑定到一个域名。
第 4 步:创建 TLS/SSL 绑定
绑定才是真正为你的自定义域名启用 HTTPS 的操作。没有绑定,上传的证书不会起任何作用。
- 在同一个 App Service 中,打开自定义域,然后选择添加绑定(针对你想要保护的自定义域)。
- 选择该域名以及你刚上传的证书。
- 选择 TLS/SSL 类型(大多数应用选择SNI SSL;如果需要在标准层或更高层使用专用 IP,则选择基于 IP 的 SSL),然后选择添加绑定。
就这样。现在,你的 Azure Web 应用会在绑定的域名上提供 HTTPS 服务。要确认证书已生效且证书链完整,可以使用我们的SSL Checker检测你的网站,或者直接打开网站查看地址栏的锁形图标。
在哪里购买适用于 Microsoft Azure 的 SSL 证书
购买适用于 Azure 的 SSL 证书的最佳选择是 SSL Dragon。我们在整个 SSL 产品系列中提供具有竞争力的价格、常规折扣和超值优惠。我们精心挑选了市场上最优质的 SSL 品牌,为你的 Web 应用提供强大、受浏览器信任的加密保护。我们所有的 SSL 证书都与 Microsoft Azure App Service 兼容。
常见问题
不可以。Azure App Service 不会生成 CSR 或私钥。你需要在其他地方创建 CSR(最简单的方式是在 Windows 上使用 IIS 管理器,或使用 OpenSSL),在那里完成证书的签发,然后将其导出为一个受密码保护的 .pfx 文件,再上传到 Azure。
App Service 是一个托管平台,它将证书、完整的证书链和私钥作为一个整体对象导入。.pfx(PKCS#12)格式将所有这些内容打包到一个受密码保护的单一文件中,因此这是上传时唯一接受的格式。导出时请确保包含私钥。
上传证书只是将其存储起来,并不会激活 HTTPS。你还需要在自定义域 → 添加绑定中创建一个 TLS/SSL 绑定,将证书与你的自定义域关联,并选择SNI SSL 或基于 IP 的 SSL。在绑定创建之前,证书不会被启用。
OpenSSL 3.x 默认已经不再使用旧版的三重 DES 算法,但 Azure 仍然要求使用 3DES 加密的 .pfx 文件。请在 openssl pkcs12 -export 命令中添加明确的参数 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1 重新导出(参见第 2 步),这样上传就会成功。
你需要使用基本(Basic)、标准(Standard)、高级(Premium)或隔离(Isolated)层级。免费层和共享层不支持上传证书或添加 TLS/SSL 绑定,因此如果你的应用处于这两个层级,请先升级计划。

