1) 为本地主机创建SSL证书
能够将HTTPS与
localhost
我们实际上需要两个证书:a
根证书
,以及
域证书
专门为
本地服务器
领域
These nifty scripts
我发现要注意创造两者。它们很容易使用,只要严格按照说明操作,你就可以很好地使用了。文件中唯一不太清楚的是
Then mark the certificate as trusted
,这意味着您必须单击Keychain Access中的证书并更改
Trust
选择
Always
.
(
Here
你可以找到关于这些脚本实际作用的更详细的解释)
如果一切都对你有用,你现在应该有两个文件
server.crt
和
server.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。形态
,看看下面这些句子:
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "/Applications/MAMP/Library/htdocs"
ServerName www.example.com:443
这些行设置了所有HTTPS连接的Apache默认行为。这个
ServerName
只是一个虚名,你应该用
本地服务器
; 您还应该确保默认
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
您应该能够看到根文件夹中的项目列表。就这样
本地服务器
!
4) 为自定义本地域创建SSL证书
如果你想创建一个自定义域呢
myproject.dev
也可以使用SSL,这样您就可以在
https://myproject.dev
?
就像我们为之所做的一样
本地服务器
,我们需要专门为
我的项目。德夫
域,然后为配置虚拟主机
我的项目。德夫
.让我们从创建证书开始。
再一次,我发现
this little tool
打电话
create-ssl-certificate
这将为您生成特定本地域的SSL证书。这也是非常容易使用的,唯一不那么清楚的部分是,它是一个NPM包,您可以使用它在全球范围内安装
npm -g install create-ssl-certificate
.
如果一切顺利
创建ssl证书
,您现在应该有两个文件,就像
本地服务器
在第一步。默认情况下,
创建ssl证书
调用生成的文件
ssl.crt
和
ssl.key
.我把它们改名为
服务器阴极射线管
和
服务器钥匙
符合
本地服务器
文件。然后我创造了一个
ssl
文件夹中的
myproject
根文件夹,并将文件移到其中。
让我们暂时忘掉这些文件,继续进行一些Apache配置。
4) 配置MAMP的Apache以接受虚拟主机
如果您以前创建过虚拟主机,那么您可能已经这样做了,因此可以跳过这一步。
要“激活”创建虚拟主机的可能性,我们只需转到
/Applications/MAMP/conf/apache/httpd。形态
并取消对这行的注释:
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
5) 为SSL配置本地域的虚拟主机
现在我们可以设置一个虚拟主机,以便访问
我的项目
至少
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>
通过此配置,您将能够访问
https://myproject.dev
因为服务器被指示搜索我们在步骤4中创建的SSL证书。