Ref.

https://qiita.com/k_kind/items/b87777efa3d29dcc4467

登場人物

  • mkcert(ローカル開発用SSL証明書発行ツール)
  • キーチェーンアクセス(Mac > アプリケーション > ユーティリティ > キーチェーンアクセス)

手順

  1. mkcert をインストール (brew install mkcert)
  2. ローカル専用認証局を作成してキーチェーンに登録 (mkcert -install)
  3. 作成した認証局で署名されたサーバー証明書と秘密鍵を作成 (mkcert ...)
  4. Apache設定ファイルに作成した証明書と秘密鍵を指定
  5. hostsファイルを変更してWebサーバーを再起動

1. mkcertをインストール

$ brew install mkcert

2. ローカル専用認証局を作成してキーチェーンに登録

$ mkcert -install

/Users/<ユーザー名>/Library/Application Support/mkcert/ に以下のファイルが作成されます(パスは mkcert -CAROOT で確認可能)。

  • rootCA-key.pem:ローカルCAの秘密鍵
  • rootCA.pem:ローカルCAのルート証明書

実行後、macOSのキーチェーンアクセス(「ログイン」または「システム」キーチェーン)にルート証明書 (rootCA.pem) が信頼された証明書として自動登録されます。

3. 認証局に署名されたサーバー証明書と秘密鍵を作成

開発で利用するドメインを指定して証明書を発行します(サブドメインや localhost も同時に指定可能です)。

$ mkcert example.com "*.example.com" localhost 127.0.0.1

以下のファイルが生成されます。

  • example.com+3.pem(または example.com.pem):サーバー証明書
  • example.com+3-key.pem(または example.com-key.pem):秘密鍵

4. Apache設定ファイルにサーバー証明書と秘密鍵を指定

生成した証明書ファイルを適切なディレクトリ(例: /etc/ssl/certs/, /etc/ssl/private/ など)に配置し、Apacheの設定ファイル(例: /etc/apache2/sites-available/example.com.conf)に指定します。

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html/example.com

    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/example.com.pem
    SSLCertificateKeyFile /etc/ssl/private/example.com-key.pem
</VirtualHost>

5. hostsファイルを変更 & Webサーバーの再起動

/etc/hosts にローカルループバックを設定します。

# /etc/hosts
127.0.0.1 example.com

設定を有効化し、Apacheを再起動します。

$ sudo a2ensite example.com.conf
$ sudo apachectl configtest
$ sudo apachectl restart

https://example.com にアクセスし、ブラウザで警告が出ずにSSL通信が行われていることを確認します。