目录

  • 背景
  • 全部操作步骤概览
    • 1、打开https://certbot.eff.org
    • 2、选择自己用的什么软件并且是什么操作系统
    • 3、查看操作步骤
  • 实战细节
    • 安装snap
    • 安装Certbot
    • 生成证书
    • 续期
  • 常见问题整理
    • Could not choose appropriate plugin: The nginx plugin is not working; there may be problems with your existing configuration

背景

  • 本篇是继使用Let’s Encrypt免费SSL证书之后的文章,因为我发现使用原来GitHub项目方式在大部分服务器会报:
Skipping bootstrap because certbot-auto is deprecated on this system.
Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.
Please visit https://certbot.eff.org/ to check for other alternatives.

  • 然后就没有然后了。

  • GitHub issues搜索一波后,发现说certbot-auto已被弃用,如下图所示(原文链接:https://github.com/certbot/certbot/issues/8535):

  • 最上面的提问这里说snap的certbot版本可以正常工作。

  • 通过GitHub issues我们知道需要使用snap或许能解决问题,命令打印提示到https://certbot.eff.org/寻找替代方案。

  • 几经波折,经过一番摸索后,我终于从入门到会用,整理了下分享给大家。

全部操作步骤概览

1、打开https://certbot.eff.org

2、选择自己用的什么软件并且是什么操作系统

  • 我的是Centos7 Nginx所以选择的是这样的组合。

3、查看操作步骤

  • 下面就是具体的操作

下面的实战细节主要针对在Centos系统 + Nginx/Openresty软件上,之所以有前面的全部操作步骤概览,就为了遇到其他系统或软件举一反三,然后参考下面的实战操作。应该是大同小异。

实战细节

安装snap

  • 官方文档:https://snapcraft.io/docs/installing-snapd
  • 因为我是Centos,所以点击CentOS。进入 https://snapcraft.io/docs/installing-snap-on-centos

注意下自己系统的版本。

  • 我的是centos7运行以下命令安装snap
# 将EPEL添加到CentOS 7
yum install epel-release
#安装snapd
yum install snapd
#安装后,需要启用用于管理主快照通信套接字
systemctl enable --now snapd.socket
# 启用快照支持
ln -s /var/lib/snapd/snap /snap

我是root用户运行,所以没有加sudo

  • 确保安装的snap是最新的。
 snap install coresnap refresh core

这2条命令估计要多尝试几次,第1次有可能失败,我的失败了2次

安装Certbot

  • 使用snap命令安装:
 snap install --classic certbot
  • 增加软链接
ln -s /snap/bin/certbot /usr/bin/certbot

生成证书

  • 生成证书前的准备

    • 1、域名解析到当前操作的服务器。
    • 2、制作nginx的软链接。

    因为我安装的是openresty,默认是不能不加路径就直接nginx命令的,所以我使用命令,ln -s /usr/local/openresty/nginx/sbin/nginx /usr/bin/nginx 制作软链接。

    • 3、安装python-certbot-nginx,这是nginx插件。

    Centos使用yum install python-certbot-nginx命令,Ubuntu使用apt install python-certbot-nginx命令。

  • 生成证书有2条命令certbot --nginx(获取证书,并让Certbot自动编辑Nginx配置以为其提供服务)和certbot certonly --nginx(只生成证书,手动更改Nginx配置)

  • 我比较保守,所以使用的是只生成证书的命令。

certbot certonly --nginx
  • 还有个问题,运行这个命令,它会去/etc/nginx目录去找配置文件,而我是手动安装的openresty,配置文件并不在/etc/nginx下,所以要指定配置文件目录,最终命令如下所示。
certbot certonly --nginx --nginx-server-root=/usr/local/openresty/nginx/conf

  • 运行命令后,它会把所有配置的域名列出来,然后选择编号就可以了,最下面就是我们生成的证书路径了。
  • 手动改下配置文件。内容如下所示。
server {listen       443 ssl;server_name  xxx.xxx.com;ssl_certificate /etc/letsencrypt/live/xxx.xxx.com-0001/fullchain.pem;ssl_certificate_key  /etc/letsencrypt/live/xxx.xxx.com-0001/privkey.pem;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;...省略...
}
  • 重启nginx/openresty就可以了,一气呵成,收工。

续期

  • 证书会过期,续期的基础命令如下所示。
certbot renew --dry-run

这个命令我暂时没用,等我用的时候再更新下本文,预计又会有配置文件路径问题。

该命令已测试,没有配置文件路径问题,直接运行即可,更新于2021年6月29日13:36:30。

常见问题整理

Could not choose appropriate plugin: The nginx plugin is not working; there may be problems with your existing configuration

Could not choose appropriate plugin: The nginx plugin is not working; there may be problems with your existing configuration.
The error was: NoInstallationError("Could not find a usable 'nginx' binary. Ensure nginx exists, the binary is executable, and your PATH is set correctly.")
  • 两步解决

    • 1、安装nginx插件,Centos使用yum install python-certbot-nginx命令,Ubuntu使用apt install python-certbot-nginx命令,原文链接https://github.com/certbot/certbot/issues/1736。
    • 2、制作nginx软链接:如下命令:
    ln -s /usr/local/openresty/nginx/sbin/nginx /usr/bin/nginx
    

使用certbot生成https证书相关推荐

  1. 使用certbot-auto脚本安装Certbot 生成https证书

    在CentOS7上安装Certbot有三种方式: 使用Certbot官方提供的对应平台的RPM包安装 使用Certbot官方的提供的certbot-auto安装 使用pip安装Certbot,因为Ce ...

  2. 使用Certbot 生成 https 证书

    1.下载certbot项目 # git clone https://github.com/certbot/certbot.git # cd certbot/ # chmod a+x ./certbot ...

  3. window生成https证书

    window生成https证书 参考:https://blog.csdn.net/qq_36279445/article/details/79447512 最近研究webrtc,这个只能localho ...

  4. Java 生成 Https 证书

    Java 生成 Https 证书 简介 通过keytool后缀为.jks的https证书,用于调试项目使用. 实现 [生成] - 命令生成.jks文件 直接在命令行中键入下面的命令 keytool - ...

  5. Linux下生成HTTPS证书申请与颁发方法

    Linux下生成HTTPS证书申请与颁发方法: (1)生成HTTPS证书,可以使用openssl生成服务器RSA密钥及证书,生成的命令如下: openssl genrsa -des3 -out ser ...

  6. 免费生成https证书以及配置

    http升级到https需要在nginx的配置中加入证书信息,查询资料后确定生成证书两种方案   第一种:自签名证书,然后开启 CloudFlare 的 CDN 服务   //确定是否安装openss ...

  7. Certbot 生成 ssl 证书

    certbot 是用来申请 Let's Encrypt 免费 SSL 证书一般的免费 SSL 证书,好像都是使用 Let's Encrypt 颁发的证书.官网地址:https://letsencryp ...

  8. java生成Https证书,及证书导入的步骤和过程

    原文参考:http://www.cnblogs.com/fron/p/https-20170111.html 以下是相关的Tomcat,JDK和Windows环境: Tomcat版本:tomcat-7 ...

  9. 生成HTTPS证书及使用

    生成证书和秘钥 使用JDK7的keytool工具生成 转到JDK的安装目录下的bin,如/usr/java/jdk1.7.0_79/bin 生成非对称密钥 keytool -genkeypair -v ...

最新文章

  1. Linux Socket基础介绍
  2. java mysql 自动提交_Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧...
  3. ************起步科技***********【申明:来源于网络】
  4. Spring-data-jpa和mybatis的比较及两者的优缺点?
  5. linux命令 把文件夹拷贝一遍_cp 快捷命令:复制文件到多个目录
  6. SSO的通用标准OpenID Connect
  7. php额拍戏,像这种会演戏的演员,给我焊在剧组365天拍戏可以吗?
  8. 数学领域的世界顶级大佬们都在做什么科研项目?
  9. Knockout获取数组元素索引的2种方法,在MVC中实现
  10. 15. 从远程库克隆
  11. 1.Sigar介绍和配置
  12. unity提取打包资源
  13. 地理信息系统导论第八版_地理信息系统导论.pdf
  14. 规范完整APP开发制作流程
  15. 短信验证功能、邮箱验证功能
  16. 基于加速度计与气压计的三阶卡尔曼滤波计算加速度、速度及高度
  17. 抽象代数笔记-环、域、扩域、伽罗瓦理论
  18. 深入浅出 RxJS 核心原理(源码实现)
  19. 0x50 动态规划(练习)20:干草堆(题解)
  20. 九价疫苗三针一共多少钱 2022

热门文章

  1. 2022 极术通讯-安谋科技迎来发展新机遇
  2. 电视盒子刷linux树莓派,用树莓派4B打造纯ATV 10代替电视盒子
  3. 普通高中机器人竞赛的现状、问题、对策
  4. 人工智能-统计机器学习-线性回归
  5. VirtualBox和Docker安装
  6. pytorch的简单教程
  7. a0图框标题栏尺寸_机械制图140标题栏-机械制图a0标题栏-机械制图图框标题栏标准...
  8. Pytorch 风格迁移(Style transfer)
  9. 查看https 安全证书信息
  10. CNSD在这里记录自己成长