CentOS7 + httpd SSL 证书部署彻底详细教程

1. 在进行了简单的httpd设置后,就能够为网站添加SSL证书功能了。

2. 首先得获取证书,有了证书才能添加。咱们采用本地上传的方式将SSL证书上传到CentOS上。

3. 首先,判断CentOS7是否已经安装了SSL证书服务模块 mod_ssl 与 openssl:

rpm -qa mod_ssl

键入上式,没有反应就是没有安装SSL证书服务模块 mod_ssl。通常新装的CentOS7默认没有安装。

rpm -qa openssl

键入上式,没有反应就是没有安装SSL证书服务模块 openssl。通常新装的CentOS7默认有安装。为:openssl-1.0.2k-12.el7.x86_64 。

4. 安装mod_ssl 与openssl

yum install mod_ssl openssl

(用空格隔开表示两个都安装)
(若是已经安装了openssl,上述命令会直接更新openssl,更新后版本为:html

openssl-1.0.2k-16.el7_6.1.x86_64,不变表示CentOS7已经安装可用安装源的最新版)

5. 通过第四步安装后,CentOS7中会自动生成 /etc/httpd/conf.d/ssl.conf 文件,ssl.conf文件就是SSL模块的配置文件。

6. 使用Filezilla或者直接输入命令行,建立文件夹:/var/www/ssl

mkdir /var/www/ssl

(注意: mkdir 与待建立目录名之间只能隔一个空格。)web

7. 将从云服务商中下载的上传到以前在CentOS7上建立的,用于存放SSL证书的文件夹/ssl。

从云服务商中下载的证书为: www.域名.com.zip 的zip文件。解压,有:

Apache/
IIS/
Nginx/
Tomcat/服务器

共四个文件夹,分别用于存放适合对应的类型的服务系统的格式的SSL证书文件。

另外还有一个:www.域名.com.csr 的csr文件。

8. 应为是配置Apache的httpd服务器系统,因此咱们将只须要将Apache文件夹下面的三个ssl证书文件复制到在CentOS上建立的 /var/www/ssl 文件夹便可。

这三个ssl证书文件分别是:
1_root_bundle.crt
2_www.ydook.com.crt
3_www.ydook.com.keysvg



9. 使用Filezilla+VSCode修改/etc/httpd/conf.d/ssl.conf文件:

对应于云服务商提供的SSL证书与Apache的ssl三证书特性,须要修改ssl.conf文件中的三个证书存放路径:

修改1:将第100行的:

SSLCertificateFile /etc/pki/tls/certs/localhost.crt 修改成:
SSLCertificateFile /var/www/ssl/2_www.ydook.com.crt网站

修改2:将第107行的:

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 修改成:
SSLCertificateKeyFile /var/www/ssl/3_www.ydook.com.key命令行

修改3:将第122行的:

#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt 去掉#号,修改成:
SSLCACertificateFile /var/www/ssl/1_root_bundle.crtrest

修改4:查看设置第70行,是否设置为:SSLEngine on ,若是不是就改成 SSLEngine on 。

修改5:将第56行的:

修改成:
<VirtualHost *:443>code

修改6:将第59行的:

#DocumentRoot “/var/www/html” 去掉#号注释,修改成:
DocumentRoot “/var/www/ydook”xml

修改7:将第60行的:

#ServerName www.example.com:443 去掉#号注释,修改成:
ServerName www.ydook.com:443htm

修改8:将第64行的:

ErrorLog logs/ssl_error_log 修改成:
ErrorLog /var/www/ydook/logs/error.log

修改9:将末尾的第213行的:

CustomLog logs/ssl_request_log \ 修改成:
CustomLog /var/www/ydook/logs/access.log combined
并将下面一行的:"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x “%r” %b" 注释掉。

或者 去掉 combined 直接改成:

CustomLog /var/www/ydook/logs/access.log \ (推荐这种方法,保留通配符)

最后,从新httpd 服务,使得修改生效:

systemctl restart httpd

完成!!!


修改示例:

<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
SSLCACertificateFile /etc/pki/tls/certs/root-certificate.crt # 若是使用自签名的证书或者由 ca-certificates 提供的根证书, 请删除此行代码

<VirtualHost>
     ServerAdmin info@example.com
     ServerName www.example.com
     DocumentRoot /var/www/example.com/public_html/
     ErrorLog /var/www/example.com/logs/error.log
     CustomLog /var/www/example.com/logs/access.log combined
</VirtualHost>