当前位置:   article > 正文

免费SSL/TLS域名证书Certbot配置详细过程

certbot

1. 在服务器上安装 Certbot

  • 对于 Linux 系统,可以通过包管理器安装 Certbot,如 Debian/Ubuntu 使用:sudo apt install certbot,然后输入:“Y”
    installY

2. 停止 web 服务器

  • 停止现有的 web 服务器程序,如 nginx 或 apache。这样可以避免端口冲突(视实际情况而定)。

3. 运行 certbot 命令

  • 这会启动一个临时 web 服务器用来做域名验证,并获取 example.com 和 www.example.com 的证书(其中example需要更换为目标域名)。
    sudo certbot certonly --standalone -d example.com -d www.example.com
    
    • 1
    执行
    成功

根据证书获取成功的提示信息,可以看出:

  1. 证书和链文件已保存到:/etc/letsencrypt/live/example.com-0002/fullchain.pem
  2. 私钥文件保存到:/etc/letsencrypt/live/example.com-0002/privkey.pem
  3. 证书有效期至2023-11-12
  4. 以后需要续期或更新证书,可以再次运行 certbot
  5. 使用 “certbot renew” 可以自动续期所有证书

通过指定不同的文件名 aihnet.com-0002 避免了与现有证书冲突。接下来的步骤是:

  1. 将新证书配置到 web 服务器程序中,如 nginx 或 apache。
  2. 重新加载 web 服务器使证书生效。
  3. 配置 certbot 的自动续期任务,保证证书持续有效。
  4. 可选删除旧的证书文件。

总体上看,Certbot 已成功帮助获取了新证书,只需要部署到 web 服务器即可完成使用。以后也可以通过 certbot 轻松自动续期。

4. 证书生成位置

  • Certbot 会把证书生成到系统默认路径,如 nginx 的 /etc/letsencrypt/live/example.com/

5. 配置 web 服务器

  • 以 nginx 为例,编辑 /etc/nginx/conf.d/example.com.conf ,指向证书文件路径,并添加 SSL 相关配置。

6. 重新加载 web 服务器

  • 让 nginx 重新加载新的配置文件并启动。

7. 验证

  • 访问网站,检查证书是否正确加载。

8. 配置自动续期

  • 添加 crontab 定时任务,使用 certbot renew 定期续期。

  以上步骤可完成 Certbot 的标准配置。也可以进一步自定义证书保存路径、配置 HTTP 到 HTTPS 重定向等。Certbot 提供了强大的管理 SSL 证书的自动化能力。

发现问题

1. Problem binding to port 80: Could not bind to IPv4 or IPv6.

根据这个错误信息,问题出在Certbot自动验证过程中启动的临时web服务器未能成功绑定80端口。可能原因有:

  1. 80端口被其它进程占用了,需要关闭其他正在使用80端口的程序。可以用netstat -ntlup来检查。检查端口
  2. Certbot默认使用80端口。如果想使用其他端口,可以添加--http-01-port 8080参数来指定端口。
    8080
  3. 防火墙阻止了80端口访问。可以添加规则放行80端口或关闭防火墙测试。
  4. 服务器上存在多个网卡或IP地址,Certbot绑定了错误的地址。可以用--preferred-challenges http参数来强制使用80端口。
  5. 权限不足,需要以root账户运行certbot或使用sudo。
  6. 系统底层资源不足,导致无法打开80端口。可以切换到更强劲的服务器。

  建议先检查80端口情况,关闭占用进程或改换端口。若还未解决,可以尝试关闭防火墙、指定网络地址绑定等方法。保证Certbot能打开80端口则可顺利完成验证,获取证书。

2. live directory exists for example.com

  根据您的命令输出,使用端口8080避免了前面的80端口冲突问题,Certbot验证过程继续进行了下去。但在最后一个步骤时报错显示live目录已存在。这表示您之前已经为example.com生成过证书,并存在默认的证书文件目录/etc/letsencrypt/live/example.com。

出现这个问题的原因可能有:

  1. 你之前使用certbot或者其他工具已经获取过example.com的证书了,现在会冲突。
  2. 上次获取证书过程中失败或被中断,留下了残余文件。
  3. certbot的证书存储路径被修改或指向了自定义目录。
  4. 不同的certbot版本或模式导致了live目录存放路径不一致。

解决方法是:

  1. 检查默认目录,删除或备份 existing 现有的证书文件。
  2. 使用 certbot delete 删除现有证书。
  3. 指定不同的 --cert-path 来改变新证书的存储位置。
  4. 加上 --force-renewal 参数来强制重载证书。

  在清理已存在的旧证书后,就可以重试命令获取新的证书了。也可以考虑切换到 certbot 的 certonly 模式避免冲突。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/637753
推荐阅读
相关标签
  

闽ICP备14008679号