LaravelとCloudinaryでSSL・httpsを使いたい!!!

LaravelとCloudinaryでSSL・httpsを使いたい!!!

Laravelで開発しているアプリで、Herokuをデータベースとして、Cloudinaryを画像ストレージとして利用しているのですが、今回はCloudinaryの画像たちがhttp://という形になってしまい

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

と、まあ随分恐ろしく仰々しいアラートをされたので、これはなおさなくては信用問題に関わると思ってなおしました。

流れとしては、

  1. 画像をCloudinaryにアップロード
  2. 生成されたURLを取得
  3. HerokuのデータベースにURLを保存

もとはこれでした

これをコントローラー内で保存時に行なっていました。

これで画像のURLを取得でき、srcに書き込むと正常に表示されたのでおっけーだ。と思っていました。

でも、サーバーにアップしてSSL化をしたときに、どうしても冒頭のアラートが消えず。

そこで原因を探ってみるとCloudinaryからとってきてる画像たちがhttp://だった。

困った。

httpでもhttpsでもなんでもいいじゃんかと思いましたが、これでは訪問者を不安にさせてしまうので、httpsで画像がとってこれるようにしようと決心しました。

結果としては

$url = Cloudder::getResult()[‘url’];

の部分を

$url = Cloudder::getResult()[‘secure_url’];

とすることでhttpsバージョンのURLを取得することができました。

これをデータベースに保存するようにしておけば問題なくhttps://の画像が取得でき、大げさなアラートも表示されないでしょう。

Cloudder::getResult()[‘secure_url’]でセキュアなURLを取得できる

これからすでにデータベースに溜まったhttp://をhttps://に書き換える作業に入ります。

非常に憂鬱です。プログラミングなんて嫌いだ。

以上です。

プログラミングカテゴリの最新記事