为SSL配置MAMP

时间:2011-06-11 20:49:02

标签: apache ssl https mamp

好的编码员,我正在尝试在我的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

没有运气。我可以使用http命中127.0.0.1或localhost,但https://localhosthttps://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定义更新对新创建文件的所有证书引用。

6 个答案:

答案 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://localhosthttps://localhost访问您的文档根目录。

答案 1 :(得分:25)

这里的https非常困难,方法很简单。

打开MAMP Pro。

  1. 在“服务器”选项卡中确保您的HTTP端口为80,HTTPS端口为443
  2. 点击“主机标签”
  3. 点击加号箭头添加新主机。
  4. 添加127.0.0.1作为主机名
  5. 点击SSL启用
  6. 选择目录您的htdoc或网站文件夹在哪里
  7. 点击SSL标签
  8. 按下方按钮创建自签名证书。
  9. 然后它将在保存后要求保存位置,它将选择证书自动。
  10. 重新启动您的MAMP服务器。
  11. 享受!!!!

    键入: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我发现建议对这些文件进行以下修订:

  1. 在进行这些编辑之前,请确保已生成webopius详细说明的密钥/证书,并对httpd.conf进行基本编辑,例如注释掉SSL IfDefine语句。
  2. 编辑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"
    
  3. 再次编辑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>
    
  4. 再次,请查看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;在终端看看你得到了什么错误。