【问题标题】:Configuring MAMP for SSL为 SSL 配置 MAMP
【发布时间】:2011-09-13 04:36:30
【问题描述】:

好的,程序员们,我正在尝试在我的 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 都返回 host not found 错误。

查看 phpinfo,我看不到 mod_ssl 正在加载。

有人用 os x 10.6.7 做过这个吗?我不知道从这里去哪里。

希望有人能提供帮助。

谢谢

-----编辑开始------

以下是我为使 https 正常工作而对配置文件所做的更改。请按照上面列出的 tuts 创建证书/密钥并删除密码(@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 是根据上述 tuts 的链接新创建的。

注释掉

#<IfDefine SSL> 

在第 35 行周围及其结束标记在第 245 行周围以启用该行...

Listen 443

在两者之间,根据上述 VirtualHost 定义更新对新创建文件的所有证书引用。

【问题讨论】:

  • 我也遇到了 ssl/mamp 问题。我有一个自签名证书,当我使用 https 时,它会请求我的许可,但是当我接受时,我会收到 404 错误。也许我为虚拟主机使用了错误的 DocumentRoot?我用的是/Applications/MAMP/htdocs/,应该是什么?

标签: apache ssl https mamp


【解决方案1】:

我刚刚遇到了同样的问题,但能够解决它。

我在跑步; 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

好的,认为这涵盖了它。

【讨论】:

  • HTTPS 默认在 443 端口上运行,而不是 80。
  • 感谢您回答我的问题。我还设法让 https 工作。我遇到的问题是虚拟服务器的定义。我将很快编辑我的帖子,以包括我所做的更改,以防其他人遇到同样的问题。谢谢。
【解决方案2】:

我也按照 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>
    

    就我而言,我只是为特定的虚拟主机启用 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>
    

再次,请查看Mr. Lackey's blog 以获得更全面的说明,这些说明将带您完成整个过程;这些只是我在使用 Webopius 后为挽救安装所做的事情。

【讨论】:

  • 添加 NameVirtualHost *:443 对我有用。之前的问题是所有请求都只发送到第一个虚拟主机。谢谢你!
【解决方案3】:

https 很困难的方法在这里是简单的方法。

打开 MAMP 专业版。

  1. 在服务器选项卡中确保您的 HTTP 端口为 80,HTTPS 端口为 443
  2. 单击主机选项卡
  3. 点击加号箭头添加新主机。
  4. 添加 127.0.0.1 作为主机名
  5. 点击启用 SSL
  6. 选择目录 您的 htdocs 或网站文件夹在哪里
  7. 单击 SSL 选项卡
  8. 通过下面的按钮创建自签名证书。
  9. 然后它会询问保存位置,保存后会选择自动证书。
  10. 重新启动您的 MAMP 服务器。

享受!!!!

Type : https with localhost 然后你就可以看到结果了。

下一个

【讨论】:

  • 这需要 MAMP Pro 需要许可证。
  • 那是什么版本的 MAMP PRO?我使用的是 1.9.6.1,并且我的服务器选项卡上没有 SSL 端口,只有 Apache 和 MySQL。添加主机时,即使在高级下也没有“单击 SSL 启用”。
  • 这行得通,我建议阅读一些注意事项: 1) 对于特定主机名,请在“服务器名称”空白(主机 > 常规)中输入您要使用的主机名,因为您无法为您的服务器添加别名ssl 主机(这将代替上面示例中列出的 127.0.0.1)。 2) 我无法让常规 https 与 ssl 主机一起工作,因此我不得不创建另一个主机,其别名与 ssl 主机的“服务器名称”相同。现在终于开始工作了。
  • 在创建新主机之前停止服务器,这应该可以工作,我正在使用 MAMP 3.5 并且这个技巧仍然有效:)
  • 注意,我在发出请求时必须使用端口 8890 而不是标准的 8888。
【解决方案4】:

还要确保在 httpd.conf 中取消注释这一行

# Secure (SSL/TLS) connections
Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf

否则启动 Apache 时不会包含它。我的由于某种原因被注释掉了。

【讨论】:

  • 从 MAMP 3 升级到 MAMP 4 后,我们需要做的是让 SSL 再次工作。
【解决方案5】:

如果您使用的是 MAMP 3 或 4,说明会略有不同。 这对我有用,从在没有 Pro 的 Mavericks 上全新安装 MAMP 3.0.5 开始。

更新:在按照this answer 中的描述修复 Apache 后,仍然可以在 Yosemite 上工作。

进一步更新:评论表明这至少在 MAMP 5.4 中仍然有效。

生成证书

这部分直接来自教程,所以如果你已经完成了,你可以跳到“设置 MAMP”。

使用终端在您的默认文件夹中生成私钥:

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)移动到:

/Applications/MAMP/conf/apache/

打开 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

找到&lt;VirtualHost&gt; 条目(文件末尾的大块,以&lt;VirtualHost _default_:443&gt; 开头并以&lt;/VirtualHost&gt; 结尾)并将整个内容替换为:

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /Applications/MAMP/conf/apache/server.crt
        SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key
</VirtualHost>

保存并关闭。启动您的 MAMP 服务器。您应该可以通过http://localhosthttps://localhost 访问您的文档根目录。

【讨论】:

  • 确认从 MAMP 3.2.1 开始工作。非常感谢。
  • 2016 年 2 月 16 日工作 --osx 10.11.3 && MAMP 3.5 谢谢!
  • 这应该是正确的答案。写得很好,效果很好。
  • 这很好,但仍然没有让 https:// 在浏览器中工作。有什么建议可以摆脱 Chrome 的“您的连接不是私密的”警告吗?似乎证书不受信任(NET::ERR_CERT_AUTHORITY_INVALID)。
  • 该解决方案同样适用于 MAMP 4.2.1 (Mac OS X Sierra)
【解决方案6】:

如果您使用的是 MAMP 4 并且仍在努力让 ssl 正常工作。

这是我如何让它工作的。

第 1 步:生成证书(遵循 Roberts 说明)

第 2 步:确保“LoadModule ssl_module modules/mod_ssl.so”已取消注释。

第 3 步:我使用“Listen 81”(不带引号)而不是 80(我认为有些东西正在使用它,但如果可以的话,请在某些端口号上测试它,或者坚持使用 81)。

第 4 步:创建“ServerName localhost:81”(不带引号)。

第 5 步:取消注释“包含 /Applications/MAMP/conf/apache/extra/httpd-ssl.conf”

第 6 步:确保 'server.crt' 和 'server.key' 位于正确的位置(如果您遵循 Roberts 的说明,这应该是正确的)

第 7 步:打开 httpd-ssl.conf 文件(按照 include 指向的路径)将 'Listen 443' 更改为 'Listen *:443'

第8步:找到&lt;VirtualHost _default_:443&gt;改成&lt;VirtualHost *:443&gt;

第 9 步:您可以通过两种方式执行此操作,您可以将“DocumentRoot”指向您的项目/网站的文件夹,也可以将“DocumentRoot”注释掉(我选择将其注释掉)。

第 10 步:将 'ServerName www.example.com:443' 更改为 'localhost:443'

第 11 步:可选 - 目录路径可能是错误的,因为“cgi-bin”实际上位于 MAMP 文件夹而不是库中,但是我不理会它,它似乎对我来说工作正常。

退出 MAMP,重新打开它并启动服务器。您应该能够访问http://localhost:81 并访问其https://localhost:443 的ssl 站点。

我希望我的指示很清楚,并且您的 MAMP 有效。祝你好运

P.s 如果它仍然无法正常工作,请在终端中使用“sudo /Applications/MAMP/Library/bin/apachectl start”来查看您遇到的错误。

【讨论】:

    猜你喜欢
    • 2016-09-26
    • 2014-02-05
    • 2012-11-08
    • 2015-09-24
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    相关资源
    最近更新 更多