好的编码员,我正在尝试在我的mac上使用SSL配置MAMP用于开发目的。我已阅读并尝试了以下说明:
http://www.emersonlackey.com/article/mamp-with-ssl-https
http://www.webopius.com/content/355/getting-mamp-working-with-ssl-on-os-x
127.0.0.1
或localhost,但https://localhost
和https://127.0.0.1
都会返回找不到主机错误。
看着phpinfo,我看不到mod_ssl被加载了。
有人用os x 10.6.7做过这个吗?我不知道从哪里开始。
希望有人可以提供帮助。感谢
------编辑开始------
以下是我对配置文件所做的更改,以使https正常工作。请按照上面列出的方式获取创建的证书/密钥并删除密码(@dallas below也提到)。
的httpd.conf
注释掉ifdef以确保执行LoadModule
#<IfDefine SSL>
LoadModule ssl_module modules/mod_ssl.so
#</IfDefine>
确保文件中包含以下内容...
Listen 80
ServerName localhost:80
的ssl.conf
添加以下内容....
<VirtualHost localhost:443>
DocumentRoot /Users/myname/Documents/DevProjects/WebdevProjects
ServerName localhost
SSLEngine on
SSLCertificateFile /Applications/MAMP/conf/ssl/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/ssl/server.key
</VirtualHost>
在现有
之前<VirtualHost _default_:443>
server.crt和server.key是根据obove tuts'链接新创建的。
评论
#<IfDefine SSL>
第35行附近的及其第245行附近的结束标记,以启用该行......
Listen 443
介于两者之间,根据上述VirtualHost定义更新对新创建文件的所有证书引用。
答案 0 :(得分:37)
如果您使用 MAMP 3或4 ,则说明略有不同。 这里有什么对我有用,从没有Pro的Mavericks上全新安装的MAMP 3.0.5开始。
更新:按照this answer中的描述修复Apache后仍可在Yosemite上运行。
进一步更新:评论表明这仍然至少可以通过 MAMP 4.2.1 起作用。
生成证书
这部分直接来自教程,所以如果你已经这样做了,你可以跳到&#34;设置MAMP&#34;。
使用终端在默认文件夹中生成私钥:
cd ~
# generate a private key
openssl genrsa -des3 -out server.key 2048
# make up a passphrase and remember it, you’ll need it 3 more times.
# generate certificate signing request
openssl req -new -key server.key -out server.csr
# same password
# answer the questions, use "localhost" for your Common Name
Country Name: US
State Name: California
Locality: My City
Organization: My Company
Organization Unit Name: # leave blank
Common Name: localhost
Email address: email@example.com
A challenge password: # leave blank
An optional company name: # leave blank
# generate the certificate from the CSR for 5 years
openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt
# remove the password requirement from the server key
cp server.key server.tmp
openssl rsa -in server.tmp -out server.key
设置MAMP 3.0.5
以下版本的说明稍微偏离。文件名和位置已更改,conf文件中的某些命令不同。以下是全新安装的MAMP 3.0.5对我有用。
将证书文件(server.key和server.crt)移动到:
/应用程序/ MAMP / CONF /阿帕奇/
打开Apache的httpd.conf文件:
/Applications/MAMP/conf/apache/httpd.conf
# set your listen port to 80 (near the top of the file)
Listen 80
# set your ServerName to localhost:80 (default is 8888)
ServerName localhost:80
# uncomment the line that includes the secure (SSL/TLS) connection conf
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
保存并关闭。现在打开Apache的ssl conf文件:
/Applications/MAMP/conf/apache/extra/httpd-ssl.conf
找到<VirtualHost>
条目(文件末尾的大块,以<VirtualHost _default_:443>
开头,以</VirtualHost>
结尾),并将整个内容替换为:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /Applications/MAMP/conf/apache/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key
</VirtualHost>
保存并关闭。启动您的MAMP服务器。您应该可以在http://localhost
和https://localhost
访问您的文档根目录。
答案 1 :(得分:25)
这里的https非常困难,方法很简单。
打开MAMP Pro。
享受!!!!
键入:https with localhost然后您可以看到结果。
下一步
答案 2 :(得分:2)
我遇到了同样的问题,但能够解决它。
我正在跑步; Mac OS 10.6.7 MAMP 1.9.4我只阅读了webopius的tut,它做得不错,但错过了什么。
我改变了httpd.conf
Listen 80
不是Listen 127.0.0.1:80
我也忘了在终端上运行它
cp server.key server.tmp
openssl rsa -in server.tmp -out server.key
删除使用密钥所需的密码,如果您没有在终端中启动Apache,则无法输入证书的密码短语。
你可以做的是,运行此命令为MAMP启动apache并查看是否有任何错误。
sudo /Applications/MAMP/Library/bin/apachectl start
好的,想想它的内容。
答案 3 :(得分:1)
我也遵循了webopius说明,但无法加载SSL页面。正如@djeetee所提到的,httpd.conf和ssl.conf中虚拟服务器的定义是有问题的。 best guide我发现建议对这些文件进行以下修订:
编辑ssl.conf,删除现有的VirtualHost声明(大约160行,运行到文件的末尾)并用简单的内容替换它:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /Applications/MAMP/conf/ssl/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/ssl/server.key
</VirtualHost>
就我而言,我只为特定的VirtualHost启用SSL;我不得不添加一个DocumentRoot 定义使它工作:
DocumentRoot "/Applications/MAMP/htdocs/subfolder"
再次编辑httpd.conf,配置VirtualHosts的方式与默认方式略有不同。
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost:80
</VirtualHost>
同样,在我的情况下,我有一个额外的VirtualHost我的SSL操作正在进行:
<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/subfolder"
ServerName dev.subfolder.localhost
</VirtualHost>
再次,请查看Mr. Lackey's blog以获取更全面的说明,这些说明将指导您完成整个过程;这些只是我在使用Webopius后用来挽救我的安装所做的事情。
答案 4 :(得分:1)
还要确保在httpd.conf
中取消注释该行# Secure (SSL/TLS) connections
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf
否则启动Apache时不会包含它。我出于某种原因被评论出来了。
答案 5 :(得分:1)
如果您正在使用MAMP 4,那么您仍然在努力让ssl工作。
以下是我如何使用它。
步骤1:生成证书(遵循Roberts指令)
第2步:确保&#39; LoadModule ssl_module modules / mod_ssl.so&#39;已被取消评论。
第3步:我使用&#39;听81&#39; (没有引号)而不是80(我认为有些东西正在使用它,但如果可以或只是坚持使用81,可以在某些端口号上测试它。)
第4步:制作&#39; ServerName localhost:81&#39; (没有引号)。
步骤5:取消注释&Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf'
第6步:确保&#39; server.crt&#39;和&#39; server.key&#39;是在正确的地方(如果你遵循罗伯茨的指示,这应该是正确的)
步骤7:打开httpd-ssl.conf文件(按照include指向的路径)更改&#39; Listen 443&#39;收听*:443&#39;
第8步:查找<VirtualHost _default_:443>
将其更改为<VirtualHost *:443>
第9步:你可以在这个方面做两种方式,你可以指出&#39; DocumentRoot&#39;到您的项目/网站的文件夹,或者您可以注释掉&#39; DocumentRoot&#39; (我选择将其评论出来)。
步骤10:更改&#39; ServerName www.example.com:443'到&#39; localhost:443&#39;
步骤11:可选 - 目录路径可能有误,因为&#39; cgi-bin&#39;实际上在MAMP文件夹中不是库,但是我单独留下它似乎对我来说很好。
退出MAMP,重新打开并启动服务器。您应该能够访问http://localhost:81并访问ssl网站https://localhost:443。
我希望我的指示清楚,你的MAMP有效。祝你好运
P.s如果仍然无法使用&#39; sudo / Applications / MAMP / Library / bin / apachectl start&#39;在终端看看你得到了什么错误。