Macのローカル環境にオレオレSSLを導入する方法【Sierra対応】
Macのローカル環境にオレオレSSLを導入する方法です。
オレオレSSLとは、自分専用のSSLのことです。つまり一般的なSSLとしては使えないけど、ローカル開発環境では使えますよってことです。
なお、今回の環境ではMAMPなどのローカル開発環境構築ツールは使っていません。Macのビルドインサーバーを使っています。
Apache・バーチャルホストの設定は終わらせておいてください
localhostにアクセスすると上記画面に繋がる状態でのスタートです。
これが出来ていない方は、下記記事をどうぞ。
» Apache, MySQL, PHP for Local Development
» How to set up Virtual Hosts
秘密鍵とSSL証明書を作成し、キーチェーンに情報を保存する
秘密鍵とかSSL証明書とかややこしいですが、ぶっちゃけ理解してなくても大丈夫です。記事に沿ってコピペしましょう。
まずはapache2のフォルダ内にsslフォルダを作る
$ sudo mkdir /etc/apache2/ssl
private keyとcertificateを発行する
呪文にしか見えなくてもOKです。注意点は、hogehogeの部分をあなたが設定したいドメイン名に変更することです。下記はlocalhostにオレオレSSLを設定する例です。
$ sudo openssl genrsa -out /etc/apache2/ssl/localhost.key 2048 $ sudo openssl req -new -x509 -key /etc/apache2/ssl/localhost.key -out /etc/apache2/ssl/localhost.crt -days 3650 -subj /CN=localhost
※例えば、hogehoge.comにオレオレSSLを設定したい場合は下記となります。
$ sudo openssl genrsa -out /etc/apache2/ssl/hogehoge.com.key 2048 $ sudo openssl req -new -x509 -key /etc/apache2/ssl/hogehoge.com.key -out /etc/apache2/ssl/hogehoge.com.crt -days 3650 -subj /CN=localhost
キーチェーンにcertificateを追加する
下記コピペでOKです。繰り返しですが、ドメイン名部分だけ注意してください。
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /etc/apache2/ssl/localhost.crt
httpd.conf
で必要なモジュールを読み込む
編集ファイル:/private/etc/apache2/httpd.conf
ローカル環境でSSLを利用するにはいくつかモジュールが必要です。
# LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so //変更前
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so //変更後
# LoadModule ssl_module libexec/apache2/mod_ssl.so //変更前
LoadModule ssl_module libexec/apache2/mod_ssl.so //変更後
# Include /private/etc/apache2/extra/httpd-ssl.conf //変更前
Include /private/etc/apache2/extra/httpd-ssl.conf //変更後
上記のとおり。要するに『#』を外すとモジュールが読み込まれます。
秘密鍵とSSL証明書の読み込み設定とバーチャルホスト設定をする
編集ファイル:/private/etc/apache2/extra/httpd-ssl.conf
SSLCertificateFile
とSSLCertificateKeyFile
という記述をさがして下記のように変更してください。
SSLCertificateFile "/etc/apache2/ssl/localhost.crt" SSLCertificateKeyFile "/etc/apache2/ssl/localhost.key"
※もし、hogehoge.comというドメイン名の場合は下記のとおりです。
SSLCertificateFile "/etc/apache2/ssl/hogehoge.com.crt" SSLCertificateKeyFile "/etc/apache2/ssl/hogehoge.com.key"
最後にバーチャルホスト設定をする
hogehoge.com
でSSL設定した場合の例を書いておきます。
<VirtualHost *:443>
ServerName hogehoge.com // 環境に合わせて変更する
DocumentRoot "/Users/【ユーザー名】/Sites/hogehoge.com/" // 環境に合わせて変更する
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl/hogehoge.com.crt // 環境に合わせて変更する
SSLCertificateKeyFile /etc/apache2/ssl/hogehoge.com.key // 環境に合わせて変更する
SetEnv ENV_MODE develop
<Directory "/Users/indieweb/Sites/localhost">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
以上で完了。まずはアパッチでタイポがないかをapachectl -t
で確認してから、apache2 restart
でリスタートしましょう。
$ sudo apachectl -t $ sudo service apache2 restart
» 参考:Local SSL websites on macOS Sierra
※P.S:無料メルマガで発信中:過去の僕は「ブログ発信で5億円」を稼ぎました。次は「30億円」を目指します。挑戦しつつ、裏側の思考を「メルマガ」から発信します。不満足なら1秒で解約できます。無料登録は「こちら」です。