ChatGPT · 2023年4月29日 0

ChatGPT 帮我编程

自己搭建了一个博客网站,为了提升安全需要用 HTTPS 连接。

我的域名服务是通过腾讯云购买的,那边可以生成免费的证书,每次都是手动的去免费生成操作,而且还只能是单域名证书,域名如果多了,手动起来就很麻烦了。

上次搭建 VPS 的时候,看到可以使用 ACME 进行自动证书生成且可以自动续期,果断让 ChatGPT 帮忙生成操作过程。

当然不问 ChatGPT 也可以搜索查看教程,因为之前看过教程,所以我根据命令来操作也知道如何玩转。

相关的教程:

官网:

https://github.com/acmesh-official/acme.sh

指导的博客:

https://www.panyanbin.com/article/c44653d8.html

看教程至少需要花费半小时,如果把需求丢给 ChatGPT 它 1 分钟就出答案了,我们 5 分钟完成相关工作。

以下是整个操作过程:

首先,提出需求:

我打算用 acmesh 进行证书生成。 

1、腾讯云服务器,系统为 CentOS

2、域名是在腾讯云购买的,可以拿到 DNSPod 的API密钥,假设id=123,token=456 

3、生成通用域名证书:*.domain.com

4、可自动续期

5、web服务使用的是 nginx

6、假设nginx 解析证书路径:/opt/ssl 请给出操作步骤。

ChatGPT回答,操作的步骤:
根据您的需求,我为您提供了一个详细的步骤指南,来说明如何在 CentOS 服务器上使用 acme.sh 生成通用域名证书(*.domain.com)并自动续期。这里假设您已经拥有 DNSPod 的 API 密钥(id=123,token=456)。

1、安装 acme.sh:
curl https://get.acme.sh | sh

安装成功后,关闭当前终端并重新打开一个新的终端以使 acme.sh 生效。

2、配置环境变量。设置 DNSPod 的 API 密钥(id 和 token):

export DP_Id="123"
export DP_Key="456"

3、使用 acme.sh 为您的域名颁发通用域名证书。请将 domain.com 替换为您的实际域名:


acme.sh --issue --dns dns_dp -d "*.domain.com" -d domain.com

颁发成功后,证书文件将默认保存在 ~/.acme.sh/domain.com/ 目录中。

4、安装证书到 Nginx。假设 Nginx 的 SSL 证书路径为 /opt/ssl,请执行以下命令:

mkdir -p /opt/ssl
acme.sh --install-cert -d "*.domain.com" -d domain.com \
--cert-file /opt/ssl/cert.pem \
--key-file /opt/ssl/key.pem \
--fullchain-file /opt/ssl/fullchain.pem \
--reloadcmd "systemctl reload nginx"

5、更新 Nginx 配置以使用新的 SSL 证书。编辑您的 Nginx 配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/domain.com。将 domain.com 替换为您的实际域名:

server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name domain.com www.domain.com;

    ssl_certificate /opt/ssl/fullchain.pem;
    ssl_certificate_key /opt/ssl/key.pem;
  
    # 其他配置项...
}

6、重新加载 Nginx 应用更改:

sudo systemctl reload nginx

acme.sh 会自动处理证书的续期。每 60 天,它会尝试续订证书,并在成功续订后重新加载 Nginx 服务。现在您已经完成了证书的生成和自动续期

按照命令,在服务器成功执行无误,最后再检查下定时器是否有了,确保自动续期成功。

腾讯的 DNS Pod 获取位置如图: