質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

4214閲覧

Railsのproduction環境でSSL化するとCSSとjavascriptが読み込まれません。Mix Content Error

takeotakeo

総合スコア58

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/11/11 14:15

###前提・実現したいこと
現在Ruby on Railsで作成したアプリケーションのSSL化を行っているのですが、httpでアクセスした歳には読み込まれるcssとjavascriptが、httpsでアクセスしたとたん、読み込まれなくなり、途方にくれています。

環境は

  • Rails 4.2 (Ruby 2.2.1)
  • AWS (Linux)
  • nginx (1.10.1)
  • (ssl証明はletsencryptで)
  • ブラウザがchromeでもsafariでも同様の問題が起こる

です。

###発生している問題・エラーメッセージ

html要素は表示されますが、スタイリングがされていないと言う状態です。
chromeのコンソールには、

Mixed Content: The page at 'https://mysite----.jp/' was loaded over HTTPS, but requested an insecure stylesheet 'http://mysite-----.jp/assets/application-f7csdfafdasf9b59e6fd6cc19a9f7b8b0ca4c044e23ce50c9b39893d44.css'. This request has been blocked; the content must be served over HTTPS.``` といったメッセージが複数のcss、javascript、imageに関して表示されています。 これらのURLがhttpsでないことからこのような警告が出ているのだとは理解できましたが、それからどうしたらよいかが分かりません。 ###試したこと * grep "http://" で直書きされている(シェアURLなど)サイト内のすべてのURLを"https"に変更しました。 * [ The Definitive Guide on HowTo Setup and use SSL in Rails 4](http://www.sslendpoint.com/definitive-guide-to-on-how-to-setup-rails-4-and-heroku-ssl-setup.html) を読みました。"If you're exclusively using the Rails Asset Pipeline and serving your static assets directly from your app server everything should just work as, by default, static files are referenced relatively and served from the public/assets directory in production."とあり、私はすべてのimageに関してimage_tag、link_tagを使っていますので、何故うまくいかないのか不思議です。 * [Rails with nginx not serving CSS or JS with HTTPS](http://stackoverflow.com/questions/33671061/rails-with-nginx-not-serving-css-or-js-with-https) を参考に、```config.action_controller.asset_host = "mysite.jp"``` を追加しました。 * 全ての変更のあとに、railsのassets:precompile、nginxのreloadとrestart、rails再起動を行って確認しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/11/12 01:23

css, js を読み込んでいる部分のコードを提示できますか? それができれば詳しい方から、より具体的な回答が得られるのではないかと思います。
takeotakeo

2016/11/12 04:52

有難うございます。environments/production.rbの設定が原因だったようです。
guest

回答3

0

自己解決

みなさま、お答え下さり有難うございました。
production.rb でconfig.asset.compile = true
を追加し、
asset_host をhttpsのURLにしたところ、https: ~~ .css(js) でセキュアな形で読み込まれるようになりました。

投稿2016/11/12 04:51

takeotakeo

総合スコア58

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

config/environments/production.rb で

config.force_ssl = true

してますか?

投稿2016/11/11 22:15

hana-da

総合スコア1728

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hana-da

2016/11/14 00:42

ごめんなさい。何がどう不正確なのか書いておいてもらえた方が他の人のためにもなると思います。はい。
guest

0

まず、このコンテンツに画像は含まれていますか(まず含まれていると思うが)。
エラーの内容としてはhttpsなのにhttpで暗号化されていない、つまりMixed Content: だと警告しています。
ブラウザーのURLの前に鍵マークが出ていますか?恐らく出ていないと思います。httpsであれば表示されます。
もし画像が問題の元凶でない場合、次に疑わしいのはCSSWeb Fontを呼び出す部分。httpの表記はありませんか?
多くの場合、これが元凶の元になっています。

投稿2016/11/11 14:37

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takeotakeo

2016/11/11 14:42

ご回答有難うございます。画像が含まれている状態です。鍵マークはMixed Contentエラーのため、ご指摘の通り表示されておりません。コンパイルされたcssやjavascriptがhttpになっているところまでわかったのですが、どのようにしたらhttps://.....cssにコンパイルされるのでしょうか。 "If you're exclusively using the Rails Asset Pipeline and serving your static assets directly from your app server everything should just work as, by default, static files are referenced relatively and served from the public/assets directory in production."と The Definitive Guide on HowTo Setup and use SSL in Rails 4 に書いてあり、アセットパイプラインでやっているのに上手く行かず途方に暮れております。ご教授頂ければ幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問