主要相关的配置文件
1 | sudo vim /etc/apache2/httpd.conf # apache的主要配置文件 |
三个主要的配置文件,/etc/apache2/httpd.conf
为主要配置文件,模块开启和关闭什么的都在里面,/etc/apache2/extra/httpd-vhosts.conf
就是用来配置apache的虚拟主机的,包括80端口的默认http服务和403端口的默认https服务,/etc/hosts
目前只知道用127.0.0.1 shawn.me
来配置虚拟主机。
语法检查与重启
1 | sudo apachectl configtest # 检查配置文件 |
每次修改配置文件后都要对配置文件进行语法检查,然后重启服务
添加虚拟主机
1 | <VirtualHost *:80> |
开启ssl
生成主机密码
1 | mkdir /private/etc/apache2/ssl |
生成证书请求文件
1 | sudo openssl req -new -key server.key -out request.csr # 需要填一连串的验证信息,验证信息不通过将被标记为不安全的私密链接 |
生成ssl证书
1 | sudo openssl x509 -req -days 365 -in request.csr -signkey server.key -out server.crt |
apache 配置
/private/etc/apache2/httpd.conf
去掉下面代码原来的注释1
2
3LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
Include/private/etc/apache2/extra/httpd-vhosts.conf/private/etc/apache2/extra/httpd-ssl.conf
去掉下面代码原来的注释1
2SSLCertificateFile "/private/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/ssl/server.key"/private/etc/apache2/extra/httpd-vhosts.conf
添加403的虚拟主机1
2
3
4
5
6
7
8<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 "/some/website/directory/"
</VirtualHost>
可能的问题
403 没有权限查看
1
2
3
4<Directory />
AllowOverride none
# Require all denied
</Directory>注释掉
/etc/apache2/httpd.conf
文件中directory
标签内的Require all denied
,不然访问虚拟主机里配置的DocumentRoot会直接报没有权限。
为什么会写这个?其实我只想配置下HTTPS而已。。。