Question

I am running MAMP locally on my laptop, and I like to test as much as I can locally. Unfortunately, since I work on e-commerce stuff (PHP), I normally force ssl in most of the checkout forms and it just fails on my laptop. Is there any easy configuration that I might be missing to allow "https" to run under MAMP? Please note, I know that I could configure Apache by hand, re-compile PHP, etc. but I'm just wondering if there's an easier way for a lazy programmer.

Thanks

Was it helpful?

Solution

NOTE: startssl is no longer supported after version 2+ of MAMP. You have to update the config files (httpd.conf) to enable ssl.

You can modify the free version of MAMP to enable ssl by default very easily. Once you have setup all the SSL parts of apache and have it working so that calling apachectl startssl works, just edit the file

/Applications/MAMP/startApache.sh

in your favorite text editor and change the start argument to startssl and you will have the MAMP launcher starting apache in ssl mode for you.

OTHER TIPS

First, make a duplicate of /Applications/MAMP.

Open /Applications/MAMP/conf/apache/httpd.conf
Below the line
# LoadModule foo_module modules/mod_foo.so
you add
LoadModule ssl_module modules/mod_ssl.so
Remove all lines <IfDefine SSL> as well as </IfDefine SSL>.

Open /Applications/MAMP/conf/apache/ssl.conf
Remove all lines <IfDefine SSL> as well as </IfDefine SSL>.
Find the line defining SSLCertificateFile and SSLCertificateKeyFile, set it to
SSLCertificateFile /Applications/MAMP/conf/apache/ssl/server.crt SSLCertificateKeyFile /Applications/MAMP/conf/apache/ssl/server.key

Create a new folder /Applications/MAMP/conf/apache/ssl
Drop into the terminal an navigate to the new folder
cd /Applications/MAMP/conf/apache/ssl
Create a private key, giving a password
openssl genrsa -des3 -out server.key 1024
Remove the password
cp server.key server-pw.key
openssl rsa -in server-pw.key -out server.key
Create a certificate signing request, pressing return for default values
openssl req -new -key server.key -out server.csr
Create a certificate
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Restart your server. If you encounter any problems check the system log file. The first time you visit https://localhost/ you will be asked to accept the certificate.

There doesn't seem to be an easier way, unless you're willing to buy MAMP Pro.

As far as I know, the only way to use SSL with MAMP is to configure mod_ssl for Apache. mod_ssl is bundled with MAMP, and I found configuration to be pretty straightforward. Note that you'll probably have to start Apache from the command line to use it:

/Applications/MAMP/bin/apache2/bin$ ./apachectl stop
/Applications/MAMP/bin/apache2/bin$ sudo ./apachectl startssl
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top