Laravel SailでURL変更&mkcertを使ったhttps化

docker

IPやドメイン、フォルダ構成は私の環境を元にしています。参考にする場合適時読み替えて下さい。
sailのインストールは済まして下さい。
sailについてはこちら

前提

  • OS: macOS Ventura
  • 開發用URL: dev.webtools.ruka.app
  • SSLファイル証明書の配置フォルダ: ./nginx-cert/

hostsに設定を追加

sudo vi /etc/hosts

127.0.0.1 dev.webtools.ruka.app/etc/hostsに追加する。

※mkcertを既にインストール済ならサーバー証明書発行まで飛ばして下さい。

mkcertのインストール

brew install mkcert

デフォルトではChromeのみ対応。Firefoxも使うので、nssもインストール。

brew install nss

CA証明書をインストール

mkcert --install

サーバー証明書発行

mkcert dev.webtools.ruka.app localhost 127.0.0.1

これで、dev.webtools.ruka.app+2-key.pemdev.webtools.ruka.app+2.pemの2ファイルが生成される。

mkdir ./nginx-cert/
mv *.pem ./nginx-cert/

SSLファイル証明書配置フォルダに移動。

※ gitを使用している場合、*.pemファイルをgit管理しないよう.gitignoreに追加。

Sail-SSLプラグインをインストール

Sail-SSLについてはこちら

./vendor/bin/sail up -d
./vendor/bin/sail composer require ryoluo/sail-ssl --dev
./vendor/bin/sail artisan sail-ssl:install
./vendor/bin/sail down
./vendor/bin/sail up -d

各種設定ファイルの書き換え

.envの書き換え

APP_URLを変更する。

APP_URL=http://localhost

APP_URL=https://dev.webtools.ruka.app

docker-compose.ymlへの追加

- './nginx-cert/dev.webtools.ruka.app+2-key.pem:/etc/certs/dev.webtools.ruka.app+2-key.pem'
- './nginx-cert/dev.webtools.ruka.app+2.pem:/etc/certs/dev.webtools.ruka.app+2.pem'

を追加する。

volumes:
    - 'sail-nginx:/etc/nginx/certs'
    - './vendor/ryoluo/sail-ssl/nginx/templates:/etc/nginx/templates'
    - './vendor/ryoluo/sail-ssl/nginx/generate-ssl-cert.sh:/docker-entrypoint.d/99-generate-ssl-cert.sh'

volumes:
    - 'sail-nginx:/etc/nginx/certs'
    - './vendor/ryoluo/sail-ssl/nginx/templates:/etc/nginx/templates'
    - './vendor/ryoluo/sail-ssl/nginx/generate-ssl-cert.sh:/docker-entrypoint.d/99-generate-ssl-cert.sh'
    - './nginx-cert/dev.webtools.ruka.app+2-key.pem:/etc/certs/dev.webtools.ruka.app+2-key.pem'
    - './nginx-cert/dev.webtools.ruka.app+2.pem:/etc/certs/dev.webtools.ruka.app+2.pem'

vendor/ryoluo/sail-ssl/nginx/generate-ssl-cert.shの書き換え

KEY=/etc/nginx/certs/server.key
CERT=/etc/nginx/certs/server.pem

KEY=/etc/certs/dev.webtools.ruka.app+2-key.pem
CERT=/etc/certs/dev.webtools.ruka.app+2.pem

vendor/ryoluo/sail-ssl/nginx/templates/default.conf.templateの書き換え

ssl_certificate     /etc/nginx/certs/server.pem;
ssl_certificate_key /etc/nginx/certs/server.key;

ssl_certificate     /etc/certs/dev.webtools.ruka.app+2.pem;
ssl_certificate_key /etc/certs/dev.webtools.ruka.app+2-key.pem;

確認

./vendor/bin/sail down
./vendor/bin/sail up -d

を実行し、ブラウザでdev.webtools.ruka.appを開き、SSLエラーが出なければ完了です。

コメント

タイトルとURLをコピーしました