LoginSignup
22
23

More than 5 years have passed since last update.

MAMPでssl対応する方法

Posted at

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が読み込まれるようにします。

/Applications/MAMP/conf/apache/httpd.conf
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf

下記の行を編集して、作成した証明書を読み込むようにします。ポート番号も443に変えます。

/Applications/MAMP/conf/apache/httpd.conf
Listen 443
SSLCertificateFile "/Applications/MAMP/conf/ssl/server.crt"
SSLCertificateKeyFile "/Applications/MAMP/conf/ssl/server.key"

/etc/sudoersの編集

上記のssl証明書作成と、設定ファイルの変更だけではMAMPを開始することができません。これはポート番号443のサービスを開始するには管理者の権限が必要なためです。
MAMPの開始では下記のスクリプトが呼ばれています。

/Applications/MAMP/bin/startApache.sh
# /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を実行するユーザ名です。

スクリプトを書き換える

/Applications/MAMP/bin/startApache.sh
# /bin/sh
sudo /Applications/MAMP/Library/bin/apachectl start
/Applications/MAMP/bin/stopApache.sh
# /bin/sh
sudo /Applications/MAMP/Library/bin/apachectl stop 

上記2つのファイルにそれぞれsudoを追加します。

22
23
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
22
23