LoginSignup
3
4

More than 3 years have passed since last update.

paiza cloudのHTTPSの制限でハマった

Last updated at Posted at 2019-05-26

概要

PaizaCloudを使うと、簡単に開発環境を構築することができる。有料プランなら、常時公開もできるようになる。
https://paiza.cloud/ja/

Laravel勉強用にPaizaCloudで開発環境を構築していたところ、
HTTPS周りのことでつまずいて、初心者はきっとハマると思うので誰か困った時に参考にしてもらえるように、メモ。

詳しく

php artisan make:auth  // ログイン認証画面を作成
php artisan migrate    // DBに反映
php artisan serve --host=0.0.0.0

これで、ログイン画面ができたので、xxx.paiza-user.cloud:8000 にアクセス。
スクリーンショット 2019-05-26 11.29.19.png

しかし、右上のLOGINを押しても、

Please use HTTPS(SSL) instead of HTTP to access the URL.

と表示され、ログイン画面が表示されない…
ローカル環境ならちゃんと表示されるのに、なぜだ...

なぜなのか

  • ログイン画面へのリンクが、httpで張られていた
  • トップページがhttpsで表示されているので、当然httpsだと思ってリンクがhttpなのに気が付かなかった・・・

  • PaizaCloudで非SSLなアクセスがあった際、

解決策

[コメントを受け、追記]
ここでhttpsとならないのは、X_FORWARDED_PROTO を使った判定をしていないため。

app/Http/Middleware/TrustProxies.php
// 略
class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array|string
     */
    protected $proxies = "*"; // ここに"*"を指定する

    /**
     * The headers that should be used to detect proxies.
     *
     * @var int
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

こちらの記事で詳しく解説されている。
https://qiita.com/yamatox/items/8f3f481d88e807793ad5

以下は、forceSchemeを使う方法。この方法では、扱うURLをhttpsに強制する。

AppServiceProvider bootメソッドでUrlGeneratorクラスforceSchemeメソッドを呼び出して、
アプリ内で扱われるURLを全てhttpsにする。
こうすることで、リンクがhttpsで出力されるようになる。

app/Providers/AppServiceProvider.php
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Routing\UrlGenerator;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(UrlGenerator $url)
    {
        // force to use HTTPS
        $url->forceScheme('https');
    }
}

参考

[Laravel]常時SSLなアプリケーションでのURL生成のベストプラクティスを考える
https://qiita.com/hisash/items/4b3bb1ea47c38b0d8c86

3
4
2

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
3
4