ubuntu apache2 添加ssl证书

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