bg-tutorials

如何在Azure上安装SSL证书

本教程介绍如何在 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 应用:

  1. 登录 Azure 门户,并打开你的 App Service(Web 应用)。
  2. 在左侧菜单中,转到证书 → 自带证书 (.pfx) → 添加证书
  3. 选择上传证书作为来源,选中你的 .pfx 文件,并输入 PFX 密码。
  4. 为证书起一个便于识别的名称,然后选择验证,验证通过后再选择添加

此时证书会出现在自带证书 (.pfx)下,但它还没有开始提供服务。你仍需将它绑定到一个域名。

第 4 步:创建 TLS/SSL 绑定

绑定才是真正为你的自定义域名启用 HTTPS 的操作。没有绑定,上传的证书不会起任何作用。

  1. 在同一个 App Service 中,打开自定义域,然后选择添加绑定(针对你想要保护的自定义域)。
  2. 选择该域名以及你刚上传的证书。
  3. 选择 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 中生成 CSR 吗?

不可以。Azure App Service 不会生成 CSR 或私钥。你需要在其他地方创建 CSR(最简单的方式是在 Windows 上使用 IIS 管理器,或使用 OpenSSL),在那里完成证书的签发,然后将其导出为一个受密码保护的 .pfx 文件,再上传到 Azure。

为什么 Azure 要求使用 .pfx 文件,而不是分开的 .crt 和 .key 文件?

App Service 是一个托管平台,它将证书、完整的证书链和私钥作为一个整体对象导入。.pfx(PKCS#12)格式将所有这些内容打包到一个受密码保护的单一文件中,因此这是上传时唯一接受的格式。导出时请确保包含私钥。

我已经上传了证书,但网站仍显示“不安全”,为什么?

上传证书只是将其存储起来,并不会激活 HTTPS。你还需要在自定义域 → 添加绑定中创建一个 TLS/SSL 绑定,将证书与你的自定义域关联,并选择SNI SSL基于 IP 的 SSL。在绑定创建之前,证书不会被启用。

为什么 Azure 拒绝我用 OpenSSL 3 导出的 .pfx 文件?

OpenSSL 3.x 默认已经不再使用旧版的三重 DES 算法,但 Azure 仍然要求使用 3DES 加密的 .pfx 文件。请在 openssl pkcs12 -export 命令中添加明确的参数 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1 重新导出(参见第 2 步),这样上传就会成功。

我需要哪种 App Service 计划才能安装 SSL 证书?

你需要使用基本(Basic)标准(Standard)高级(Premium)隔离(Isolated)层级。免费层和共享层不支持上传证书或添加 TLS/SSL 绑定,因此如果你的应用处于这两个层级,请先升级计划。

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

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

龙飞行的详细图像
撰写人

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