CentOS7服务器上部署httpd SSL 证书

不同的系统有不同的装法,主要是httpd需要SSl证书服务模块mod_ssl,需要配置ssl.conf和httpd.conf

以下是CentOS7+httpd的部署步骤

  1. 在网站用httpd服务运行正常后,就可以为网站添加SSL证书功能了。

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

可以在自己的服务器供应商获取免费SSl证书,获取流程,阿里云–>云安全–>SSL证书–>选购–>单域名–>DVSSL–>免费版

申请通过后,下载Apache的SSL证书的压缩包(参照第7步)

  1. 首先,判断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 。

  1. 安装mod_ssl 与openssl

yum install mod_ssl openssl

(用空格隔开表示两个都安装)

(如果已经安装了openssl,上述命令会直接更新openssl,更新后版本为:

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

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

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

mkdir /var/www/ssl

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

  1. 将从云服务商中下载对应的Apache证书压缩包(如4330715_www.nsk666.com_apache.zip)上传到之前在CentOS7上创建的,用于存放SSL证书的文件夹/ssl。

  2. 配置Apache的httpd服务器系统,将压缩包里面的三个ssl证书文件复制到在CentOS上创建的 /var/www/ssl 文件夹即可。

这三个ssl证书文件分别是:

4330715_www.nsk666.com_public.crt

4330715_www.nsk666.com_chain.crt

4330715_www.nsk666.com.key

  1. 使用vim 命令修改 /etc/httpd/conf.d/ssl.conf文件:vim /etc/httpd/conf.d/ssl.conf

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

修改1:将第100行的:

SSLCertificateFile /etc/pki/tls/certs/localhost.crt 修改为:

SSLCertificateFile /var/www/ssl/4330715_www.nsk666.com_public.crt

修改2:将第107行的:

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key 修改为:

SSLCertificateKeyFile /var/www/ssl/4330715_www.nsk666.com.key

修改3:将第122行的:

#SSLCACerteChainFile /etc/pki/tls/certs/chain.crt 去掉#号,修改为:

SSLCACertifeChainFile /var/www/ssl/4330715_www.nsk666.com_chain.crt

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

修改5:将第56行修改为:

<VirtualHost :443>

修改6:将第59行的:

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

DocumentRoot “/var/www/项目名”

修改7:将第60行的:

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

ServerName www.nsk666.com:443

修改完成后保存修改 按下Esc–> : -->wq!–>回车

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

systemctl restart httpd

完成!!!

10.在用户输入域名后,http自动跳转https设置

修改httpd的配置文件httpd.conf

vim /etc/httpd/conf/httpd.conf

在229行加入

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^(. )?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]