【SSL、HTTPS】Let‘s Encrypt 使用教程,免费的 SSL 证书,让你的网站拥抱 HTTPS

Let’s Encrypt 简介

Let’s Encrypt 是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由 HTTP 过渡到 HTTPS,目前 Facebook 等大公司开始加入赞助行列。

Let’s Encrypt 已经得了 IdenTrust 的交叉签名,这意味着其证书现在已经可以被 Mozilla、Google、Microsoft 和 Apple 等主流的浏览器所信任,你只需要在 Web 服务器证书链中配置交叉签名,浏览器客户端会自动处理好其它的一切,Let’s Encrypt 安装简单,使用非常方便。

Certbot 简介

Certbot 为 Let’s Encrypt 项目发布了一个官方的客户端 Certbot ,利用它可以完全自动化的获取、部署和更新安全证书,并且 Certbot 是支持所有 Unix 内核的操作系统。

安装 Certbot 客户端

$ yum install certbot # centos

$ # apt install certbot # ubuntu

Certbot 的两种使用方式

webroot 方式: certbot 会利用既有的 web server,在其 web root 目录下创建隐藏文件,Let’s Encrypt 服务端会通过域名来访问这些隐藏文件,以确认你的确拥有对应域名的控制权。

standalone 方式: Certbot 会自己运行一个 web server 来进行验证。如果我们自己的服务器上已经有 web server 正在运行 (比如 Nginx 或 Apache ),用 standalone 方式的话需要先关掉它,以免冲突。

获取证书

webroot 模式

使用这种模式会在 web root 中创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,Certbot 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器,所以需要编辑 nginx 配置文件确保可以访问刚刚创建的 .well-known 文件夹及里边存放的验证文件,以便在生成证书时进行验证:

使用以下命令查看 nginx 配置文件地址:

$ sudo nginx -t

nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/nginx.conf test is successful

编辑 /usr/local/nginx/nginx.conf 配置

server {

    ...

    location /.well-known/acme-challenge/ {

        default_type "text/plain";

        root /var/www/example;

    }

    ...

}

重启 nginx 服务

$ nginx -s reload

获取证书,--email 为申请者邮箱,--webroot 为 webroot 方式,-w 为站点目录,-d 为要加 https 的域名,以下命令会为 example.com 和 www.example.com 这两个域名生成一个证书:

$ certbot certonly --email admin@example.com --webroot -w /var/www/example -d example.com -d www.example.com

standalone 模式获取证书

但是有些时候我们的一些服务并没有根目录,例如一些微服务,这时候使用 webroot 模式就走不通了。这时可以使用模式 standalone 模式,这种模式不需要指定网站根目录,他会自动启用服务器的443端口,来验证域名的归属。我们有其他服务(例如nginx)占用了443端口,就必须先停止这些服务,在证书生成完毕后,再启用。

$ certbot certonly --email admin@example.com --standalone -d example.com -d www.example.com

nginx 开启 https

证书生成完成后可以到 /etc/letsencrypt/live/ 目录下查看对应域名的证书文件。编辑 nginx 配置文件监听 443 端口,启用 SSL,并配置 SSL 的公钥、私钥证书路径:

server {

    listen       443;

    server_name  example.com;

    root         /var/www/example;

    index        index.html index.htm;

    ssl on;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    charset utf-8;

    ...

}

添加 HTTP 跳转到 HTTPS:

server {

    listen 80;

    server_name example.com;

    return 301 https://$server_name$request_uri;

}

重启 nginx 服务,访问 https://example.com 查看是否配置成功

自动续期

Let’s Encrypt 提供的证书只有90天的有效期,所以我们要在在证书到期之前重新获取这些证书,Certbot 提供了一个方便的命令 certbot renew,我们可以先使用 --dry-run 测试是否可用:

$ certbot renew --dry-run

linux 系统上有 cron 可以来搞定这件事情,使用以下命令新建任务:

$ crontab -e

写入以下任务内容。这段内容的意思就是 每隔 两个月的 凌晨 2:15 执行 更新操作

15 2 * */2 * certbot renew --quiet --renew-hook "service nginx restart"

参数 表述

–quiet 执行时屏蔽错误以外的所有输出,也可以使用 -q

–pre-hook 执行更新操作之前要做的事情

–pre-hook 执行更新操作之前要做的事情

–post-hook 执行更新操作完成后要做的事情

取消证书

可以使用以下命令取消刚刚生成的密匙,也就是以上的反操作:

$ certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem

$ certbot delete --cert-name example.com

至此,整个网站升级到 HTTPS 就完成了。

小结

如果加上 HTTPS 之后😊锁不够绿的话,检查下站点加载的资源(比如 js、css、照片等)是不是有 HTTP 的,有的话就会导致小锁变为灰色。

在我们使用 HTTP 的时候,打开网页总会遇到第三方偷偷加的一些脚本广告,很是烦人,升级 HTTPS 后他们就无从下手了,欧耶。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
let's encrypt是一个非盈利性质的机构,致力于提供免费SSL证书服务,以促进整个互联网的安全性。在官网上,他们提供了一键式免费申请SSL证书的脚本,使得用户可以快速而简便地获取自己网站SSL证书。 这个一键式免费申请SSL证书脚本的使用非常简单。首先,用户需要在自己的网站服务器上安装并配置好Certbot工具。Certbot是一个由let's encrypt官方开发的自动化工具,用于申请和更新SSL证书。 在安装和配置好Certbot之后,用户只需要在命令行中输入一条简单的指令,就可以申请自己网站SSL证书了。具体指令如下: $ sudo certbot certonly --standalone -d <your_domain> 其中,“<your_domain>”替换为用户自己的域名。这条指令的作用是告诉Certbot以standalone模式运行,并申请一个新的证书,该证书将与用户输入的域名关联。 Certbot会自动与let's encrypt的服务器进行通信,验证用户所拥有的域名和服务器的控制权。一旦验证通过,Certbot就会生成一个有效期为90天的SSL证书,并将其保存在用户指定的位置。 用户可以根据自己的需要选择将证书文件保存到哪个目录,以及将其用于哪个Web服务器(例如Apache或Nginx)。 值得一提的是,这个一键式免费申请SSL证书脚本还支持自动续订证书的功能。Certbot会在证书即将过期之前自动执行更新过程,以确保用户的网站能够持续使用最新的SSL证书。 总之,let's encrypt官网提供的一键式免费申请SSL证书脚本极大地简化了证书申请和管理的过程,让网站拥有更安全可靠的加密通信。用户只需几个简单的步骤,就能轻松获得免费SSL证书,提升网站的安全性和可信度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值