MAMPでSSL(https通信)を使えるようにする手順

どうしても仕事で必要になり、メインパソコン(Mac)の開発環境(MAMP)でSSLを使えるように設定したので、その記録を残しておきます。

秘密鍵とサーバ証明書を作成

まず、秘密鍵を設置するためのフォルダを作成します。

今回は「/Applications/MAMP/conf/apache/」内に「keys」という名前のフォルダを作成しました。

ターミナルを起動して、上で作成した「keys」ディレクトリに移動します。

$ cd /Applications/MAMP/conf/apache/keys/

次に、下のコマンドで「秘密鍵」を作成します。

$ openssl genrsa -des3 1024 >secret-key.pem

パスフレーズの入力を求められるので、適当な文字列を入力します。(あとで使うので忘れないように!)

Enter pass phrase:
Verifying - Enter pass phrase:

「Verifying – Enter pass phrase:」と言われるので、確認のため同じパスフレーズを入力します。

これで、「secret-key.pem」が作成されたので、次に下のコマンドで「証明書署名要求(csr)」を作ります。

$ openssl req -new -key secret-key.pem -out csr.pem

またパスフレーズを求められるので、最初に決めたモノを入力。

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

色々と聞かれますが、「Common Name」以外は省略(Enterのみ)して、「Common Name」には「localhost」を指定。

これで「csr.pem」が作成されたので、次にcrtファイルを作ります。

$ openssl x509 -in csr.pem -out server.cert -req -signkey secret-key.pem

またパスフレーズを求められるので、上と同じモノを入力。

最後に「パスワードなし秘密鍵」を作成します。(MAMPでは、パスワードなしの秘密鍵の方が良いらしい。)

$ openssl rsa -in secret-key.pem -out secret-key-nopass.pem

これで「secret-key-nopass.pem」が作成されます。

$ ls
csr.pem  secret-key-nopass.pem  secret-key.pem  server.cert

MAMPにSSL証明書を設定

まずMAMPの設定画面から、apacheのポート番号を「80」に設定。

次に「/Applications/MAMP/conf/apache/」の「httpd.conf」を開き、

# Secure (SSL/TLS) connections
#Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf

を探して、以下の通り先頭の「#」を削除して有効化。

# Secure (SSL/TLS) connections
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf

そして先ほど有効化したファイル「/Applications/MAMP/conf/apache/extra/httpd-ssl.conf」を開いて、以下の通り編集します。

# General setup for the virtual host
DocumentRoot "/Applications/MAMP/Library/htdocs"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog "/Applications/MAMP/Library/logs/error_log"
TransferLog "/Applications/MAMP/Library/logs/access_log"

上の部分を探して、2行目の「DocumentRoot」を実際の環境に合わせて修正。

次に、サーバ証明書のパスを変更するため、

SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"

の部分を、

SSLCertificateFile "/Applications/MAMP/conf/apache/keys/server.cert"

に修正。

続いて、秘密鍵のパスを変更するため、

SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"

の部分を、

SSLCertificateKeyFile "/Applications/MAMP/conf/apache/keys/secret-key-nopass.pem"

に修正。

以上ですべて完了です。

最終確認

最後に、MAMPを起動(起動中の場合は、サーバーを再起動)して、「https://localhost/MAMP/?language=Japanese」にアクセスできるか確認します。

(セキュリティの警告は無視して進めます。)

スタートページが問題なく表示されれば、SSLに関する設定は問題ないハズなので、あとはドキュメントルート下に設置した自分のプロジェクトの動作を確認して、正しく表示されればOKです。

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローする




コメント

  1. […] MAMPでSSL(https通信)を使えるようにする手順 | monotone blog […]