我在笔记本电脑上本地运行 MAMP,我喜欢尽可能多地在本地进行测试。不幸的是,由于我从事电子商务 (PHP) 工作,因此我通常在大多数结帐表单中强制使用 ssl,但它在我的笔记本电脑上却失败了。是否有任何我可能缺少的简单配置以允许“https”在 MAMP 下运行?请注意,我知道我可以手动配置 Apache,重新编译 PHP 等,但我只是想知道对于懒惰的程序员是否有更简单的方法。
谢谢
首先,复制 /Applications/MAMP。
打开 /Applications/MAMP/conf/apache/httpd.conf在
您添加
的行下方
删除所有行以及.
# LoadModule foo_module modules/mod_foo.so
LoadModule ssl_module modules/mod_ssl.so
<IfDefine SSL>
</IfDefine SSL>
打开 /Applications/MAMP/conf/apache/ssl.conf
删除所有行<IfDefine SSL>
以及</IfDefine SSL>
.
找到定义SSLCertificateFile
和的线SSLCertificateKeyFile
,将其设置为
SSLCertificateFile /Applications/MAMP/conf/apache/ssl/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/apache/ssl/server.key
创建一个新文件夹 /Applications/MAMP/conf/apache/ssl
进入终端并导航到新文件夹
cd /Applications/MAMP/conf/apache/ssl
创建私钥,提供密码
openssl genrsa -des3 -out server.key 1024
删除密码
cp server.key server-pw.key
openssl rsa -in server-pw.key -out server.key
创建证书签名请求,按回车键获取默认值
openssl req -new -key server.key -out server.csr
创建证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
重新启动您的服务器。如果遇到任何问题,请检查系统日志文件。第一次访问时,https://localhost/
您将被要求接受证书。
注意:在 MAMP 版本 2+ 之后不再支持 startssl。您必须更新配置文件 (httpd.conf) 才能启用 ssl。
您可以很容易地修改 MAMP 的免费版本以默认启用 ssl。一旦你设置了 apache 的所有 SSL 部分并让它工作,以便调用 apachectl startssl 工作,只需编辑文件
/Applications/MAMP/startApache.sh
在您最喜欢的文本编辑器中,将start参数更改为startssl,您将拥有 MAMP 启动器以 ssl 模式为您启动 apache。
似乎没有更简单的方法,除非您愿意购买 MAMP Pro。
据我所知,将 SSL 与 MAMP 一起使用的唯一方法是为 Apache 配置 mod_ssl。mod_ssl 与 MAMP 捆绑在一起,我发现配置非常简单。请注意,您可能必须从命令行启动 Apache 才能使用它:
/Applications/MAMP/bin/apache2/bin$ ./apachectl stop
/Applications/MAMP/bin/apache2/bin$ sudo ./apachectl startssl