Mac OS X中Apache开启HTTPS

Reading time ~1 minute

刚倒腾了一下HTTPS,使用的是Apache服务器,由于不想开虚拟机,所以是直接在OS X中进行的设置。

要想开启HTTPS,第一步当然还是准备好证书,关于自制证书可以参见这里

证书准备好后,就要着手开始配置Apache了。

首先是开启Apache的ssl模块并启用ssl和vhosts的配置文件(去掉/etc/apache2/httpd.conf中下面三行前面的#):

LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf

接下来是配置SSL的证书位置,编辑/etc/apache2/extra/httpd-ssl.conf,修改下面两行,分别指向证书文件和私钥文件:

SSLCertificateFile "/private/etc/apache2/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/server.key"

如果说是证书和私钥在同一个文件中的,可以不用设置上面的第二行,注释掉即可。

最后是配置虚拟主机,修改/etc/apache2/extra/httpd-vhosts.conf,在文件的最后加入如下几行(其它几个默认的vhosts如果不用可以注释掉):

<VirtualHost *:443>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /private/etc/apache2/certs/server.crt
    SSLCertificateKeyFile /private/etc/apache2/certs/server.key
    ServerName localhost
    DocumentRoot "/Users/Jayvic/Sites"
</VirtualHost>

其中SSLCertificateFile和SSLCertificateKeyFile也是同上一样指向证书和私钥。

至此,配置已经完成,可以使用下面的命令来检查Apache的配置:

apachectl configtest

如果发现有没有开启的模块就开启一下即可,确认配置无误后,使用下面的命令重启Apache即可:

sudo apachectl restart

PS:在配置的时候感觉/private/etc与/etc有点混乱了,就查了下,发现Mac OS X下是用/private/etc,而为了兼容Unix,所以/etc通过链接指向/private/etc,所以基本可以认为使用两个是一样的。


今天偶然看到一篇nginx https的文章,感觉不错,mark一下。

挂载网络文件夹后网络故障时文件操作命令卡死

挂载 NFS 或者 Samba 的时候,经常会由于网络故障导致挂载好的链接断掉。此时如果尝试进行 ls、cd、df 等各种命令,只要与此目录沾上边,就会卡住。如果使用了类似 oh-my-zsh 这种配置的,只要在网络目录中,弹出命令提示符前就会直接卡住。这个时候第一反应就是...… Continue reading

路由折腾记 第四弹

Published on September 02, 2017