在Heroku上安裝SSL之前,請確保您擁有所有必要的文件:
- 主證書文件,擁有.crt擴展名(您可以從證書頒發機構發出的電子郵件中下載此文件)
- CA捆綁文件(您可以與證書一起下載此文件)
- 與CSR一起生成的私鑰文件(在第一步中生成的 生成CSR的說明)
注意:安裝過程涉及在Heroku上為您的應用購買SSL端點(Heroku SSL端點是一項付費服務,費用為每月$20),導入證書文件和DNS配置。
!請注意,可以通過Heroku SSL選項免費安裝證書。為了做到這一點,請使用以下命令:heroku certs:add example.crt example.key
完成後,請根據需要更新每個域的DNS設置。
*如果您的應用已啟用SSL端點附加組件以遷移到免費選項,您還需要使用標誌--type sni。
注意:如果您的證書已重新發行或續期,您可以使用以下命令在Heroku上更新它:heroku certs:update server.crt server.key
請確保使用新證書和新密鑰。
1. 通過在本地環境的終端中運行以下命令來創建SSL端點:
$ heroku addons:create ssl:endpoint
2. 將.crt文件上傳到應用的同一SSL目錄,並使用以下命令將主證書和CA捆綁合併為一個單獨的文件:
$ cat example.crt bundle.crt > server.crt
3. 使用以下命令將證書和私鑰導入端點:
$ heroku certs:add server.crt server.key
您將在輸出中看到證書的詳細信息和分配給您的SSL端點的主機名稱:
將SSL端點添加到example...完成
example現在由 example-2121.herokussl.com. 提供服務
證書詳細信息:
到期時間:
發行者:
開始時間:
注意:創建端點可能需要長達30分鐘(在罕見情況下可能需要2小時)。
4. 當您的SSL端點創建後,必須將請求引導到端點主機名稱。如果您尚未將域添加到應用中,現在可以使用以下命令進行添加:
$ heroku domains:add www.example.com
將www.example.com添加到example...完成
要將請求引導到端點主機,請創建CNAME記錄:
記錄類型 名稱 目標
CNAME www example-2121.herokussl.com
給通配符證書的相似記錄:
記錄類型 名稱 目標
CNAME * example-2121.herokussl.com
重要:為根域設置CNAME記錄(@)將覆蓋該域設置的所有其他記錄。因此,您需要證書涵蓋子域名(www.example.com、sub.example.com、*.example.com),以便能夠為子域名創建CNAME。
僅在您使用提供CNAME類似功能的DNS提供商時,才能使用針對裸域(example.com)發出的證書。
ZTABOX提供的所有單域證書都覆蓋www.example.com和example.com,無論您使用哪一個作為證書的通用名稱。
就這樣!您的證書現在已配置,您可以通過https訪問子域。要檢查證書是否正確安裝,請使用以下任一檢查器:
注意:本文中描述的SSL端點附加組件僅建議用於支持舊版Heroku應用或需要自定義安全策略的應用。這裡是使用Heroku SSL選項進行SSL安裝的指南。