2、为域名申请CA证书、Ubuntu22.04

为了为你的域名 MyDomain.com 申请 CA 证书,你可以使用 Let's Encrypt,这是一个提供免费 SSL/TLS 证书的非营利证书颁发机构。

Let's Encrypt 证书被广泛信任,适用于绝大多数应用场景。

下面是使用 Let's Encrypt 的 certbot 工具为你的服务器申请证书的步骤。

备注:域名指向国内服务器需要申请备案,合法使用!

步骤 1:安装 Certbot

Certbot 是 Let's Encrypt 官方推荐的客户端软件,用于自动化申请、安装和更新证书。

根据你的服务器操作系统,安装方法可能会有所不同。

以下是在 Ubuntu22.04 上安装 Certbot 的通用步骤:

sudo apt install certbot

步骤 2:申请证书

你可以通过运行 Certbot 并使用 Web 服务器插件(如 Apache 或 Nginx)来自动申请和配置证书,或者使用 Certbot 的 certonly 选项来仅申请证书,然后手动配置你的服务。

如果你的服务器上运行了 Nginx 或 Apache,Certbot 可以自动为你配置 SSL。

2.1、前置条件:

dig +short MyDomain.com

显示自己的公网ip
x.x.x.x

2.2、例如,如果你使用 Nginx,可以执行:

sudo certbot --nginx -d MyDomain.com

2.3、如果你使用 Apache,可以执行:

sudo certbot --apache -d MyDomain.com

2.4、如果你只想申请证书而不自动配置 Web 服务器,可以使用:

sudo certbot certonly --standalone -d MyDomain.com

在执行以上命令时,Certbot 会进行一系列验证来确认你对该域名的控制权,并且在验证成功后颁发证书。

步骤 3:证书位置

申请成功后,证书和密钥通常会被存放在 /etc/letsencrypt/live/MyDomain.com/ 目录下。

你将看到如下文件:

  • fullchain.pem:证书文件。
  • privkey.pem:私钥文件。

步骤 4:配置你的服务使用 SSL 证书

根据你的具体应用,你需要在相应的配置文件中指定证书(fullchain.pem)和私钥(privkey.pem)的路径。

步骤 5:自动续期

Let's Encrypt 颁发的证书有效期为 90 天,但是 Certbot 可以自动续期。你可以通过以下命令测试自动续期:

sudo certbot renew --dry-run

如果测试成功,Certbot 将会每天两次运行任务来检查并自动续期接近过期的证书。

以上就是为你的域名 MyDomain.com 申请和配置 Let's Encrypt SSL 证书的基本步骤。

请根据你的实际情况和需求调整相应的命令和配置。

步骤 6:如果申请失败

例如报错:具体来说,Let's Encrypt 无法从你的服务器下载挑战文件,这是因为在尝试访问 http://MyDomain.com/.well-known/acme-challenge/... 时收到了 HTTP 403 错误,即“禁止访问”。

这可能是由以下几个原因造成的:

1. DNS 设置问题

确保你的域名 MyDomain.com 正确指向了你尝试运行 Certbot 的服务器的公网 IP 地址。

你可以使用 dig 或在线 DNS 工具来验证 DNS 记录是否正确。

2. 防火墙或安全组设置

检查你的服务器是否有防火墙规则或安全组设置阻止了外部对端口 80 的访问。

对于 Certbot 的 standalone 模式正常工作,必须允许来自互联网的端口 80 访问。

3. Web 服务器配置问题

如果你在运行 Certbot 之前已经在服务器上运行了 web 服务器(如 Apache 或 Nginx),请确保没有配置规则会阻止对 .well-known/acme-challenge 目录的访问。

如果你使用的是 standalone 模式,最好在尝试再次运行 Certbot 之前停止任何正在运行的 web 服务器服务。

4. 权限问题

确保 Certbot 进程有权限在你的服务器上创建和服务文件。

虽然通常不会影响 standalone 模式,但如果有 SELinux 或类似的安全策略在运行,可能需要调整以允许 Certbot 正常操作。

5. 解决步骤

  1. 验证 DNS 记录:使用 dig +short MyDomain.com 查看域名解析的 IP 地址是否为你的服务器 IP。

  2. 检查防火墙/安全组设置:确保允许 TCP 端口 80 的入站连接。
  3. 暂时停止任何运行中的 web 服务器:使用如 systemctl stop nginx 或 systemctl stop apache2 命令暂停服务。
  4. 重新运行 Certbot:在解决上述任何潜在问题后,再次尝试运行 Certbot 命令。

如果在执行上述步骤后问题仍然存在,建议查看 /var/log/letsencrypt/letsencrypt.log 日志文件获取更多详细信息,或访问 Let's Encrypt 社区论坛 寻求帮助。

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚拟之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值