通过 Certbot 永久申请免费 SSL https证书 nginx Apache iis

目录

环境准备

安装 Certbot

配置 Nginx

Nginx 配置示例

配置说明

申请 SSL 证书

参数说明

运行结果

​编辑

配置 Nginx 使用 SSL 证书

删除 SSL 证书

参数说明

注意事项

设置定时任务自动续签

配置说明


环境准备

确保你的服务器上已安装以下软件:

  • Nginx:用于处理 HTTP 请求。
  • Certbot:用于申请和管理 SSL 证书。
  • 域名:id_is_null.com  (随便打的 根据实际来)

安装 Certbot

在 CentOS 系统上,可以使用以下命令安装 Certbot:

yum install certbot -y

配置 Nginx

要使用 HTTP-01 验证方法,您需要配置 Nginx 以支持 Certbot 的验证请求。您需要在 Nginx 配置文件中添加以下内容:

Nginx 配置示例

server {
    listen 80;
    server_name id_is_null.com;

    location /.well-known/ {
        root /opt/web/;  # 这里指定用于存放验证文件的目录
    }

    location / {
        # 其他配置
    }
}

配置说明

  • location /.well-known/:此块用于处理 Certbot 的验证请求。
  • root /opt/web/;:指定验证文件的存放路径。Certbot 将在此路径下创建验证文件。

确保 Nginx 配置无误后,重新加载 Nginx:

systemctl reload nginx

申请 SSL 证书

使用 Certbot 申请 SSL 证书的命令如下:

certbot certonly --email test@test.com --webroot -w /opt/web/ --preferred-challenges http-01 -d id_is_null.com --non-interactive --agree-tos --force-renewal

参数说明

  • certonly:仅申请证书,不自动配置 Web 服务器。
  • --email test@test.com:提供用于接收重要通知的电子邮件地址。
  • --webroot -w /opt/web/:指定用于 HTTP 验证的 Web 根目录。
  • --preferred-challenges http-01:指定使用 HTTP-01 验证。
  • -d id_is_null.com:指定要申请证书的域名。
  • --non-interactive:以非交互式模式运行,不会提示输入。
  • --agree-tos:自动同意 Let's Encrypt 的服务条款。
  • --force-renewal:强制续签证书,即使证书未到期。

        这样他会在/opt/web/.well-known/ 自动创建认证文件,并认证颁发证书,注意 你的网站一定要能够通过80或443访问才可通过认证。

运行结果

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/id_is_null.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/id_is_null.com/privkey.pem
   Your certificate will expire on 2024-12-28.

配置 Nginx 使用 SSL 证书

要使 Nginx 使用新申请的 SSL 证书,请在 Nginx 配置文件中添加以下内容:

server {
    listen 443 ssl;
    server_name id_is_null.com;

    ssl_certificate /etc/letsencrypt/live/id_is_null.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/id_is_null.com/privkey.pem;

    location / {
        # 其他配置
    }
}

确保 Nginx 配置无误后,重新加载 Nginx:

systemctl reload nginx

删除 SSL 证书

如果你需要删除某个证书,可以使用以下命令:

certbot delete --cert-name id_is_null.com --non-interactive --agree-tos

参数说明

  • delete:删除指定的证书。
  • --cert-name id_is_null.com:指定要删除的证书名称。
  • --non-interactive:以非交互式模式运行。
  • --agree-tos:自动同意 Let's Encrypt 的服务条款。

注意事项

删除证书后,相关文件将被从 /etc/letsencrypt/live/ 目录中移除。

设置定时任务自动续签

为了确保 SSL 证书不会过期,我们可以设置定时任务(cron)自动续签证书。运行以下命令以编辑 cron 表:

crontab -e

在打开的编辑器中添加以下行:

0 0 1 * * certbot certonly --email test@test.com --webroot -w /opt/web/ --preferred-challenges http-01 -d id_is_null.com --non-interactive --agree-tos --force-renewal

配置说明

  • 0 0 1 * *:表示每月的第一天凌晨 0 点执行该命令。
  • certbot certonly --email test@test.com --webroot -w /opt/web/ --preferred-challenges http-01 -d id_is_null.com --non-interactive --agree-tos --force-renewal:运行 Certbot 的续签命令。

保存并退出编辑器后,Cron 将自动执行该任务。

原创内容 未经允许禁止转载

原创内容 未经允许禁止转载

原创内容 未经允许禁止转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值