知识库

在 Microsoft Azure Web App 安装 SSL 证书

SSL证书应该被激活、验证并安装在服务器上。若使用Azure,您需要将其上传到Azure门户。SSL证书可以从电子邮件中下载;它应转换为包含私钥的PKCS#12 (PFX) 格式。

如果您在Windows服务器上为证书激活生成了CSR代码,则需要完成以下步骤以获得PFX文件:

  1. 通过IIS管理控制台完成证书请求。
  2. 使用MMC或IIS管理控制台导出PFX文件。这两个选项的详细信息在这里描述。

如果您拥有SSL证书、私钥和CA捆绑文件并且它们是PEM格式的独立文件,可以使用这个工具将其转换为PFX。

此外,如果您拥有基于Linux的终端,还可以使用以下OpenSSL命令将SSL证书转换为所需格式:

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.key -in certificate.crt -certfile CA_bundle.crt

获得PFX文件后,您可以将其上传到Azure门户,以便将其分配给您的Web应用:

azur1

上传后,应采取以下步骤配置安全的HTTPS连接。

  • 转到App Services,选择您的应用名称,然后在设置部分点击SSL证书:
  • azur2

  • 您应能在列表中看到您的SSL。下一步是为您希望使用SSL证书保护的域设置绑定。单击“添加绑定”以继续:
  • azur3

  • 在“添加绑定”面板上,选择您希望保护的域名。您也可以选择使用服务器名称指示(SNI)或基于IP的SSL。单击“添加绑定”按钮以完成证书安装:
  • azur4

注意:基于IP的SSL将您的服务器的公共IP地址分配给域名。这个选项要求每个域都有专用的IP。

SNI SSL允许多个域共享相同的IP地址,每个域名使用单独的证书。大多数现代浏览器(包括Internet Explorer、Chrome、Firefox和Opera)支持SNI;但是,较旧的浏览器如Internet Explorer 6、Mozilla Firefox 2.0或更早版本可能不支持。欲了解有关服务器名称指示技术的更多信息,请查看这篇文章

如果使用SNI SSL选项,则不需要采取任何其他步骤。如使用基于IP的SSL绑定,App Service将为该绑定创建专用IP地址,因为基于IP的SSL需要这个。

如果您使用A记录将自定义域指向Azure应用,并且刚添加了基于IP的SSL绑定,您将需要在域的DNS设置中使用分配给该域的新IP地址更新现有的A记录。

您可以在应用程序的自定义域页面上找到此IP地址,该页面位于设置的Hostnames部分上方。它将被列为外部IP地址:

azur5

证书现在已安装在服务器上。您可以通过在浏览器中打开域名并指定安全协议来检查它:https://< your_domain >。

证书安装也可以通过OpenSSL命令来验证:

openssl s_client -showcerts -connect < your_domain >:443 -servername < your_domain > -showcerts

或者,您也可以使用这个在线SSL 检查工具

为Azure Web App强制HTTPS

为了设置自动HTTPS复位向以实现安全连接,需在.web.config文件中添加特别的复位向规则。默认情况下,它位于以下活页夹D:homesitewwwroot中。可以通过位于https://< appname >.scm.azurewebsites.net/DebugConsole的Kudu调试控制台修改该文件。


重写规则应在< rules > < /rules >卷标之间添加:

< rule name="Force HTTPS" enabled="true" >
< match url="(.*)" ignoreCase="false" / >
< conditions>
< add input="{HTTPS}" pattern="off" / >
< /conditions >
< action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
appendQueryString="true" redirectType="Permanent" / >
< /rule >

在应用复位向后,任何在浏览器中输入example.com或www.example.com的人将自动被复位向到https://example.com。