在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

image.png

  • 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

编辑结果如下:

在Ubuntu系统下的Apache2安装SSL证书

(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端口

在Ubuntu系统下的Apache2安装SSL证书
如上图所示,修改 .htaccess 文件。该图最后三行的意思是,将所有不是443端口的,且域名符合 xxx.com或www.xxx.com的访问,都进行改写。