Certbot安装证书速通
https://blog.csdn.net/Richardlcx/article/details/132282722
sudo apt install certbot
使用 DNS 验证
certbot certonly --manual --preferred-challenges dns -d *.demo.com -d demo.com
使用 Standalone 验证
停止现有的 web 服务器程序,如 nginx 或 apache。这样可以避免端口冲突(视实际情况而定)。
sudo certbot certonly --standalone -d example.com -d www.example.com
Certbot 会把证书生成到系统默认路径,如 nginx 的 /etc/letsencrypt/live/example.com/
可能的报错
1. Problem binding to port 80: Could not bind to IPv4 or IPv6.
根据这个错误信息,问题出在Certbot自动验证过程中启动的临时web服务器未能成功绑定80端口。可能原因有:
80端口被其它进程占用了,需要关闭其他正在使用80端口的程序。可以用netstat -ntlup来检查。
Certbot默认使用80端口。如果想使用其他端口,可以添加--http-01-port 8080
参数来指定端口。
防火墙阻止了80端口访问。可以添加规则放行80端口或关闭防火墙测试。
服务器上存在多个网卡或IP地址,Certbot绑定了错误的地址。可以用--preferred-challenges http
参数来强制使用80端口。
权限不足,需要以root
账户运行certbot或使用sudo
。
2. live directory exists for example.com
根据您的命令输出,使用端口8080避免了前面的80端口冲突问题,Certbot验证过程继续进行了下去。但在最后一个步骤时报错显示live目录已存在。这表示您之前已经为example.com生成过证书,并存在默认的证书文件目录/etc/letsencrypt/live/example.com。
出现这个问题的原因可能有:
你之前使用certbot
或者其他工具已经获取过example.com
的证书了,现在会冲突。
上次获取证书过程中失败或被中断,留下了残余文件。
certbot的证书存储路径被修改或指向了自定义目录。
不同的certbot版本或模式导致了live
目录存放路径不一致。
解决方法是:
检查默认目录,删除或备份 existing 现有的证书文件。
使用 certbot delete
删除现有证书。
指定不同的 --cert-path
来改变新证书的存储位置。
加上 --force-renewal
参数来强制重载证书。
在清理已存在的旧证书后,就可以重试命令获取新的证书了。也可以考虑切换到 certbot 的 certonly 模式避免冲突。