使用certbot生成https证书
目录
- 背景
- 全部操作步骤概览
- 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
- 1、安装nginx插件,Centos使用
使用certbot生成https证书相关推荐
- 使用certbot-auto脚本安装Certbot 生成https证书
在CentOS7上安装Certbot有三种方式: 使用Certbot官方提供的对应平台的RPM包安装 使用Certbot官方的提供的certbot-auto安装 使用pip安装Certbot,因为Ce ...
- 使用Certbot 生成 https 证书
1.下载certbot项目 # git clone https://github.com/certbot/certbot.git # cd certbot/ # chmod a+x ./certbot ...
- window生成https证书
window生成https证书 参考:https://blog.csdn.net/qq_36279445/article/details/79447512 最近研究webrtc,这个只能localho ...
- Java 生成 Https 证书
Java 生成 Https 证书 简介 通过keytool后缀为.jks的https证书,用于调试项目使用. 实现 [生成] - 命令生成.jks文件 直接在命令行中键入下面的命令 keytool - ...
- Linux下生成HTTPS证书申请与颁发方法
Linux下生成HTTPS证书申请与颁发方法: (1)生成HTTPS证书,可以使用openssl生成服务器RSA密钥及证书,生成的命令如下: openssl genrsa -des3 -out ser ...
- 免费生成https证书以及配置
http升级到https需要在nginx的配置中加入证书信息,查询资料后确定生成证书两种方案 第一种:自签名证书,然后开启 CloudFlare 的 CDN 服务 //确定是否安装openss ...
- Certbot 生成 ssl 证书
certbot 是用来申请 Let's Encrypt 免费 SSL 证书一般的免费 SSL 证书,好像都是使用 Let's Encrypt 颁发的证书.官网地址:https://letsencryp ...
- java生成Https证书,及证书导入的步骤和过程
原文参考:http://www.cnblogs.com/fron/p/https-20170111.html 以下是相关的Tomcat,JDK和Windows环境: Tomcat版本:tomcat-7 ...
- 生成HTTPS证书及使用
生成证书和秘钥 使用JDK7的keytool工具生成 转到JDK的安装目录下的bin,如/usr/java/jdk1.7.0_79/bin 生成非对称密钥 keytool -genkeypair -v ...
最新文章
- Linux Socket基础介绍
- java mysql 自动提交_Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧...
- ************起步科技***********【申明:来源于网络】
- Spring-data-jpa和mybatis的比较及两者的优缺点?
- linux命令 把文件夹拷贝一遍_cp 快捷命令:复制文件到多个目录
- SSO的通用标准OpenID Connect
- php额拍戏,像这种会演戏的演员,给我焊在剧组365天拍戏可以吗?
- 数学领域的世界顶级大佬们都在做什么科研项目?
- Knockout获取数组元素索引的2种方法,在MVC中实现
- 15. 从远程库克隆
- 1.Sigar介绍和配置
- unity提取打包资源
- 地理信息系统导论第八版_地理信息系统导论.pdf
- 规范完整APP开发制作流程
- 短信验证功能、邮箱验证功能
- 基于加速度计与气压计的三阶卡尔曼滤波计算加速度、速度及高度
- 抽象代数笔记-环、域、扩域、伽罗瓦理论
- 深入浅出 RxJS 核心原理(源码实现)
- 0x50 动态规划(练习)20:干草堆(题解)
- 九价疫苗三针一共多少钱 2022