MAC Sierra 本地配置HTTPS功能

来源 https://gist.github.com/jonathantneal/774e4b0b3d4d739cbc53
强烈建议,在执行.conf相关操作时,请务必先备份相关文件,例:

sudo cp ..some ..some.bak

一 配置个人的Sites文件夹

1 确认apache

打开终端,启动apache

sudo apachectl start

访问http://localhost/ 如果提示It works,表示apachectl已OK。

2 配置apache

小技巧:vi打开后按shift+: 提示后输入

set number

可显示终端行数:

sudo vi /etc/apache2/httpd.conf

将 line 212 替换为可用的域名

ServerName localhost`

下一步, 将line 160 和 line 499 去掉#号来打开Virtual Hosts.

LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

Include /private/etc/apache2/extra/httpd-vhosts.conf

另,如果没打开php的话,可以将169前#号去掉打开php

LoadModule php5_module libexec/apache2/libphp5.so

3 配置Virtual Hosts

sudo vi /etc/apache2/extra/httpd-vhosts.conf

将里面所有内容替换成以下内容,其中indieweb改成你的用户名,可在终端whoami查看


    ServerName localhost
    DocumentRoot "/Users/indieweb/Sites/localhost"

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    

4 重启apache

sudo apachectl restart

5 配置储存网页文件夹

mkdir -p ~/Sites/localhost

创建一个html便于展示结果

echo "

localhost works

" > ~/Sites/localhost/index.html

现在打开http://localhost/,看是否显示localhost works,如果不是的话请检查一下配置。

二 配置SSL

1 创建证书文件夹

sudo mkdir /etc/apache2/ssl

2 生成私有key和证书

sudo openssl genrsa -out /etc/apache2/ssl/localhost.key 2048

sudo openssl req -new -x509 -key /etc/apache2/ssl/localhost.key -out /etc/apache2/ssl/localhost.crt -days 3650 -subj /CN=localhost

3 将证书添加到钥匙链中,并且添加始终信任

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /etc/apache2/ssl/localhost.crt

4 配置Virtual Host

sudo vi /etc/apache2/httpd.conf

5 打开 lines 89 和143 前的#适配HTTPS

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so

6 打开line 516前#号

Include /private/etc/apache2/extra/httpd-ssl.conf

7 配置Virtual Host

sudo vi /etc/apache2/extra/httpd-vhosts.conf

8 添加443端口,将indieweb替换成自己的用户名


    ServerName localhost
    DocumentRoot "/Users/indieweb/Sites/localhost"

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /etc/apache2/ssl/localhost.crt
    SSLCertificateKeyFile /etc/apache2/ssl/localhost.key

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    

9 配置ssl文件,此处原文有错误

sudo vi /etc/apache2/extra/httpd-ssl.conf

10 将line 44,45 注释,修改成自己的路径

#SSLCertificateFile "/private/etc/apache2/server.crt"
#SSLCertificateKeyFile "/private/etc/apache2/server.key"
SSLCertificateFile "/etc/apache2/ssl/localhost.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/localhost.key"

11 检查是否正确

 sudo apachectl configtest 

12 重启apache

sudo apachectl restart

三 确认结果

https://localhost/

你可能感兴趣的:(MAC Sierra 本地配置HTTPS功能)