sslの証明書(オレオレ証明書)を作成する
個人利用のsslの場合、特に今回のようなローカルのPCにMAMPなどでhttpサーバを立ち上げる場合などは、無料の自己証明書で十分です。ssl、自己証明書、オレオレ証明書などで検索すれば、たくさんのサイトが検索にかかります。ここでは作成に必要なコマンドのみをメモで残しておきます。
なお証明書は下記のフォルダに作成するものとします。
- /Applications/MAMP/conf/ssl
cd /Applications/MAMP/conf/ssl
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -in server.csr -days 365 -req -signkey server.key > server.crt
cp server.key server.key.bak
openssl rsa -in server.key.bak -out server.key
- 最初のserver.key作成時はいろいろと質問が表示されます。Common Nameの質問だけlocalhostを入力し、その他はデフォルト(Enter)でOKです。
- 最後の2行は、証明書のパスフレーズを外すための処理です。ローカルのサーバなので、外しておいた方が便利でしょう。
設定ファイルを書き換える
下記の行を編集して、httpd-ssl.confが読み込まれるようにします。
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
下記の行を編集して、作成した証明書を読み込むようにします。ポート番号も443に変えます。
Listen 443
SSLCertificateFile "/Applications/MAMP/conf/ssl/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/ssl/server.key"
/etc/sudoersの編集
上記のssl証明書作成と、設定ファイルの変更だけではMAMPを開始することができません。これはポート番号443のサービスを開始するには管理者の権限が必要なためです。
MAMPの開始では下記のスクリプトが呼ばれています。
# /bin/sh
/Applications/MAMP/Library/bin/apachectl start
試しにこれを実行してみると、443のポートを使用するサービスを開始できないため、Permissionのエラーが表示されます。
そこで、上記のスクリプトで実行されている、apachectlをsudo付きで実行した場合にパスワードが入力不要にします。
※セキュリティの問題もありますので、十分に注意して自己責任でお願いします。
sudo visudo
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /Applications/MAMP/library/bin/apachectl
- /etc/sudoersを編集する場合は、必ずvisudoコマンドを使用します。
- 上記の2行を追加します。usernameはMAMPを実行するユーザ名です。
スクリプトを書き換える
# /bin/sh
sudo /Applications/MAMP/Library/bin/apachectl start
# /bin/sh
sudo /Applications/MAMP/Library/bin/apachectl stop
上記2つのファイルにそれぞれsudoを追加します。