ubuntu下安装的apache2结构与centos不同
/etc/apache2/sites-available目录下存放可用的虚拟机 /etc/apache2/sites-enabled/存放已经启用的虚拟机
一. 申请并上传证书到服务器
mkdir /etc/apache2/ssl
下载证书并上传到上述目录
这里我申请的是腾讯云的免费证书,下载证书文件包括:
# 证书文件 root_bundle.crt # 证书文件 yatenglg.cn.crt # 私钥文件 yatenglg.cn.key # CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。 yatenglg.cn.csr
二. 配置ssl
配置文件为/etc/apache2/sites-available/default-ssl.conf
1. 如果文件不存在,需要手动开启ssl
sudo a2enmod ssl
启动后,会自动生成/etc/apache2/sites-available/default-ssl.conf文件
2. 配置
vim 打开default-ssl.conf文件
找到如下加粗内容,并修改:
SSLEngine on SSLCertificateFile /etc/apache2/ssl/yatenglg.cn.crt SSLCertificateKeyFile /etc/apache2/ssl/yatenglg.cn.key SSLCertificateChainFile /etc/apache2/ssl/root_bundle.crt
3. 将配置文件链接到etc/apache2/sites-enabled文件夹下
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf
4. 重新加载Apache 2配置文件
sudo /etc/init.d/apache2 force-reload
5. 重启Apache 2服务
sudo /etc/init.d/apache2 restart
6. 通过https访问网站
三. 强制http跳转到https
1. 开启rewrite
sudo a2enmod rewrite
2. 设置http端口重定向
编辑 /etc/apache2/sites-available/000-default.conf 文件
添加如下内容
## 重定向http到https RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
3. 重新加载Apache 2配置文件
sudo /etc/init.d/apache2 force-reload
4. 重启Apache 2服务
sudo /etc/init.d/apache2 restart