网站为啥要https化,要从它的原理来看,详见https的工作原理,https是怎么样开始工作的
直接介绍
如果自己网站启用https,又想不花钱,这时候我们就需要从证书授权机构(CA)获取一个免费Let’s Encrypt证书。本篇也是针对Let’s Encrypt + nginx来使网站https化。
我们可以通过Let’s Encrypt客户端Certbot 来获取Let’s Encrypt免费证书,它支持linux系统。
下载生成Let’s Encrypt免费证书
1、安装Certbot客户端:
yum install certbot
2、获取Let’s Encrypt证书:
certbot certonly --webroot -w /var/www/你的网站更目录名 -d xxx.com -d www.xxx.com
注:
命令会以xxx.com和www.xxx.com这两个域名生成一个证书
--webroot会生成证书相关文件放置“/var/www/你的网站根目录”中
证书生成后,我们可以在/etc/letsencrypt/live/目录下看到对应域名的免费Let’s Encrypt证书相关文件
这时候我们生成证书完成,接下来配置我们的nginx服务,启用https(网上一大堆繁琐的我们直接略过,简单粗暴配置)
nginx服务配置启用https
主要监听443接口,启用SSL,并配置SSL的证书路径
server
{
listen 80;
#listen [::]:80 default_server ipv6only=on;
server_name xxx.com www.xxx.com;
index index.html index.htm index.php;
root /var/www/你的网站根目录;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/xxx.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.cn/privkey.pem;
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
}
重启nginx服务,打开你的网站就是https访问了
自动更新续期Let’s Encrypt证书
Let’s Encrypt证书有效期90天,到期之气那我们必须重新获取这些证书,Certbot为我们提供了
certbot renew --dry-run
这条命令会自动检查系统内证书,并更新这些证书,使用–dry-run测试是否可用
当然我们也可以创建定时任务crontab来完成更新续期证书操作:
1、打开crontab文件
crontab -e
添加Certbot命令,每隔两个月 凌晨2:15执行更新操作
30 4 * */2 * root certbot renew --quiet --pre-hook "lnmp nginx stop" --post-hook "lnmp nginx start"
解释如下:
- 30 4:每天凌晨4:30执行该任务
- */2:每2个月执行一次
- *:该任务每个月的每一天都会执行
- root:以root用户的身份来执行该命令
- certbot renew:更新Let’s Encrypt证书
- –quiet:在执行该命令时不输出任何信息
- –pre-hook:在证书更新前做的动作
- –post-hook:在证书更新成功后执行的动作
至此https化完成~
原创文章转载请注明出处:叁半月–免费的SSL证书,let’s Encrypt安全证书免费申请使用,网站https化,自动续期SSL证书