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

知識庫

在 Heroku SSL 安裝 SSL 證書

Heroku正在逐步淘汰SSL端點,並用一個新功能取而代之:Heroku SSL。Heroku SSL是一個免費功能,允許針對自定義域名管理SSL/TLS加密,並依賴於伺服器名稱指示(SNI)。請注意,Heroku SSL目前僅在Heroku付費計劃中提供。

不過,SSL端點仍然可用於需要舊版客戶端和瀏覽器兼容性的情況。如果您希望從SSL端點遷移到Heroku SSL,隨時可以參考這篇Heroku指南。


前提條件

完成激活和驗證步驟後,您的證書將被發放,您可以繼續進行SSL安裝。為了通過Heroku SSL安裝SSL證書,應使用以下文件:

  • 為您的域名發放的SSL證書文件,例如擁有.crt或.pem擴展名的文件。
  • CA捆綁文件,這是一串證書,通常安裝它是為了讓瀏覽器確認該證書是由受信任的證書頒發機構發放的,通常它與證書本身一起提供,文件擁有.ca-bundle擴展名。證書發放後,可以從ZTABOX電子郵件下載證書及其捆綁。
  • 相應的私鑰文件,擁有.key擴展名。您的私鑰在生成證書的CSR代碼時一起生成。(這與CSR代碼相似,看起來是由數行隨機符號組成。)該代碼以'----BEGIN RSA PRIVATE KEY-----'開頭並以'-----END RSA PRIVATE KEY-----'結尾。

對於Heroku,將證書和CA捆綁合併為一個文件是必要的。您可以使用任何純文本編輯器打開.crt和.ca-bundle文件,將.ca-bundle文件中的代碼粘貼到.crt文件中的代碼下面(確保代碼之間沒有空格)。

在相應的命令行中,您可以使用以下命令合併文件:

cat yourcertificate.crt bundle.ca-bundle > server.crt

您也可以使用這個工具創建合併文件:這裡。只需將您的證書代碼粘貼到框中 > 單擊“解碼” > 然後在“捆綁(Nginx)”字段中下載文件。


通過Heroku儀表板安裝

要在Heroku儀表板中安裝證書,打開證書,從列表中選擇所需的應用程序,然後選擇“設置”標籤。

然後,向下滾動頁面,在“域名和證書”部分單擊“配置SSL”。

在出現在您屏幕上的窗口中,從列表中選擇“手動”,然後單擊“繼續”。在第一個屏幕中,簡單地將合併的證書+捆綁文件拖放到框中,然後單擊“繼續”。之後,對私鑰文件執行同樣的操作。

也可以手動粘貼代碼(使用框中的“直接粘貼文件內容”選項)。您可以使用任何文本編輯器(如Windows的Notepad或Mac的TextEdit)打開文件,複製內容並粘貼到框中。

完成後,Heroku會提醒您更新自定義域/子域的DNS記錄。您將需要使用顯示的值創建一個CNAME記錄。“主機”值(“名稱”等)是您的域/子域,“目標”值(“指向”等)是yourdomain/subdomain.herokudns.com。

基本上,您需要遵循這個模式:

yourdomain.com CNAME yourdomain.com.herokudns.com

www.yourdomain.com
CNAME www.yourdomain.com.herokudns.com

確保DNS配置完成後,單擊“我已完成這個”,然後單擊“繼續”。請注意,DNS全局更新可能需要一段時間。

就這樣,您的域現在可以通過HTTPS訪問。您可以使用這個工具來驗證安裝。


通過CLI安裝

另一種安裝證書的方法是通過命令行。

這個過程相當簡短。使用heroku certs:add server.crt server.key命令將證書+捆綁(如前一節的“前提條件”所述)和私鑰文件上傳到Heroku。

如果沒有默認的Heroku應用,您還需要使用--app標誌指定該應用,因此命令將如下所示:heroku certs:add server.crt server.key --app yourappname

要檢查當前是否安裝了正確的證書,您可以運行heroku certs:info命令。

請注意,在添加證書時,您可能會遇到“內部伺服器錯誤”。原因可能是您正在使用過時版本的Heroku CLI。在這種情況下,您可以檢查CLI安裝,並使用heroku update命令將其更新到最新版本,或重新安裝CLI本身。


移除證書

如果您需要移除證書,可以通過相同的菜單來完成。導航到“域名和證書” > 單擊“配置SSL” > 選擇“移除” > 單擊“繼續” > 輸入您的應用名稱,然後單擊“移除SSL”。

要使用命令行移除證書,只需運行命令heroku certs:remove並輸入應用名稱以進行確認。


更新證書

當您需要用另一個證書替換已安裝的證書時(例如證書被重新發行、您收到了全新的證書或者是時候更新),在Heroku儀表板的安裝過程將與之前完全相同。

對於命令行,唯一的區別是:您需要使用heroku certs:update命令而不是heroku certs:add,因此看起來將是:heroku certs:update server.crt server.key

此外,我們建議設置HTTPS重定向,以便網站只能通過安全的HTTPS連接訪問。

然而,在Heroku的情況下,此設定將取決於您用於構建應用的編程語言、框架和工具,並沒有通用的方式來設置HTTPS重定向以確保適用於所有應用。