gpt4 book ai didi

apache - 如何使用MAMP为本地主机和虚拟主机设置SSL?

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:58 25 4
gpt4 key购买 nike

我正在创建此“问题”,以记录如何在本地设置SSL,以防将来将来再次需要这样做。以为我在这里记录了它,希望对其他人也有帮助,因为这是一个棘手的过程。

我正在使用High Sierra,MAMP v 4.2.1和Chrome v 71的Mac

好吧,让我们滚动。

最佳答案

1)为本地主机创建SSL证书

为了能够将HTTPS与localhost一起使用,我们实际上需要两个证书:一个根证书和一个专门为localhost域创建的域证书。

These nifty scripts我发现要同时创建两者。它们非常易于使用-只需严格按照说明进行操作,就可以了。文档中唯一不清楚的地方是它的Then mark the certificate as trusted,这意味着您必须在Keychain Access中单击证书并将Trust选项更改为Always

Here您可以找到有关这些脚本实际作用的更详细的说明)

如果一切正常,您现在应该有两个文件server.crtserver.key。我在ssl中创建了一个/Applications/MAMP文件夹,并将文件移到其中。但您可以将它们放在您认为最佳的位置。

现在让我们忘记文件,继续进行一些Apache配置。

2)配置MAMP的Apache接受SSL

默认情况下,Apache未配置为接受SSL连接,因此我们必须对其进行更改。打开/Applications/MAMP/conf/apache/httpd.conf并确保以下行未被注释掉。如果是这样,请删除该行开头的#

LoadModule ssl_module modules/mod_ssl.so 

Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf


另外,请查找以下行:

Servername  localhost:443


并确保将端口设置为443。443是HTTPS安全连接的默认端口(默认情况下,常规,不安全的HTTP连接侦听端口80)。

接下来,打开 /Applications/MAMP/conf/apache/extra/httpd-ssl.conf并确保您具有以下行:

Listen 443


同样,这很重要,因为我们必须在同一端口上设置所有内容。为此,您还应该单击MAC扩展坞中的MAMP图标,单击 Preferences,转到 Ports选项卡,然后选择 Set Web & MySql ports to 80 & 3306

停止并重新启动MAMP以应用到目前为止所做的更改。

3)为SSL配置默认的虚拟主机

仍在 /Applications/MAMP/conf/apache/httpd.conf中时,请查找以下行:

<VirtualHost _default_:443>

# General setup for the virtual host
DocumentRoot "/Applications/MAMP/Library/htdocs"
ServerName www.example.com:443


这些行为所有HTTPS连接设置Apache的默认行为。 ServerName只是一个虚拟名称,您应将其替换为 localhost。您还应确保默认的 DocumentRoot与项目的根文件夹匹配。

因此,如下更改上述几行:

<VirtualHost _default_:443>

# General setup for the virtual host
DocumentRoot "/path/to/your/htdocs"
ServerName localhost


当您进一步向下滚动时,虽然我们仍在默认的 VirtualHost指令中,但会发现以下两行:

SSLCertificateFile "/Applications/MAMP/conf/apache/server.crt"

SSLCertificateKeyFile "/Applications/MAMP/conf/apache/server.key"


将它们更改为将我们在第1步中生成的文件放置到的任何位置。就像我之前说过的,我已经将我的文件放置在“ / Applications / MAMP / ssl”中,因此我更改了
以上行到:

SSLCertificateFile "/Applications/MAMP/ssl/server.crt"

SSLCertificateKeyFile "/Applications/MAMP/ssl/server.key"


停止并重新启动MAMP以应用更改。现在,如果转到 https://localhost,则应该可以在根文件夹中看到项目列表。 localhost就这样!

4)为自定义本地域创建SSL证书

如果您想创建一个自定义域 myproject.dev并也使用SSL,那么可以在 https://myproject.dev上访问它,该怎么办?

就像我们为 localhost所做的事情一样,我们需要专门为 myproject.dev域创建SSL证书,然后为 myproject.dev配置虚拟主机。让我们从创建证书开始。

同样,我发现名为 create-ssl-certificatethis little tool会为您生成特定本地域的SSL证书。这也非常易于使用,唯一不清楚的部分是它是一个NPM软件包,可以使用 npm -g install create-ssl-certificate进行全局安装。

如果 create-ssl-certificate一切顺利,则现在应该有两个文件,就像在步骤1中使用 localhost一样。默认情况下, create-ssl-certificate调用生成的文件 ssl.crtssl.key。我已将它们重命名为 server.crtserver.key以与 localhost文件保持一致。然后,我在 ssl根文件夹中创建了一个 myproject文件夹,并将文件移到其中。

让我们暂时忘记文件,然后进行一些Apache配置。

4)配置MAMP的Apache以接受虚拟主机

如果您以前创建过虚拟主机,则可能已经完成了,因此可以跳过此步骤。

要“激活”创建虚拟主机的可能性,我们唯一要做的就是转到 /Applications/MAMP/conf/apache/httpd.conf并取消注释此行:

Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

5)为SSL配置本地域的虚拟主机

现在我们可以设置一个虚拟主机,以便我们可以在 myproject访问 https://myproject.dev。首先,编辑您的 hosts文件并添加以下行:

127.0.0.1   myproject.dev


然后,转到 /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf并添加以下内容:

<VirtualHost myproject.dev:443>
ServerName myproject.dev
DocumentRoot "/Users/myusername/Sites/myproject"
SSLEngine on
SSLCertificateFile "/Users/myusername/Sites/myproject/ssl/server.crt"
SSLCertificateKeyFile "/Users/myusername/Sites/myproject/ssl/server.key"
</VirtualHost>


使用此配置,因为指示服务器搜索我们在步骤4中创建的SSL证书,您将能够访问 https://myproject.dev

关于apache - 如何使用MAMP为本地主机和虚拟主机设置SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54239362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com