我想将我的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仪表板中 –
我确认该命令对我无效,来自法国,我有一条消息说该功能不存在或不可用。其他一切工作完美,非常感谢这个答案:) –