在Apache2服务器上部署SSL证书
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进行相关配置:
- 打开
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
<VirtualHost *:443> 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 #证书链路径
- 运行下列命令行确认HTTP监听端口设置为80:
- 运行下方命令行重启Apache2服务器:
或# service httpd restart
# /etc/init.d/apache2 restart
更多信息
你已成功完成SSL证书部署。如果要对所部署的网站进行安全监测,参阅MySSL的使用。