0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

imagemagickを使って画像をアップロードするとSSLが外れてしまう時の対処法

Posted at

minimagickのgemを使って画像をアップロードすると、その画像が表示されるページのSSLマークが外れるという問題が発生したので、その時の解決方法を残します。

##このサイトで目にする画像は、悪意のあるユーザーによって差し替えられたものである可能性があります

###事象
・minimagickのgemを使って画像をアップロードすると、その画像が表示されるページでSSLマーク(鍵マーク)が外れ、びっくりマークに変わる
・びっくりマークをクリックすると「このサイトで目にする画像は、悪意のあるユーザーによって差し替えられたものである可能性があります」のメッセージがでる。

###解決方法
nginxのconfファイルにproxy_set_header X-Forwarded-Proto https;を追記

/etc/nginx/conf.d/hoge.conf
location @app {
 proxy_set_header Host $http_host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Host $http_host;
 proxy_set_header X-Forwarded-Server $hostname;
 proxy_set_header X-Forwarded-Proto https; #この一行を追加
 proxy_set_header X-Real-IP $remote_addr;
 proxy_redirect off;
 proxy_pass http://app_server;
 }

Nginx再起動

systemctl restart nginx

##解決までの流れ

###①画像ファイルへのリンクの確認
この事象はサイト内で使用している画像に、httpアクセスで記述している箇所があると発生するらしいので、デベロッパーツールで画像リンクのプロトコルを確認。
参考:https://stackdesign.jp/how-to-create-ssl-wordpress-site/

→きちんとhttpsになってた。

###②Railsの環境設定を変更
production.rbのconfig.force_ssl = trueを有効にすると、本番環境でSSL通信を強制できるので、コメントアウトを外し設定を有効にして再デプロイ。
参考:https://railsguides.jp/configuring.html

/config/environments/production.rb
config.force_ssl = true

→ページにアクセスできなくなる
メッセージ
・このページは動作していません
・リダイレクトが繰り返し行われました。

→再びコメントアウト

###③nginxのconfファイル修正
HTTPSアクセスであることをX-Forwarded-ProtoでRailsへ通知することでリダイレクトのループを回避する。
参考:https://keruuweb.com/rails-nginx-https%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E3%81%99%E3%82%8B/

/etc/nginx/conf.d/hoge.conf
location @app {

 proxy_set_header X-Forwarded-Proto https; #この一行を追加

 }

→無事に全ページでSSL化が有効になりました

##まとめ

「proxy_set_header X-Forwarded-Proto https;」はリダイレクトのループを回避するための設定で、本来はSSL化をする際に設定しておく必要があったらしい。

SSL化の際にきちんと設定ができていたら、そもそも今回のエラーは生じなかったってことですね、、、

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?