Mac中开启Apache的Https功能

title: Mac中开启Apache的Https功能
type: categories
date: 2016-12-26 13:22:26
categories: PHP

tags: [Apache, Https]

为Mac中自带的Apache开启Https功能,证书是自签名的证书。

以下内容是针对已经配置过Apache,能够利用 http://localhost打开网页的基础上的设置。

配置SSL

在终端创建SSL路径

sudo mkdir /etc/apache2/ssl

接下来创建一个私钥key和证书

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

最后,添加证书到钥匙串并信任改证书

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /etc/apache2/ssl/server.crt
配置SSL虚拟主机
1、在终端,编辑httpd.conf
sudo vi /etc/apache2/httpd.conf

找到下面三行, 在英文输入状态下,点击i,进入编辑状态,并将前面的 # 去掉,去掉#之后,control+c退出编辑,再执行:wq回到终端。

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
2、在终端,编辑httpd-vhosts.conf
sudo vi /etc/apache2/extra/httpd-vhosts.conf

添加端口443的虚拟主机

注意: ServerName 字段要和 .crt证书生成时的CN(CommonName)字段相一致(可以是域名,也可以是IP,建议用IP),即本例中的 ServerName localhostCN=localhost

<VirtualHost *:443>
    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/server.crt
    SSLCertificateKeyFile /etc/apache2/ssl/server.key

    <Directory "/Users/indieweb/Sites/localhost">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

回到终端,执行

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

配置SSLCertificateFileSSLCertificateKeyFile文件路径

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

回到终端,执行以下指令,如果出现Syntax OK,则代表配置成功

sudo apachectl configtest

最后,重启Apache

sudo apachectl restart

如果一切顺利的话,就可以在浏览器中打开 https://localhost

到此就完成配置了。

局域网内的HTTPS配置

如果想让局域网内的其他浏览器打开你的网页,则需要将 ServerName和CommonName设置成你的电脑的IP,当然证书都需要重新生成并替换;

同时访问地址变为:https://你的ip地址

注意:要想在iPhone的Safari中访问这个站点,首先ServerName和CommonName一定是IP地址,其次手机要事先安装你生成的server.crt证书,不然Safari会一直处于尝试访问这个的站点的状态,即一闪一闪的现象。

相关链接

https://gist.github.com/jonathantneal/774e4b0b3d4d739cbc53

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值