PHP・Laravelで作成したアプリをAWSのEC2へデプロイする際に、本番環境では常にHTTPS通信を行うことになると思います。
何も設定しないとHTTP通信になってしまうので、この記事ではLaravelをセキュア(=暗号化)な状態で通信するための設定を記載します。
環境の設定
'env' => env('APP_ENV', '〇〇〇'),
〇〇〇の箇所について、開発環境の場合(ローカルで開発する際)はlocal、本番環境の場合(デプロイする際)はproductionにしてください。
ここを設定することで、開発環境か本番環境のどちらか切り替えることができます。
URLをhttpsにする
AppServiceProvider.phpを下記のように追記してください。
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\URL; //追記
class AppServiceProvider extends ServiceProvider
{
    //略
    public function boot()
    {
        // ここから追記
        if (config('app.env') === 'production') {
            URL::forceScheme('https');
        }
        // ここまで追記
    }
}
これで開発環境の時のURLがhttp、本番環境の時のURLがhttpsになりました。
本番環境において、httpでアクセスされた際にhttpsへリダイレクトさせるための処理
middlewareの作成
次のコマンドを実行してmiddlewareを作成します。RedirectToHttpsの箇所はご自身が作りたいクラス名を記載してください。
$ php artisan make:middleware RedirectToHttps
作成されたRedirectToHttps.phpを下記のように追記してください。
<?php
namespace App\Http\Middleware;
use Closure;
class RedirectToHttps
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // ここから追記
        //このhandleメソッドで判別
        if (!$this->is_ssl() && config('app.env') === 'production') {
            return redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
        }
        // ここまで追記
        return $next($request);
    }
    // ここから追記
    //Webサーバー毎にキーと値で判別
    public function is_ssl()
    {
        if (isset($_SERVER['HTTPS']) === true) { // Apache
            return ($_SERVER['HTTPS'] === 'on' or $_SERVER['HTTPS'] === '1');
        }
        elseif (isset($_SERVER['SSL']) === true) { // IIS
            return ($_SERVER['SSL'] === 'on');
        }
        elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) === true) { // Reverse proxy
            return (strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) === 'https');
        }
        elseif (isset($_SERVER['HTTP_X_FORWARDED_PORT']) === true) { // Reverse proxy
            return ($_SERVER['HTTP_X_FORWARDED_PORT'] === '443');
        }
        elseif (isset($_SERVER['SERVER_PORT']) === true) {
            return ($_SERVER['SERVER_PORT'] === '443');
        }
        return false;
    }
    // ここまで追記
}
Kernel.phpに登録
先程作成したRedirectToHttps.phpの内容を反映させるために、Kernel.phpのprotected $middlewareに追記します。
    // 略
    protected $middleware = [
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\RedirectToHttps::class, // 追記
    ];
    // 略
補足
全プロキシを信用
全プロキシを信用するために、TrustProxies.phpに*を追記します。
protected $proxies = '*';
詳細は信用するプロキシの設定を確認してください。
CSSを反映させる
URLがhttpsになると、CSSが適用されません。
assetをsecure_assetにすることで反映されます。
app.blade.phpのheaderタグにおいて、CSSを適用している箇所をこのように書き換えると良いと思います。
    @if(config('app.env') === 'production')
        <link rel="stylesheet" href="{{ secure_asset('css/app.css') }}">
    @else
        <link rel="stylesheet" href="{{ asset('css/app.css') }}">
    @endif
開発環境(http)の時はasset、本番環境(https)の時はsecure_assetにすることで、CSSが通常通り反映されます。
AWS側の設定
SSL証明書の作成、ロードバランサー、セキュリティーグループ等の設定が必要になります。
この記事がとてもわかりやすかったので、共有しておきます。
一点補足することがあります。
上記の記事ではロードバランサーの作成において、最後にターゲットの確認をして、Health statusがhealthyになっています。
しかし、URLをhttpからhttpsへリダイレクトさせると、Health statusがunhealthyになってしまします。
unhealthyになっていても通常通り動くので、大した問題ではありません。
ただ、unhealtyが気になる方は、下記の設定を行うことでhealthyになります。
1.ターゲットグループを選択
2.Health CheckのEditをクリック
3.Advanced health check settingsのSuccess codesに302を追加し、Save changesをクリック

参考記事
Laravelで作ったサービスをSSL化した時にやったことと参考記事一覧
LaravelでURLをHTTPS化させるメモ (Heroku)
https対応したLaravelプロジェクトでassetを使う時の注意点
EC2上のwebサーバをSSL化対応
おわりに
最後まで読んでいただき、ありがとうございます。
間違いがあればご指摘いただけると幸いです。