SSL证书的部署
什么是SSL证书,为什么需要它?
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。
SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
具体请查阅:https://baike.baidu.com/item/SSL%E8%AF%81%E4%B9%A6/5201468?fr=aladdin
准备事项
- 需要购买和申请SSL证书
阿里云,腾讯云等服务商都提供SSL证书购买服务,可以直接去申请,有很多版本和配置可供选择,我选择了阿里云免费提供的一年ssl证书。(推荐在自己的域名服务商购买,进行验证的时候会方便很多)
- 下载和上传证书文件
购买成功后会进行域名验证,请根据服务商提示完成验证。验证成功后大概几分钟就会签发成功,此时去证书管理控制台进行下载。
下载证书时记得下载自己服务器对应的版本。下载到本地之后进行解压,会看到一个key文件和crt(或者pem)文件。
文件上传可使用rz和sz命令:
1 | yum install -y lrzsz |
命令用法自行百度。
安装证书和配置服务器
本文档以CentOS 7、Nginx 1.16.1为例
- 首先查看主配置文件中http所包含域。
注:不是server域而是http。
1 | cat /etc/nginx/nginx.conf |
结果如下:
- 在此目录下新建一个配置文件
1 | vim /etc/nginx/conf.d/ssl.conf |
写入配置:
1 | 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。 |
保存退出。
- 查看SSL证书安装目录
1 | cat /etc/nginx/nginx.conf |
找到以下目录:
把上传到服务器的SSL证书(pem和key文件)分别放在指定目录即可。
- 测试是否生效如果配置成功,则显示结果如下:
1
nginx -t
- 可能遇到的错误(务必不要完全执行,只是参考作用,数据无价做好备份)
(1)配置文件错误,无法生效
检查配置文件语法、单词等正确。
(2)unknown directive “ssl” in /etc/nginx/conf.d/ssl.conf:121
部署SSL要用到nginx中的SSL模块,但是我们一开始编译nginx的时候并没有把SSL模块也一起编译进去,所以导致这个问题的出现。
安装openssl:
1 | yum -y install openssl openssl-devel |
在/usr/local/nginx-1.14.2(即Nginx安装目录)执行编译ssl模块:
1 | ./configure --with-http_ssl_module |
备份、转移
1 | cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak |
查看是否将ssl模块编译进来
1 | //当看到以下信息说明成功! |
重新启动nginx
1 | cd /usr/local/nginx/sbin |
这次部署就到这里。
注意注意注意:
请务必一定要考虑清楚操作后果,个人情况不同,机况不同,结果自然不同,我的经历和过程只能给您起到参考作用,一定务必不要完全按照我的过程去完成,最后,数据无价,做好备份工作。