Linux自动申请和续签免费的SSL证书,让你的网站拥抱 HTTPS

这篇文章主要讲的就是如何让自己的网站免费从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

 

图片[1]-Linux自动申请和续签免费的SSL证书,让你的网站拥抱 HTTPS-i空间

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 来验证你的域名是否绑定的这个服务器。这个命令在大多数情况下都可以。

运行后会让你输入一个邮箱,获取成功会发邮件告知获取成功情况,如图;

图片[2]-Linux自动申请和续签免费的SSL证书,让你的网站拥抱 HTTPS-i空间

图片执行的命令是,li.cn这个网站的根目录在/root/web,本次获取li.cn和www.li.cn的ssl证书

3、获取成功

图片[3]-Linux自动申请和续签免费的SSL证书,让你的网站拥抱 HTTPS-i空间

把公钥(/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

图片[4]-Linux自动申请和续签免费的SSL证书,让你的网站拥抱 HTTPS-i空间

至此,整个网站升级到HTTPS就完成了。 总结一下我们需要做什么

  1. 获取Let’s Encrypt 免费证书
  2. 配置Nginx开启HTTPS
  3. 定时刷新证书

 

本文根据根据https://diamondfsd.com/lets-encrytp-hand-https/细化修改,如有提示错误,可查看完整版

 

 

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容