apache2的目录结构
apache2.conf:Apache的主要配置文件,包含全局配置。
envvars:Apache2环境变量。
ports.conf:配置Apache监听的端口。
mods-available:这个目录包含模块和模块配置文件,不是所有的模块都有配置文件。
mods-enabled:持有/etc/apache2/mods-available目录下文件的链接,当该目录下有一个模块文件和其配置文件,那么Apache重启后该模块将生效。
sites-available:这个目录包含Apache虚拟主机的配置文件。虚拟主机允许Apache配置多个站点并为每个站点配置不同的参数。后面下面配置的时候会配置80端口的http重定向为443的https。
sites-enabled:持有/etc/apache2/sites-available目录下文件的链接。当Apache重启后,该目录中包含的站点将会被激活。
安装ssl
1.首先申请ssl证书并下载,然后解压并上传至服务器,腾讯云可以去其官网申请ssl。
2.在root状态下执行openssl,看看是否安装了openssl,如果没啥特殊变化,说明没安装,则执行apt-get install openssl进行安装。
3.开启ssl模块。sudo a2enmod ssl
4. 配置https(ssl)
- 进入/etc/apache2/ports.conf,查看Listen 80 和 Listen 443 是否打开,没打开就添加上去。
- 配置ssl虚拟站点,在上面步骤执行完毕之后/etc/apache2/sites-available/下会有一个default-ssl.conf,使用vim打开它,在上面改一下配置文件,其中ServerName是你网址,DocumentRoot是网站根目录,
SSLCertificateFile 证书地址/2_xxx.crt SSLCertificateKeyFile 证书地址/3_xxx.key SSLCertificateChainFile 证书地址/1_root_bundle.crt
效果如图:
- 创建一个连接到site-enabled目录的软连接,把文件复制过去也可以
ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl
4.重启apache
设置http重定向为https
1.启动rewrite mod
a2enmod rewrite
或者
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
2.打开 /etc/apache2/sites-available/000-default.conf ,
在 <\VirtualHost *:80><\VirtualHost> 标签内随便一个地方加入以下三行
[highlight lanaguage="语言"]
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
[/highlight]
3.重启apache