这篇文章主要讲的就是如何让自己的网站免费从HTTP升级为HTTPS,使用的是 Let’s Encrypt的证书。实际上也就是一个Let’s Encrypt 免费证书获取教程 。
作为一个博客,自然不想让在被别人浏览的时候,出现莫名的广告(运营商劫持)。这时候,HTTPS的价值就体现出来了。 HTTPS的好处还有很多,但单单这一条,就够我花心思去升级了。 (其实主要目的是提升网站Biger :)
Let’s Encrypt 简介
如果要启用HTTPS,我们就需要从证书授权机构(以下简称CA) 处获取一个证书,Let’s Encrypt 就是一个 CA。我们可以从 Let’s Encrypt 获得网站域名的免费的证书。这篇文章也主要讲的是通过 Let’s Encrypt + Nginx 来让网站升级到HTTPS。
Certbot 简介
Certbot 是Let’s Encrypt官方推荐的获取证书的客户端,可以帮我们获取免费的Let’s Encrypt 证书。Certbot 是支持所有 Unix 内核的操作系统的,个人博客的服务器系统是CentOS 7,这篇教程也是通过在个人博客上启用HTTPS的基础上完成的。
获取免费证书
1、安装Certbot客户端
debain、Ubuntu
apt install certbot
Centos
yum install certbot
Do you want to continue? [Y/n] ,输入y,等待完成安装。
2、获取证书
certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com
这个命令会为 example.com 和 www.example.com(修改成要获取的网站) 这两个域名生成一个证书,使用 --webroot 模式会在 /var/www/example(选择对应网站根目录) 中创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,certbot 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器。这个命令在大多数情况下都可以。
运行后会让你输入一个邮箱,获取成功会发邮件告知获取成功情况,如图;
图片执行的命令是,li.cn这个网站的根目录在/root/web,本次获取li.cn和www.li.cn的ssl证书
3、获取成功
把公钥(/fullchain.pem)和私钥(/privkey.pem)链接复制出来,并准备修改Nginx配置
Nginx 配置启用 HTTPS
进入nginx的配置修改界面,大多为,根据实际情况修改
vi /etc/nginx/nginx.conf
博客系统使用的是Nginx 服务器来转发请求,这里贴一下Nginx配置。
server {
server_name li.cn www.li.cn;
listen 443;
ssl on; #nginx 1.5后不需要这个
#【上面复制的公钥链接】
ssl_certificate /etc/letsencrypt/live/li.cn/fullchain.pem;
#【上面复制的私钥链接】
ssl_certificate_key /etc/letsencrypt/live/diamondfsd.com/privkey.pem;
#后面部分根据实际填写,只作为展示
location / {
proxy_pass http://127.0.0.1:3999;
}
}
主要是监听 443 端口,启用 SSL,并配置 SSL 的证书路径(公钥,私钥的路径)。 通过这些配置 我们就已经成功的完成了 Https 的启用。 现在打开我网站就可以看到标有 安全 的字样。
重启Nginx服务
sudo systemctl restart nginx
续签SSL证书
配置完这些过后,我们的工作还没有完成。 Let’s Encrypt 提供的证书只有90天的有效期,我们必须在证书到期之前,重新获取这些证书,certbot 给我们提供了一个很方便的命令,那就是 certbot renew。 通过这个命令,他会自动检查系统内的证书,并且自动更新这些证书。 我们可以运行这个命令测试一下
certbot renew --dry-run
定时续签SSL证书
用 crontab 来启动这个定时任务,并把定时任务加进去,保存退出(看提示Exit退出的快键键是什么,对着操作)
crontab -e
30 2 * */2 * certbot renew --dry-run
至此,整个网站升级到HTTPS就完成了。 总结一下我们需要做什么
- 获取Let’s Encrypt 免费证书
- 配置Nginx开启HTTPS
- 定时刷新证书
本文根据根据https://diamondfsd.com/lets-encrytp-hand-https/细化修改,如有提示错误,可查看完整版
暂无评论内容