我试图规避Heroku的SSL政策,它强制您为每月20美元的附加费支付费用。了解最佳路线是获得附加组件,我想知道用sinatra无法实现的附加组件吗?不会向服务器请求证书就像向服务器发送请求并因此被sinatra处理?有什么不同,使得不可能实现?如何在sinatra上设置SSL证书
回答
因此,如果您通过herokuapp.com域访问您的应用程序,那么,heroku over ssl实际上是免费的。如果您想通过自定义域中的ssl为您的应用提供服务,则只需为附加组件支付费用。由于heroku应用程序由nginx代理(具有默认的* .herokuapp.com证书),因此在自定义域中创建dns记录而不购买插件会导致证书不匹配,并在人们试图访问您的网站时显示胖警告。该插件允许您添加自定义证书,以便证书与CNAME记录匹配。
虽然有一个免费的解决方法,正如@seph所说,Cloudflare对于这种情况非常有用,因为它是通用SSL提供。如果您在没有严格SSL检查的情况下将SSL设置为“完整”并强制执行HSTS(检查仪表板中的加密标签),那么您可以对您的heroku实例执行安全代理,并忽略任何证书不匹配,同时仍然具有完整的端到端加密。
另外,我想,回应特定的“为什么我不能只发送证书使用Sinatra“(这真的是Puma/Unicorn/Webrick /一些其他Rack服务器) - 这是因为nginx代理,所有通往您应用程序的网络流量都会通过heroku控制的服务器路由到您的应用程序之前,这是这些证书真正重要的服务器。 – photoionized
那么理论上我不能把我的自定义域名提供者的证书? – thesecretmaster
@thesecretmaster - 域名提供商是指你的DNS提供商吗? DNS和代理服务器是两个完全不同的东西 - Cloudflare恰好恰好将两者与通用SSL混合在一起。如果你想在没有Cloudflare之类的情况下做到这一点,你可以将证书放在你自己的代理服务器上,并让它工作,但此时你必须拥有一台你拥有和管理的服务器......这样的失败使用Heroku的目的... – photoionized
- 1. 如何为Express v4.13设置SSL证书?
- 2. 如何使用ssl证书设置iis?
- 3. SslStream的SSL证书设置
- 4. lua nginx ssl证书设置
- 5. 如何在单个网页上设置2个SSL证书
- 6. 如何在Sinatra中设置验证?
- 7. SSL设置:忽略客户端证书
- 8. Apache反向代理设置SSL证书
- 9. 设置SSL(自签名证书)和Tomcat
- 10. 如何在.NET中为SSL连接设置测试证书?
- 11. Powershell - 在https绑定上设置SSL证书
- 12. 如何配置默认SSL证书在Windows Azure上
- 13. 如何在Tomcat 6上配置SSL证书?
- 14. 如何在Heroku上配置基于主机名的ssl证书?
- 15. 如何在python中验证SSL证书?
- 16. 如何启用和接受HTTPS连接并在GCE上设置SSL证书
- 17. 如何链接SSL证书
- 18. 如何为express.js服务器设置SSL证书?
- 19. SSL证书链上web.py
- 20. 如何为Apache上的虚拟主机设置不同的SSL证书?
- 21. SSL证书认证
- 22. 如何在Perl中链接SSL证书?
- 23. 如何在Java中加载SSL证书
- 24. 如何验证SSL Java证书
- 25. 你如何验证数字证书SSL?
- 26. Cloudflare SSL证书
- 27. SSL证书
- 28. SSL证书域
- 29. SSL证书Socket.io
- 30. SSL证书
请在下面检查链接,它可能会对您有所帮助。 http://stackoverflow.com/questions/3696558/how-to-make-sinatra-work-over-https-ssl – rajeev