Help us understand the problem. What is going on with this article?

MAMPでssl対応する方法

More than 5 years have passed since last update.

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を追加します。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした