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

本文介绍如何在Ubuntu系统下的Apache2服务器配置SSL证书,具体包括下载和上传证书文件的方法,在Apache2上配置证书文件、证书链和证书密钥等参数介绍,以及安装证书后效果的验证。成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问Apache2服务器,确保数据传输的安全性。

前提条件

  • 已通过数字证书管理服务控制台签发证书。具体操作,请参见购买SSL证书提交证书申请

  • SSL证书绑定的域名已完成DNS解析,即您的域名与主机IP地址相互映射。您可以通过DNS验证证书工具,检测域名DNS解析是否生效。具体操作,请参见DNS生效验证

  • 已在Web服务器开放443端口(HTTPS通信的标准端口)。

    如果您使用的是阿里云ECS服务器,请确保已经在安全组规则入方向添加TCP 443端口。具体操作,请参见添加安全组规则

环境准备

  • 操作系统:Ubuntu

  • Web服务器:Apache2

重要

不同版本的操作系统或Web服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务

步骤一:下载SSL证书

  1. 登录数字证书管理服务控制台

  2. 在左侧导航栏,选择证书管理 > SSL证书管理

  3. SSL证书管理页面,定位到目标证书,在操作列,单击更多,然后选择下载页签。

  4. 服务器类型为Apache的操作列,单击下载

    image.png

  5. 解压缩已下载的SSL证书压缩包。

    根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。CSR

    CSR生成方式

    证书压缩包包含的文件

    系统生成选择已有的CSR

    • 证书文件(CRT格式):默认以证书绑定域名_public命名。CRT格式的证书文件采用Base64-encoded编码的文本文件。

    • 证书链文件(CRT格式):默认以证书绑定域名_chain命名。

    • 私钥文件(KEY格式):默认以证书绑定域名命名。

    手动填写

    • 如果您填写的是通过数字证书管理服务控制台创建的CSR,下载后包含的证书文件与系统生成的一致。

    • 如果您填写的不是通过数字证书管理服务控制台创建的CSR,下载后只包括证书文件(PEM格式),不包含证书密码或私钥文件。您可以通过证书工具,将证书文件和您持有的证书密码或私钥文件转换成所需格式。转换证书格式的具体操作,请参见证书格式转换

步骤二:在Apache2服务器安装证书

  1. 执行以下命令,在Apache2的安装目录下创建一个用于存放证书的ssl目录。

    mkdir /etc/apache2/ssl
  2. 将证书文件和私钥文件上传到Apache2证书目录(/etc/apache2/ssl)。

    说明

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里云云服务器 ECS,上传文件具体操作,请参见上传或下载文件(Windows)上传文件到Linux云服务器

  3. 执行以下命令,启用SSL模块。

    sudo a2enmod ssl

    image.png

    • SSL模块启用后,会在/etc/apache2/sites-available目录生成SSL证书配置文件default-ssl.conf。

      说明

      default-ssl.conf文件可能存放在/etc/apache2/sites-available/etc/apache2/sites-enabled目录中。

      • sites-available目录存放的是可用的虚拟主机。

      • sites-enabled目录存放的是已经启用的虚拟主机。

    • SSL模块启用后,会自动放行用于HTTPS服务的443端口。若443端口未自动放行,可在/etc/apache2/ports.conf配置文件中添加Listen 443,手动放行443端口。

  4. 编辑default-ssl.conf文件,修改与证书相关的配置。

    1. 执行以下命令,打开default-ssl.conf文件。

      vim /etc/apache2/sites-available/default-ssl.conf
    2. 在default-ssl.conf配置文件中,定位到以下参数,按照中文注释修改。

      ServerName example.com  #请将example.com替换为您证书绑定的域名。部分服务器,没有该配置参数,您需要手动添加。
      SSLCertificateFile /etc/apache2/ssl/domain_name_public.crt  #证书文件路径。请替换为实际证书文件路径。
      SSLCertificateKeyFile /etc/apache2/ssl/domain_name.key   #证书私钥文件路径。请替换为实际证书私钥文件路径。
      SSLCertificateChainFile /etc/apache2/ssl/domain_name_chain.crt  #证书链文件路径。请替换为实际证书链文件路径。
  5. 执行以下命令,将default-ssl.conf映射至/etc/apache2/sites-enabled目录,实现两者之间的自动关联。

    sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
  6. 执行以下命令,重新加载Apache2配置文件。

    sudo /etc/init.d/apache2 force-reload

    image.png

  7. 执行以下命令,重启Apache2服务。

    sudo /etc/init.d/apache2 restart

    image.png

步骤三:验证SSL证书是否安装成功

证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

image.png

相关文档

如何解决SSL证书部署后未生效或网站显示不安全