Written by Manabu Bannai

Macのローカル環境にオレオレSSLを導入する方法【Sierra対応】

PROGRAMMING

Macのローカル環境にオレオレSSLを導入する方法です。

オレオレSSLとは、自分専用のSSLのことです。つまり一般的なSSLとしては使えないけど、ローカル開発環境では使えますよってことです。

なお、今回の環境ではMAMPなどのローカル開発環境構築ツールは使っていません。Macのビルドインサーバーを使っています。

Apache・バーチャルホストの設定は終わらせておいてください

screen-shot-2016-11-08-at-20-31-19
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

SSLCertificateFileSSLCertificateKeyFileという記述をさがして下記のように変更してください。

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

人気記事:Web制作の独学方法をガッツリまとめました。

» 【独学でWeb制作マスター】勉強方法のまとめ【初心者向け】

おすすめ:Webで稼ぎたいなら、Webマーケティングを学びましょう。ノウハウまとめました。

» 【超初心者向け】Web集客の基礎から応用までガッツリまとめました。