I持って強制SSLためHerokuの(生産)に正常に動作します次のコード:のnginxとSSL施行
# /config/routes.rb
scope protocol: 'https://', constraints: { protocol: 'https://' } do
resource :user
resource :session
end
私はセットアップにSSLでのnginxと乗客を使用して開発マシンをしようとしていますしかし、私が取得:HTTPSを使用してアプリケーションの他のセクションへの参照時に
Action Controller: Exception
No Route Matches [GET] "/session/new"
は私がChromeで緑のSSLを取得するので、SSLが機能している表示されます。なんらかの理由で、ルートを強制することは正しく一致しません。私のnginx.conf
は:
worker_processes 4;
events {
worker_connections 1024;
}
http {
gzip on;
sendfile on;
include mime.types;
ssl_certificate cert.crt;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
keepalive_timeout 60;
rack_env development;
passenger_user kevin;
passenger_root /Users/kevin/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.9;
passenger_ruby /Users/kevin/.rvm/wrappers/default/ruby;
server {
listen 80;
listen 443 ssl;
server_name local.demo;
location/{
root /Users/kevin/Sites/demo/public;
passenger_enabled on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Proto https;
}
}
}
どのように修正するのですか?
[rack-ssl](http://rubygems.org/gems/rack-ssl)などのミドルウェアを使用しない理由は何ですか?あなたのクッキーがまったくSSLなしで渡されている場合は、とにかくファイアシープスタイルの攻撃に脆弱です。 – codatory
@codatory彼らはすべてのルートでSSLを強制します(私は特定のルートでのみSSLが必要です)。 –
SSLの有無にかかわらず直接ナビゲートするとエラーが発生しますか? –