我是靠谱客的博主 朴实超短裙,最近开发中收集的这篇文章主要介绍使用Certbot工具从Let’s Encrypt获取免费SSL证书一、简介二、Certbot使用三、卸载,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 一、简介
  • 二、Certbot使用
    • 2.1 安装snapd
    • 2.2 安装Certbot
    • 2.3 证书获取
    • 2.4 续期证书
  • 三、卸载

一、简介

Let’s Encrypt 官方文档:https://letsencrypt.org/zh-cn/

为了在您的网站上启用 HTTPS,您需要从证书颁发机构(CA)获取证书(一种文件)。Let’s Encrypt 是一个证书颁发机构(CA)。

限制:

  • 每个注册域名的证书数量(每周 50 张)
  • 一张证书中最多包含 100 个域名
  • 证书有效期为 90 天,到期手动续费

Certbot 官方文档:https://certbot.eff.org/docs/

Certbot是一种免费的开放源代码软件工具,可用于在手动管理的网站上自动使用Let’s Encrypt证书来启用HTTPS。Certbot也是Let’s Encrypt官方推荐使用的一个客户端。

二、Certbot使用

2.1 安装snapd

Certbot 官方强制让你使用 snap 安装,否则用不了。会提示以下内容:

Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.

yum 安装 snapd

yum install -y epel-release
yum install -y snapd
systemctl start snapd.service && systemctl enable snapd.service

需要创建一个软连接 /snap/var/lib/snapd/snap,安装软件需要在 /snap中。

ln -s /var/lib/snapd/snap /snap

做到这里,Snapd已经安装完成了,查看:

[root@iZ8vb9g3s6akav8m1bmbuoZ snap]# snap list
Name     Version   Rev    Tracking       Publisher     Notes
core20   20201210  904    latest/stable  canonical✓    base
snapd    2.48.2    10707  latest/stable  canonical✓    snapd

2.2 安装Certbot

cd /snap
snap install --classic certbot

查看Certbot版本:

[root@iZ8vb9g3s6akav8m1bmbuoZ snap]# snap list 
Name     Version   Rev    Tracking       Publisher     Notes
certbot  1.11.0    889    latest/stable  certbot-eff✓  classic
core20   20201210  904    latest/stable  canonical✓    base
snapd    2.48.2    10707  latest/stable  canonical✓    snapd

2.3 证书获取

先将域名解析到Certbot服务器上。

#--webroot 参数:指定使用临时目录的方式
## -w 参数:指定后面-d 域名所在的根目录, 如果一次申请多个域的, 可以附加更多 -w...-d... 这段.
/snap/bin/certbot certonly --webroot --email xxxxx@qq.com -w /usr/share/nginx/html -d blog.liuli.host
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Requesting a certificate for blog.liuli.host
Performing the following challenges:
http-01 challenge for blog.liuli.host
Using the webroot path /usr/share/nginx/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Subscribe to the EFF mailing list (email: xxxxxxxxx@qq.com).
We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/blog.liuli.host/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/blog.liuli.host/privkey.pem
   Your certificate will expire on 2021-04-07. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

完成上面的操作即可获得 SSL 证书, 保存在 /etc/letsencrypt/live/根域名/ 目录下会有四个文件

  • cert.pem : Apache服务器端证书
  • chain.pem :Apache根证书和中继证书
  • fullchain.pem : Nginx所需要ssl_certificate文件
  • privkey.pem : 安全证书KEY文件

如有报错,如:

Couldn't download https://raw.githubusercontent.com/certbot/certbot/v1.6.0/letsencrypt-auto-source/letsencrypt-auto. <urlopen error [Errno 111] Connection refused>

该台阿里云ECS上解析不到该域名,ping 一下获取该域名IP,添加本地域名解析,或升级到最新版的客户端。
1.5.0版本:https://download.csdn.net/download/qq_39680564/12645820
1.6.0版本:https://download.csdn.net/download/qq_39680564/12645817

vim /etc/hosts
51.101.108.133 raw.githubusercontent.com

配置nginx服务器,

#设置非安全连接永久跳转到安全连接
server{
    listen 80;
    server_name www.liuli.host;
    #告诉浏览器有效期内只准用 https 访问
    add_header Strict-Transport-Security max-age=15768000;
    #永久重定向到 https 站点
    return 301 https://$server_name$request_uri;
}
server {
   #启用 https, 使用 http/2 协议, nginx 1.9.11 启用 http/2 会有bug, 已在 1.9.12 版本中修复.
   listen 443 ssl http2;
   server_name www.liuli.host;
   #首页
   index  index.php index.html index.htm;
   #网站根目录
   root   /usr/share/nginx/html;
   #告诉浏览器当前页面禁止被frame
   add_header X-Frame-Options DENY;
   #告诉浏览器不要猜测mime类型
   add_header X-Content-Type-Options nosniff;

   #证书路径
   ssl_certificate /etc/letsencrypt/live/www.liuli.host/fullchain.pem;
   #私钥路径
   ssl_certificate_key /etc/letsencrypt/live/www.liuli.host/privkey.pem;
   #安全链接可选的加密协议
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   #可选的加密算法,顺序很重要,越靠前的优先级越高.
   ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
   #在 SSLv3 或 TLSv1 握手过程一般使用客户端的首选算法,如果启用下面的配置,则会使用服务器端的首选算法.
   ssl_prefer_server_ciphers on;
   #储存SSL会话的缓存类型和大小
   ssl_session_cache shared:SSL:10m;
   #缓存有效期
   ssl_session_timeout 60m;

    location / {
        try_files $uri $uri/ /index.php?$args;  #修改内容
    }
}

2.4 续期证书

证书的有效期是3个月,你可以在证书过期前的30天内,进行续期,也可以进行脚本自动续期。

#!/usr/bin/env bash
# Auth: liuli
# Version: v1.0, 2021/1/7
# Sys: CentOS 7.9
# Features: 更新域名证书有效期
# Prepare:系统内已安装certbot客户端

if ! /snap/bin/certbot renew > /var/log/letsencrypt/renew.log 2>&1 ; then
    echo Automated renewal failed:
    cat /var/log/letsencrypt/renew.log
    exit 1
fi

# 需要重启nginx证书才能生效
systemctl restart nginx

添加定时任务,每月28号23点执行脚本

0 23 28 * * /opt/shell/ssl_renew.sh

三、卸载

删除 certbot 服务

snap remove certbot

关闭 snap 服务

systemctl stop snapd.service && systemctl disable snapd.service
systemctl stop snapd.socke t&& systemctl disable snapd.socket

卸载 snapd 服务

yum remove -y snapd
rm -rf /etc/letsencrypt/

最后

以上就是朴实超短裙为你收集整理的使用Certbot工具从Let’s Encrypt获取免费SSL证书一、简介二、Certbot使用三、卸载的全部内容,希望文章能够帮你解决使用Certbot工具从Let’s Encrypt获取免费SSL证书一、简介二、Certbot使用三、卸载所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部