Centos 7.4 给网站添加 HTTPS协议
概述
网站传输信息过程,经过若干的运营商和基站,出于道德非道德,合法不合法手段,你的传输信息很容易被拿走泄漏
为此我们需要为网站添加更加安全的https协议,而非http协议
添加方法
ssl证书:ssl就是安全套接层,是Netscape所研发,用以保障在Internet上数据传输的安全,利用 数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听的一种应用软件。
它已被广泛地用于web浏览器与服务器之间的 身份认证和加密数据传输
【HTTP 】
- Hyper Text Transfer Protocol(超文本传输协议)的缩写,服务器传输超文本到本地浏览器的传送协议
【HTTPS】
- Hyper Text Transfer Protocol over SecureSocket Layer (安全套接层的超文本传输协议)的缩写,在HTTP的基础上进行了数据传输增加了加密解密过程。
使用https协议,需要一个ssl证书
流程
1.登录免费ssl证书申请网站 --> getting started
2.使用cerbot来申请ssl证书,其官网 --> 选择 对应的web服务器与操作系统,按照提示进行安装
针对centos7.4开始安装
环境:
nginx的Web服务器、 Centos7.4的操作系统
具体官网链接
1.管理员身份通过ssh方式,进入服务器
2.选择可选通道
yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
3.安装Certbot
yum install certbot python2-certbot-nginx
4.获得证书 ( 使用Nginx插件进行认证和安装 )
certbot --nginx
4-2.如果这一步成功,且没有报错的话,那么你需要填写几个配置问题
如:
- 输入自己的邮箱 --- 自行填写
- 同意协议与否 --- y
- 同意分享邮箱,接收Certbot订阅 --- y/n
- 是否解析出了你的域名 --- 根据解析列表,填写对应序号
- 是否重定向到https协议 --- 2
配置完毕!!
Congratulations! You have successfully enabled https://xxx.com
如果重启阿里云服务器后,无法访问https网址,记得去开启443端口,详细见底部【各种安装包错】
5.设置自动更新证书
由于let’s encrypt证书有效期只有三个月,到期需要再次申请,使用certbot 自动更新功能,维护证书更新
官方的文档:
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null
但是更新证书,重启nginx服务器之外;还有其他应用本身的web服务需要启动,需要关注pm2,或者手动关注...这块如何进一步实现自动化,待解决.......
certbot指令
certbot certificates
--- 显示域名,到期时间,证书路径,私钥路径的信息 ( 需要等待一会儿 )
certbot renew
--- 手动更新证书(快过期30内才可以执行)
certbot renew --force-renewal
--- 强制更新证书(忽略更新证书的30天限制)
crontab -e
--- 开启定时任务
证书配置文件 路径
/etc/letsencrypt/renewal/域名.conf