刚倒腾了一下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一下。