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: //平台名字
如何部署
安装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进行相关配置:
打开ports.conf配置文件:
路径:/etc/apache2/ports.conf
在配置文件中添加监听端口:
Listen 80
Listen 443
设置site-enabled:
在/etc/apache2/sites-available/目录下有个新生成的default-ssl缺省文件,缺省的网页目录是/var/www/。运行下列命令行,将缺省文件链接到site-enabled目录下:
ln -s/etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl
确认并修改配置文件:
运行下列命令行确认HTTP监听端口设置为80:
#vi /etc/apache2/sites-enabled/000-default
NameVirtualHost
*:80 #监听80端口
ServerAdmin
webmaster@localhost
运行下列命令行确认HTTPS监听端口设置为443,并添加证书路径:
#vi /etc/apache2/sites-enabled/001-ssl
反馈结果如下图所示:
SSLEngine on #开启ssl
SSLProtocol all -SSLv2 –SSLv3 #开启所有协议去掉sslv2、sslv3
SSLCertificateFile /xx/xx/domain.cer #证书路径
SSLCertificateKeyFile /xx/xx/domain.key #证书私钥路径
SSLCertificateChainFile /xx/xx/domain_ca.crt #证书链路径
运行下方命令行重启Apache2服务器:
# service httpd restart
或
# /etc/init.d/apache2 restart
更多信息
你已成功完成SSL证书部署。如果要对所部署的网站进行安全监测,参阅MySSL的使用。