Apache2是现有的基于Web服务器,本文详细描述如何在Apache2服务器中部署并使用SSL(Secure Sockets Layer)证书。

前提条件

  • 确保已经获取数字证书。有关获取数字证书方法,可参阅如何获取数字证书

  • SSL加解密软件:Apache服务器自身没有Public Key Infrastructure(PKI)相关库,而是采用第三方API进行,例如:OpenSSL 1.1.0f及以上版本。

    注意:通过运行openssl version -a命令行查看系统中OpenSSL版本号。其中,build on参数日期须晚于2017年5月

  • $ openssl version -a# 输出结果:# LibreSSL 2.2.7  //版本号# built on: date not available  //build on 参数# platform: <platform name> //平台名字

如何部署

安装Apache2

运行apt-get insatall apache2命令行安装Apache2服务器。

配置Apache2

配置文件路径比较分散,一般如下:

  • 默认的根目录在:/var/www

  • 配置文件在:/etc/apache2/

  • 日志在:/var/log/apache/

  • 启动脚本/usr/bin/apache2ctl 或者 /etc/init.d/apache2

启用SSL功能

运行$sudo a2enmod ssl命令行加载SSL模块。这条命令行相当于

sudo ln -s/etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled

sudo ln -s/etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled


注意:如果没有a2enmod指令,Apache2服务器无法进行SSL相关的加解密操作,需要运行下列命令行,在apache2.conf中设置SSL模块加载:

LoadModule ssl_module/usr/lib/apache2/modules/mod_ssl.so


SSL相关配置

SSL配置加载完毕后,按照如下步骤对SSL进行相关配置:

  1. 打开ports.conf配置文件:
    路径:/etc/apache2/ports.conf

  2. 在配置文件中添加监听端口:

  3. Listen 80Listen 443
  4. 设置site-enabled:
    /etc/apache2/sites-available/目录下有个新生成的default-ssl缺省文件,缺省的网页目录是/var/www/。运行下列命令行,将缺省文件链接到site-enabled目录下:

  5. ln -s/etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl
  6. 确认并修改配置文件:

    • 运行下列命令行确认HTTP监听端口设置为80:

    #vi /etc/apache2/sites-enabled/000-defaultNameVirtualHost*:80                  #监听80端口ServerAdmin webmaster@localhost
    • 运行下列命令行确认HTTPS监听端口设置为443,并添加证书路径:

    #vi /etc/apache2/sites-enabled/001-ssl


    反馈结果如下图所示:

    <VirtualHost *:443>SSLEngine	on				  #开启sslSSLProtocol all -SSLv2 –SSLv3 #开启所有协议去掉sslv2、sslv3SSLCertificateFile   /xx/xx/domain.cer    #证书路径SSLCertificateKeyFile /xx/xx/domain.key  #证书私钥路径SSLCertificateChainFile /xx/xx/domain_ca.crt  #证书链路径


  7. 运行下方命令行重启Apache2服务器:

  8. # service httpd restar

  9. # /etc/init.d/apache2 restart

更多信息

你已成功完成SSL证书部署。如果要对所部署的网站进行安全监测,参阅Gworg的使用