OpenShift和Jekyll Cartridge Force SSL

时间:2014-08-10 23:42:48

标签: ssl openshift jekyll

我在Jekyll Cartridge上使用OpenShift上的应用程序,但是在顶部运行octopress(我认为差异相同)。

我想自动将所有HTTP请求重定向到HTTPS。因此,它只能通过HTTPS查看。

我没有看到使用墨盒在Jekyll上使用墨盒在OpenShift上执行此操作的方法。我可以通过修改我的config.ru文件在本地完成,但这对OpenShift没有影响。有没有办法强制我的申请?

2 个答案:

答案 0 :(得分:1)

如果你的应用程序是由apache提供的,你可以尝试在你的root上放一个.htaccess文件,其中包含:

RewriteEngine on  

RewriteCond %{HTTP:X-Forwarded-Proto} !https  
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]  

来自openshift kb

答案 1 :(得分:1)

我设法解决了这个问题,我对它作为一个"解决方案"并不太满意,但它确实有效,所以我发布了它。

Jekyll墨盒似乎使用WEBrick作为网络服务器,而我无法控制它以使其强制执行SSL。

基本上我基于" Ruby 1.9"制作了一个新的应用程序。墨盒,而不是Jekyll墨盒。这给了我一个apache托管的应用程序。然后,我必须使用David先前建议的.htaccess文件,在我的octopress博客的源(!)文件夹中:

RewriteEngine on  

RewriteCond %{HTTP:X-Forwarded-Proto} !https  
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]  

这就是诀窍。我不认为它是一个理想的解决方案,所以欢迎所有更好的解决方案。

这里我详细介绍了从Jekyll墨盒转移到Ruby 1.9墨盒的所有内容:

  1. 使用Ruby 1.9 Cartridge创建一个新的openshift应用程序
  2. 将新的openshift应用程序的git repo克隆到本地文件夹
  3. 将原始存储库中的所有文件复制到此新存储库
  4. 使用Jekyll(rake generate)重新生成
  5. 添加并提交所有内容
  6. 然后推送到openshift(这应该会导致博客像以前一样工作)
  7. 与github repo合并(git pull)
  8. 将github添加为远程(并处理一些小错误)
  9. 现在我可以在我的仓库工作并执行" git push" (对于openshift)和" git push"。

    强制使用SSL:

    1. 在"来源"中创建.htaccess文件我的octopress博客的文件夹并重新生成。
    2. 注意:现在我必须确保" rake generate"在我推送到openshift之前(虽然我想我可以在更新后的openshift中自动执行此操作)。