在Ubuntu系统下的Apache2安装SSL证书
阅读本文的前提条件
(1)准备好了一台ubuntu服务器,笔者的ubuntu服务器版本是18.04 LTS;
(2)安装好了 apache2,笔者的apache2版本是 Server version: Apache/2.4.29 (Ubuntu);Server built: 2023-03-08T17:34:33;
(3)自己使用OpenSSL生成或者从腾讯、阿里云申请并下载好了apache2的SSL证书。
证书一共三个文件:
a) 命名为 root_bundle.crt 的文件(证书链文件);
b) 命名为 www.yoursites.com.crt 的文件(证书文件);
c) 命名为 www.yoursites.com.key 的文件(私钥文件)。
证书安装过程
(1)执行以下命令,启用 SSL模块:
sudo a2enmod ssl
- SSL模块启用后,会在
/etc/apache2/sites-available
目录生成SSL证书配置文件default-ssl.conf。 -
SSL模块启用后,会自动放行用于HTTPS服务的443端口。若443端口未自动放行,可在
/etc/apache2/ports.conf
配置文件中添加Listen 443,手动放行443端口。
(2)编辑default-ssl.conf文件,修改与证书相关的配置。
vim /etc/apache2/sites-available/default-ssl.conf
编辑结果如下:
(3)执行以下命令,将default-ssl.conf映射至/etc/apache2/sites-enabled
目录,实现两者之间的自动关联。
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
(4)执行以下命令,重新加载Apache2配置文件。
sudo /etc/init.d/apache2 force-reload
(5)执行以下命令,重启Apache2服务。
sudo /etc/init.d/apache2 restart
将80端口的访问自动转移到443端口
如上图所示,修改 .htaccess 文件。该图最后三行的意思是,将所有不是443端口的,且域名符合 xxx.com或www.xxx.com的访问,都进行改写。