2017-12-02 5 views
1

私は自分のサイトにSSL証明書をインストールしました。残念ながら、ログイン機能が壊れています。サイトにログインフォームを送信すると、ホームページにリダイレクトされます。レールログを確認すると、次のエラーが表示されます。Rails SSLの問題:(https://example.com)がrequest.base_url(http://example.com)と一致しません

(https://example.com) didn't match request.base_url (http://example.com) 

ここに私のvirtualhostsファイルがあります。私は何とかSSLを強制する必要があると思いますか?

<VirtualHost *:80> 
    ServerName example.com 
    ServerAlias www.example.com 
    Redirect permanent/https://example.com/ 
</VirtualHost> 

<VirtualHost *:443> 
    ServerAdmin [email protected] 
    ServerName example.com 
    ServerAlias www.example.com 
    SSLEngine on 
    SSLCertificateFile /home/user/sharetribe/lib/certificates/www_example_com.crt 
    SSLCertificateKeyFile /home/user/sharetribe/lib/certificates/example.com.key 
    SSLCertificateChainFile /home/user/sharetribe/lib/certificates/www_example_com.ca-bundle 

    ProxyRequests Off 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
    ProxyPass/http://localhost:3000/ 
    ProxyPassReverse/http://localhost:3000/ 
</VirtualHost> 

答えて

1

同じエラーで実行してください。厳密にこの問題に関連していない

config.force_ssl = true 

ますが、この設定を設定した後、あなたのリバースプロキシは、(あなたは1を持っている場合)に使用されるプロトコルを転送するように設定されていることを確認する必要があります。config/environments/production.rbであなたが設定されていることを確認してくださいプロキシからヘッダーにX-Forwarded-Protoヘッダーを送信して、レールに接続します。これが行われる方法は、使用しているリバースプロキシ(Apache、nginxなど)とそれをどのように設定したかによって異なりますので、使用しているリバースプロキシの特定のドキュメントを調べることをお勧めします。

+0

私は明日にそれを得ることができますそれをチェックします。 –

+0

応答が遅れて申し訳ありません。それは私にリダイレクトエラーが多すぎます。 –

+0

あなたのゲートウェイ設定にエラーがあります。あなたのゲートウェイ(nginx、apache)は、どのプロトコルが使用されているかをレールに知らせないため、あなたがhttpを使用していると思って、あなたがすでにいる場所にあなたをリダイレクトしようとします。 https://stackoverflow.com/questions/16223470/nginx-can-not-forward-the-request-protocol-correctly-to-upstream – Qwertie

関連する問題