1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[LaraDock]俺俺SSL化が楽すぎて感動した

Posted at

はじめに

LaraDockでLaravel開発した際に、HTTPS化したいと思ったら、想像以上に楽にできて感動したので共有します。

環境

Ubunts
PHP7
Docker version 18.09.2
Docker-compose version 1.17.1
Laravel Framework 5.8.10

前提条件

LaraDockのインストールは完了しているものとします。
インストール方法が分からない方は、別記事で確認をお願いします。

俺俺SSL化の設定

まずはlaradock環境へ移動して、nginxの設定ファイルを開きます。

$ cd laradock
$ vim nginx/sites/default.conf

ファイルを開いたら、以下のコメントを削除します。
事前に「For https」という枠が用意されており分かり易い!

# For https
listen 443 ssl default_server;
listen [::]:443 ssl default_server ipv6only=on;
ssl_certificate /etc/nginx/ssl/default.crt;
ssl_certificate_key /etc/nginx/ssl/default.key;

次に以下の箇所をコメントにします。
これでHTTPからの接続を塞ぎます。

# listen 80 default_server;
# listen [::]:80 default_server ipv6only=on;

ここまでできたらファイルを保存して、DockerをリビルドすればOKです。

$ docker-compose build --no-cache nginx
$ docker-compose up -d nginx

以上、これで俺俺SSL化の完了です!
とても簡単で感動ですね。

認証ファイルの作成ロジック

もう少し処理をみると、nginxのDockerファイルにこのような処理があります。

ADD ./startup.sh /opt/startup.sh
RUN sed -i 's/\r//g' /opt/startup.sh
CMD ["/bin/bash", "/opt/startup.sh"]

このstartup.shが何をしているのか見ると、こんな感じで俺俺SSLの認証ファイルを生成していい感じに配置してからnginxを起動していることが分かります。

# !/bin/bash

if [ ! -f /etc/nginx/ssl/default.crt ]; then
    openssl genrsa -out "/etc/nginx/ssl/default.key" 2048
    openssl req -new -key "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.csr" -subj "/CN=default/O=default/C=UK"
    openssl x509 -req -days 365 -in "/etc/nginx/ssl/default.csr" -signkey "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.crt"
fi

nginx

LaraDockはDocker-compose設計など、とても綺麗に書かれており勉強になります。
まだ利用実績は少ないようですが、今後利用者が増えると嬉しいです。

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?