我想將我的Meteor應用程序部署到Heroku,並使其只能通過HTTPS訪問。理想情況下,我想盡可能便宜。如何在Heroku上部署安全(HTTPS)Meteor應用程序?
回答
創建證書
運行這些命令以獲得certbot-auto。 certbot-汽車應該在大多數系統
wget https://dl.eff.org/certbot-auto chmod 755 certbot-auto
工作時,此命令啓動讓你的證書的過程。 -d
標誌允許您傳入您想要保護的域。或者,如果沒有-d
標誌,它將彈出一個提示您輸入域的提示。
./certbot-auto certonly --manual -d app.yoursite.com
然後它會問你下面。不要打入。
Make sure your web server displays the following content at
http://app.yoursite.com/.well-known/acme-challenge/SOME-LENGTHY-KEY before continuing:
SOME-LONGER-KEY
在您的public
文件夾中創建目錄路徑。如果你沒有,創建一個。
mkdir -p public/.well-known/acme-challenge/
然後創建文件SOME-LENGTHY-KEY
並將SOME-LONGER-KEY
裏面
echo SOME-LONGER-KEY > public/.well-known/acme-challenge/SOME-LENGTHY-KEY
提交併推送這個改變你的Heroku應用。
git push heroku master
現在按回車鍵繼續驗證過程。您會收到類似這樣的消息
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/app.yoursite.com/fullchain.pem. Your cert will expire on 2016-04-11. To obtain a new version of the certificate in the future, simply run Let's Encrypt again.
上傳證書
要上傳證書的Heroku,首先啓用SSL貝塔
heroku labs:enable http-sni -a your-app heroku plugins:install heroku-certs
添加您fullchain.pem
和privkey.pem
到Heroku。
sudo heroku _certs:add /etc/letsencrypt/live/app.yoursite.com/fullchain.pem /etc/letsencrypt/live/app.yoursite.com/privkey.pem
您可以驗證該證書與
heroku _certs:info
上傳更改您的DNS設置
更新您的DNS指向app.yoursite.com.herokudns.com
驗證SSL是工作
要檢查是否設置了SSL,請運行以下命令。 -v
爲您提供了詳細的輸出。 -I
僅顯示文檔信息。 -H
將標頭傳遞給URL。我們傳遞的頭部確保緩存未被使用,並確保您獲得新證書而不是舊證書。
curl -vI https://app.yoursite.com -H "Cache-Control: no-cache"
檢查輸出包含以下
* Server certificate: * subject: C=US; ST=CA; L=SF; O=SFDC; OU=Heroku; CN=app.yoursite.com
如果subject
行不包含CN=app.yoursite.com
,等待5〜10分鐘,然後再試一次。如果是這樣,你幾乎可以走了。
讓流星特定更改
要完成這個過程,你會想你的ROOT_URL
環境變量更改爲新的https
版本。
heroku config:set ROOT_URL=https://app.yoursite.com
那麼你要確保你的用戶始終使用SSL與force-ssl
包
meteor add force-ssl
最後,如果你在你的應用程序設置任何的OAuth登錄( Facebook,Google等),您需要爲他們提供您的URL的新版本https
。
更新
運行certbot-auto
再次
./certbot-auto certonly --manual -d app.yoursite.com
它可能提示您輸入內容相同的同一端點。如果是這樣,只需按Enter即可。如果沒有,則需要重複上述步驟。
然後它會創建新的證書文件,這樣你就會上傳到Heroku的與
heroku certs:update /etc/letsencrypt/live/app.yoursite.com/fullchain.pem /etc/letsencrypt/live/app.yoursite.com/privkey.pem
然後確認,運行驗證SSL是工作以上命令
來源
- 1. 部署Meteor + Angular2應用程序到Heroku
- 2. 如何將安全Jersey應用程序部署到Heroku
- 3. 在heroku上部署playframework應用程序
- 4. 在Heroku上部署Sinatra應用程序
- 5. 在Heroku上部署Python應用程序
- 6. 在Heroku上部署Django應用程序
- 7. Laravel - 在Heroku上部署應用程序
- 8. 在Heroku上部署Rails應用程序
- 9. 在Heroku上部署Github應用程序
- 10. 在Heroku上部署Spring應用程序
- 11. 如何在Meteor應用程序上設置安全的websocket(localhost)
- 12. 如何在travis-ci上部署heroku上的rails應用程序?
- 13. 在Heroku上部署應用程序應用程序
- 14. 在Heroku上部署Angul應用程序:應用程序崩潰
- 15. 如何在heroku上使用nodejs(socket.io)部署laravel應用程序
- 16. 的ASP.Net應用程序安全部署
- 17. 將Heroku應用程序部署到Heroku
- 18. 如何在heroku上部署多租戶應用程序?
- 19. 如何在Heroku上部署Laravel 4應用程序?
- 20. 如何在Heroku上部署非縮小代碼應用程序?
- 21. 如何在Heroku上部署Zend Framework應用程序?
- 22. 如何知道在Heroku上部署應用程序Rails 3
- 23. 部署Meteor iOS應用程序
- 24. 在Heroku上安排部署
- 25. 在Heroku中部署rails應用程序
- 26. 部署Rails應用程序在Heroku
- 27. 如何部署線程安全的異步Rails應用程序?
- 28. 在Centos上部署Meteor js應用程序7
- 29. 在Heroku上部署應用程序時不應用BUNDLE_WITHOUT
- 30. 如何部署使用Redis的Meteor應用程序?
是的,這是一個測試版的功能,但它提供給任何人誰願意使用它。 https://blog.heroku.com/announcing_heroku_free_ssl_beta_and_flexible_dyno_hours – merlinpatt
對不起,我不得不刪除我以前的評論,它有我的客戶名稱,它在這裏: 'heroku實驗室:啓用http-sni -a你的應用程序不爲每個人工作,因爲這是一個測試版功能。相反,您可以在'/ etc/letsencrypt/live/yourdomain.com /'文件夾中獲得'fullchain.pem'和'privkey.pem',並將它們手動添加到您的Heroku儀表板中 –
我確認該命令對我無效,來自法國,我有一條消息說該功能不存在或不可用。其他一切工作完美,非常感謝這個答案:) –