4
3

More than 3 years have passed since last update.

MAMPのSSL対応 / PHPのバージョン変更方法

Last updated at Posted at 2020-04-10

実務でしばらくMAMPを使っていたので、MAMPのインストール&初期設定+αをしてみるのその後設定した諸々です。
基本的には上記の記事での設定は、すでに済んでいるものとします。

SSL設定

バーチャルホストでのSSLはあまり情報がまとまってなかったので、備忘録も兼ねてます。
参考にさせていただいたページは一番下に。

以下の手順で鍵をつくります。いわゆるオレオレ証明書です。

keysのディレクトリを作ります。

$ mkdir /Applications/MAMP/conf/apache/keys

作ったkeysのディレクトリに移動します。

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

ローカル認証局の秘密鍵を作る

$ openssl genrsa -des3 -out local-ca.key 2048

パスフレーズを聞かれるので入力。メモしてください。

ローカル認証局の証明書を作る

$ openssl req -x509 -new -nodes -key local-ca.key -sha256 -days 1825 -out local-ca.pem

先ほどメモったパスフレーズを入力。
「Common Name」のところだけ「localhost」と入力して、残りはEnterで大丈夫です。

Enter pass phrase for local-ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:localhost
Email Address []:

これでlocal-ca.pemというローカル認証局の証明書ができました。

サーバの秘密鍵を作る

$ openssl genrsa -out server.key 2048

証明書署名要求(CSR)を作る

$ openssl req -new -key server.key -out server.csr

Extension Fileを作る

以下の内容でv3.extというファイルを作成します。

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost

サーバ証明書を作る

$ openssl x509 -req -in server.csr -CA local-ca.pem -CAkey local-ca.key -CAcreateserial -out server.crt -days 1825 -sha256 -extfile v3.ext

これで設定に必要な2つのファイル作成が完了しました。

  • server.crt
  • server.key

参考サイトでは、この後キーチェーンアクセスに証明書を追加して、セキュリティの警告画面が出ない様にするみたいなんですが、私の場合はキーチェーンアクセスに追加しても出続けてるので、この項目は飛ばします。
気になる方は、参考サイトさんで手順通りにどうぞ。

警告画面が出ても「詳細設定」からアクセスはできるはずです。

MAMPでの設定

httpd.confの設定

MAMPのアプリケーションフォルダ内、「httpd.conf」を修正し、SSLの設定を有効にします。
Applications > MAMP > conf > apache
スクリーンショット 2020-04-09 18.51.01.png

# 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

httpd-ssl.confの設定

httpd-ssl.confの設定をします。
Applications > MAMP > conf > apache > extra > httpd-ssl.conf
スクリーンショット 2020-04-09 19.04.12.png

この2つを書き換えます。

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

以下の様に、先ほど作った証明書のディレクトリに書き換えます

SSLCertificateFile "/Applications/MAMP/conf/apache/keys/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/apache/keys/server.key"

httpd-vhosts.confの設定

バーチャルホストでのSSL設定です。
Applications > MAMP > conf > apache > extra > httpd-vhosts.conf
スクリーンショット 2020-04-10 12.46.52.png

設定してあるバーチャルホストを以下の様に書き換えます。

<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/hoge"
    ServerName hoge
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin admin@localhost
    DocumentRoot "/Applications/MAMP/htdocs/hoge"
    ServerName hoge

    SSLEngine on
    SSLCertificateFile /Applications/MAMP/conf/apache/keys/server.crt
    SSLCertificateKeyFile /Applications/MAMP/conf/apache/keys/server.key
</VirtualHost>

ここまで設定できたらMAMPサーバーを再起動します。
これで、https://〜でアクセスできるようになるはずです。

PHPのバージョン変更方法

段階的なリニューアルの際に、古い環境を再現する必要がありまして、
そのような場合のPHPのバージョンの下げ方です。

初期設定では、以下のように近いバージョンの2種類しか選べません。
スクリーンショット 2020-04-10 13.24.51.png

この選択肢を変更するには、Applications > MAMP > bin > php のフォルダ内の各バージョンphpフォルダの名前を変更します。
表示させたいバージョン以外にアンダースコアをつけておきます。
スクリーンショット 2020-04-10 13.23.33.png

ここまで設定したら、MAMPを再起動します。
その後、もう一度MAMPを立ち上げ、上部のメニューバーより MAMP > PreferencesからPHPのタブを開くと
スクリーンショット 2020-04-10 13.25.47.png
このように選択肢が変わっているはずです。

引用・参考

MAMPでMacのローカル環境にSSL(https://localhost)を設定する方法

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3