首页 网站建设 使用acme.sh 从 letsencrypt 生成免费的HTTPS证书

使用acme.sh 从 letsencrypt 生成免费的HTTPS证书

本文为本人真实操作后的记录,推荐使用的是自动dns方式省心省力.

相关软件版本

  1. 服务器操作系统:Ubuntu 22.04 64位
  2. 域名DNS解析:dnspod免费版

主要步骤

  1. 在服务器上安装acme.sh
  2. 在dnspod网站上获取域名的ID令牌
  3. 将获得的域名ID令牌export配置环境变量
  4. 生成证书
  5. 安装证书给nginx使用
  6. 重启nginx访问网页验证成功

详细说明

1.安装acme.sh

在服务器命令行进入home目录输入以下命令等待安装结束.

curl https://get.acme.sh | sh -s email=你的电子邮箱

建议创建一个命令别名,方便使用.命令行输入以下命令

alias acme.sh=~/.acme.sh/acme.sh

2.获取域名的ID令牌

登陆dnspod网站,点击头像的API密匙,选择DNSPod Token,新建生成即可

3.配置环境变量

将生成的ID Token 按照以下格式在命令行执行

export DP_Id="你的ID"
export DP_Key="你的Token"

4.一条命令生成证书

将以下命令于命令行执行(换上你自己的域名)

acme.sh --issue --dns dns_dp -d howxue.cn -d www.howxue.cn

此时等待完成并看到成功提示

5.安装证书

此步骤实际为将证书复制到它处进行使用,官方不建议使用生成证书的地址,可能是怕部分同学误操作里面的文件导致无法正确使用,本人是将证书复制到/etc/nginx/目录使用


                        acme.sh --install-cert -d howxue.cn -d www.howxue.cn \
                        --key-file       /etc/nginx/cert/key.pem  \
                        --fullchain-file /etc/nginx/cert/cert.pem \
                        --reloadcmd     "systemctl restart nginx"

复制到/etc/目录 可能涉及到权限问题,在没设置root密码的情况下,可以先在安装home目录,然后sudo mv 移动过去

在nginx配置文件配置证书地址


            server {
                    listen       443 ssl;
                    server_name  howxue.cn;
                    ssl_certificate      cert/cert.pem;
                    ssl_certificate_key  cert/key.pem;
                    ...以下省略5000字
                

6.重启验证

重启nginx

sudo systemctl restart nginx

给域名添加https 验证成功

关于

本人之前多次配过https,有手动的,有自动的(域名解析在cloudflare),操作大同小异,手动更新的确麻烦,当一年后遇到失效,忘记操作方法,又一次网上找攻略...索性自动省心

附官方文档地址: https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E

关注本站微信公众号