Technology Sharing

  • 首页
  • 资料分享
  • 在线工具
    • 随机密码生成器
  • 介绍
  • RSS
  • privacy
  • 云产品推广
    • 腾讯云
    • 阿里云
Share IT knowledge
  1. 首页
  2. linux
  3. 正文

使用certbot申请Let’s Encrypt的证书

2022年6月27日 327点热度 0人点赞 0条评论

使用certbot安装免费https证书使Nginx支持Https请求

环境:centos7/ubuntu20.04

安装Certbot

centos7

yum -y install epel-release
yum install certbot python2-certbot-nginx -y

ubuntu20.04

sudo apt update 
sudo apt install certbot python3-certbot-nginx

Certbot注册证书有两种工作方式:(个人推荐手动模式)

  • 自动模式:在申请 SSL 证书后会自动修改配置文件以启用 HTTPS
  • 手动模式:只生成 SSL 证书,需要自行修改 Nginx 配置

Certbot 自动模式

一句命令搞定

sudo certbot --nginx

申请证书过程有几个交互问题,分别如下。

输入电子邮箱,用于接收通知邮件;
查看服务条款,输入 A 同意后注册;
列出所有在 Nginx 配置里找到的域名,用列表数字选择(多个以空格隔开),不输入则选择全部;
是否将 HTTP 访问重定向到 HTTPS,输入数字选择,1 表示不设置,2 表示设置;
申请完后提示证书文件路径。这时已自动启用 HTTPS,访问网站试试;

Certbot 手动模式

运行下面命令申请 SSL 证书

sudo certbot --nginx  certonly

申请过程中的选项问题和上面自动模式一样,只是少了更新 Nginx 配置步骤。
在申请生成 SSL 证书后,手动编辑 Nginx 站点配置文件加入设置。
以下是一个示例(申请了www.example.com 域名证书,并设置 HTTP 访问重定向。下面除了设置证书文件路径,SSL 相关参数直接引用 Certbot 提供的配置文件。

server {
    listen       80;
    listen       [::]:80;
    server_name  www.example.com;
    return 301   https://www.example.com$request_uri;
}

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  www.example.com;
    root         /var/www/www.example.com;
    index        index.html index.htm;

    ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;
    include              /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam          /etc/letsencrypt/ssl-dhparams.pem;
}

完成上面设置后就可以用 HTTPS 访问了,默认设置通常可以得到 A 级评分。如果要进一步优化 SSL 配置,例如修改缓存时间,启用 HSTS 等。Mozilla 有一个在线配置生成工具可以用来参考,该工具要填写的软件版本号用下面命令查看:nginx -v查看 Nginx 版本,openssl version查看 OpenSSL 版本。

Certbot 自动续期

Let’s Encrypt 免费证书只有 90 天期限,需要设置自动续期。先用下面命令测试续期功能是否正常。

sudo certbot renew --dry-run

计划任务配置自动更新证书

crontab -e
0 0 */5 * * /usr/bin/certbot renew &>/var/log/certbot-renew.log
打赏微海报分享
标签: 暂无
最后更新:2024年1月19日

nico

Linux运维工程师 软考网络工程师 && 软考信息安全工程师

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

nico

Linux运维工程师
软考网络工程师 && 软考信息安全工程师

最新 热点 随机
最新 热点 随机
linux部署JDK环境 [Solved] MariaDB import issue: Error at line 1: Unknown command '\-'. Could not retrieve mirrorlist http://mirrorlist.centos.org/ CentOS 7 Kubernetes如何删除卡在“Terminating”状态的命名空间 解决GitLab Runner签名无效 如何禁用 Ubuntu "Daemons using outdated libraries" 弹出窗口
清除Linux内存缓存和交换空间的方法 Python-连接linux服务器批量执行命令 使用 Python3 代理 Mailgun 发送电子邮件的方法 Centos7 升级redis版本 Ubuntu、CentOS部署redis [SOLVED] extension "vector" is not available
最近评论
woodcockkienzlelsj8o9+73s48g9rr3m0@gmail.com 发布于 10 个月前(07月17日) necessitatibus corporis et odit nam quo harum et c...
RonaldG 发布于 10 个月前(07月07日) Very interesting topic, thank you for putting up.&...
小黑 发布于 1 年前(12月28日) 不错
nico 发布于 2 年前(02月09日) 嘻嘻嘻!!!
Bruse 发布于 2 年前(02月09日) 我来啦!!!
nico 发布于 2 年前(12月10日) 方便查询
Justin 发布于 2 年前(12月10日) 写的很好,谢谢分享!我 Mark 一下~
nico 发布于 3 年前(11月18日) 主题的原因吧
Justin 发布于 3 年前(09月22日) 这篇文章的质量很高呀!写得很详细~ 话说你的文章是隐藏了发布时间吗?
Justin 发布于 3 年前(08月27日) 好家伙,这标题乍一看还以为你打算进军英文技术写作领域了🤓

COPYRIGHT © 2023 Technology Sharing. ALL RIGHTS RESERVED.

备案图标 皖公网安备34132402000202 皖ICP备2023004851号-1