关闭

MAC下配置Apache服务器支持https

标签: apachessl服务器
354人阅读 评论(0) 收藏 举报

MAC下配置Apache服务器支持https

为了方便内部测试扒了好多论坛,用了一个上午的时间,终于把https服务器配置好了,为了避免大家少走弯路,把自己的经验写下来

1.生成ssl证书

生成主机密匙 (ssl这个文件夹可以随意起名字,只要在后面的设置中保持一致即可)

sudo mkdir /private/etc/apache2/ssl
cd /private/etc/apache2/ssl
sudo ssh-keygen -f server.key

2.生成证书请求文件(这个过程感觉跟iOS生成开发证书类似)

sudo openssl req -new -key server.key -out request.csr
// 这个过程中会让输入一些证书机构的信息,按照提示或者留空就行,注意留下密码

3.使用server.key 和 request.csr 生成ssl证书

sudo openssl x509 -req -days 365 -in request.csr -signkey server.key -out server.crt

4.配置Apache

1.备份httpd.conf文件

cd /private/etc/apache2/
// 需要拷贝一份,为了操作失败后退回系统原样(只需要执行一次)
sudo cp httpd.conf httpd.conf.bak
//退回系统原样配置命令(只需要执行一次)
sudo cp httpd.conf.bak httpd.conf

2.编辑httpd.conf文件

sudo vim /private/etc/apache2/httpd.conf

找到下面四行,去掉前面的#

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

找到DocumentRoot,更改根路径(需要在用户目录下,新建Sites文件夹)

改为DocumentRoot “/Users/$yourname/Sites”

3.复制httpd-ssl.conf文件

cd /private/etc/apache2/extra/
sudo cp httpd-ssl.conf httpd-ssl.conf.bak
// 作用同上面对httpd.conf复制

4.编辑httpd-ssl.conf文件

将以下两行

SSLCertificateFile “/private/etc/apache2/server.crt”
SSLCertificateKeyFile “/private/etc/apache2/server.key”

分别修改为:(需要注意的是ssl文件夹为第1步创建的文件夹)

SSLCertificateFile “/private/etc/apache2/ssl/server.crt”
SSLCertificateKeyFile “/private/etc/apache2/ssl/server.key”

5.复制httpd-vhosts.conf文件

sudo cp httpd-vhosts.conf httpd-vhosts.conf.bak

在文件末尾添加:

<VirtualHost *:443>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /private/etc/apache2/ssl/server.crt
    SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
    ServerName localhost
    DocumentRoot "/Users/$yourname/Sites"
    <Directory "/Users/$yourname/Sites">
        AllowOverride All
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

并把两块<VirtualHost *:80>全部注释掉

3.多行注释:
  1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来
  2. 按大写字母I,再插入注释符,例如 #
  3. 按esc键就会全部注释了

5.测试配置

sudo apachectl configtest

6.重启apachec服务器

sudo apachectl -k restart

7.在你的Sites目录下拖入一个html文件,直接就可以访问啦

进行到这里就配置完了,重启Apache,访问https://localhost/$name.html试试吧!

8.item-serverces协议和plist文件参考地址

http://blog.csdn.net/bihailantian1988/article/details/12973507
参考:
http://blog.coderharry.com/2015/06/23/2015-6-23-Mac-OS-ssl/
http://www.cnblogs.com/y500/p/3596473.html
http://stackoverflow.com/questions/13969272/apache-sslmutex-issue
http://stackoverflow.com/questions/10873295/error-message-forbidden-you-dont-have-permission-to-access-on-this-server

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8214次
    • 积分:227
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:3篇
    • 译文:1篇
    • 评论:3条
    文章分类
    最新评论