1.ubuntu下的apache2
安装
sudo apt-get install apache2
首先ubuntu下apache文件分布和windows下不一样
我通过apt-get安装
- 默认站点在 /var/www/
- 配置文件在 /etc/apache2/
- 日志在 /var/log/apache/
- 启动脚本是 /etc/init.d/apache2
其中 etc/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重启后,该目录中包含的站点将会被激活。
2.ssl配置
安装openssl
1.sudo apt-get install openssl
开启ssl模块
输入
1.sudo a2enmod ssl
无效则输入下面两个命令
1. sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
2. sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf
获取证书
我因为用的腾讯云,直接在腾讯云上一件申请了一年的免费证书
会有3个文件 1_root_bundle.crt 2_xxx.crt 3_xxx.key
下载证书并解压后得到四种环境的文件夹,
然后把Apache文件夹下面的文件放到服务器 /etc/apache2/ssl/ 里
配置HTTPS(SSL)
1.进入/etc/apache2/ports.conf
查看是否有
-
Listen 80
-
Listen 443
-
没有就添加上去
2.配置ssl虚拟站点
上文安装完后,会在/etc/apache2/sites-available/目录下生成一个缺省的default-ssl文件。缺省的网页目录仍然是/var/www/。
我们可以创建一个链接到site-enabled目录。
sudo ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl
3. 启用SSL站点
a2ensite default-ssl
4. 配置虚拟主机
编辑default-ssl文件,加入证书对应的主机头。
sudo vim /etc/apache2/sites-enabled/default-ssl.conf
找到
- SSLCertificateFile
- SSLCertificateKeyFile
- SSLCertificateChainFile
配置为
- SSLCertificateFile 证书地址/2_xxx.crt
- SSLCertificateKeyFile 证书地址/3_xxx.key
- SSLCertificateChainFile 证书地址/1_root_bundle.crt
5.重启apache
1. sudo service apache2 restart
3.设置http重定向为https
1.启动重定向
启动 rewrite mod
sudo a2enmod rewrite
或者
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
2.设置http端口重定向打开 /etc/apache2/sites-available/000-default.conf,
在 <VirtualHost *:80><VirtualHost> 标签内随便一个地方加入以下三行
- RewriteEngine on
- RewriteCond %{HTTPS} !=on
- RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
或者在网站目录处新建.htaccess 输入
- RewriteEngine on
- RewriteBase /
- RewriteCond %{SERVER_PORT} !^443[ DISCUZ_CODE_209 ]nbsp;
- RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
3.最后重启
sudo service apache2 restart