Select another language to continue browsing and purchasing services in English.

知識庫

在 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。