【Docker】【Laradock】Laradockのapache2でSSL自己証明書を設定してhttps通信を可能にする

今回は結構ややこしくて少しはまりましたが勉強になりました。
毎度ながらこのブログでは答えだけサクッと書きます。
詳細に関しては以下の記事が非常に丁寧に解説されていたのでご参考にください。

www.engilaboo.com

紹介しておいて↑この方のやり方とは少し違うんですが、やってることは同じです。

①laradockフォルダ配下に「apache2」フォルダ内、Dockerfile内に以下を追記する。場所はどこでもいいです。

#ssl certificate
RUN openssl genrsa -out "/etc/ssl/private/mysite.key" 2048 \
    && openssl req -new -key "/etc/ssl/private/mysite.key" -out "/etc/ssl/certs/mysite.csr" -subj "/CN=localhost/O=LGS/C=JP" \
    && openssl x509 -req -days 365 -in "/etc/ssl/certs/mysite.csr" -signkey "/etc/ssl/private/mysite.key" -out "/etc/ssl/certs/mysite.crt"

RUN sed -i 's!/var/www/html!/var/www/html/public!g' /etc/apache2/sites-available/default-ssl.conf \
    && sed -i 's!/etc/ssl/certs/ssl-cert-snakeoil.pem!/etc/ssl/certs/mysite.crt!g' /etc/apache2/sites-available/default-ssl.conf \
    && sed -i 's!/etc/ssl/private/ssl-cert-snakeoil.key!/etc/ssl/private/mysite.key!g' /etc/apache2/sites-available/default-ssl.conf
    
RUN a2enmod ssl \
    && a2ensite default-ssl.conf

②docker-compose.yml内で「apache2」で検索、最近のバージョンなら「ports:」が以下のようになってるかと思うが、

      ports:
        - "${APACHE_HOST_HTTP_PORT}:80"
        - "${APACHE_HOST_HTTPS_PORT}:443"

もし443の設定がなければベタ書きで書いてもOK

    ports:
      - 80:80
      - 443:443

③この状態でビルドしなおせばhttpsで表示できる

docker-compose build

ちなみに↑このやり方は以下を参考にしました~

github.com

Have a happy docker life!