ACME v2证书自动化快速入门

2年前 (2024-01-10)TwoNav157

步骤

  1. 注册账号:  前往 freessl.cn 注册账号

  2. 在freessl的ACME自动化>ACME 域名管理 > 添加, 并取得专属 ACME 地址

  3. 安装 acme.sh 

  4. 部署 acme.sh 



详细教程

使用浏览器访问 freessl.cn 官网长这样 ↓

QQ截图20240110151119.jpg


点击右上角的注册 ( 已有账号请自行跳过 )

注册后收到激活邮件,进入邮箱点击激活链接即可激活账号

应监管局要求,需要对用户进行手机实名认证。

完成认证后登录账号会进入后台,我们不需要

直接返回主页 点击顶部的ACME自动化 页面如下图

QQ截图20240110152237.jpg

点击添加 记录类型建议用CNAME 输入你要申请证书的域名 泛域名则写*.xxx.com

QQ截图20240110152338.jpg

下一步 , 然后登录你的域名服务商添加CNAME解析 

怎么添加解析不要问我..要么自己百度..要么CTRL+W

添加好了点击配置完成, 立即检测

QQ图片20240110152733.png

看到下图的部署命令就可以啦 

复制acme.sh 部署命令 下面要用


QQ图片20240110153156.png


安装acme.sh

执行安装命令

git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com


正常输出结果最下面行是OK


我个人是把证书放到宝塔面板的SSL证书路径

如果你现在访问宝塔面板是https的话可以照抄

如果你是http访问建议开启宝塔面板的ssl

或者根据你自己的喜好决定

acme.sh --issue -d *.xxx.com  --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/**************** \
--key-file  "/www/server/panel/ssl/privateKey.pem" \
--fullchain-file "/www/server/panel/ssl/certificate.pem"  \
--reloadcmd "service nginx reload && bt 1"

上面的命令自己替换相关参数

第一行后面的URL是你自己的专属ACME地址 别把后面的 \ 弄没了

第二行是key的复制路径

第三行是cer的复制路径

第四行是复制证书后执行的命令, 上面的命令适用于宝塔,意思是重载Nginx配置和重启宝塔面板

执行上面的命令后会自动申请SSL证书,并在/root/.acme.sh/你的域名下面储存

如果执行失败可以执行下下面的命令再试

source ~/.bashrc

怎么把证书部署到站点

QQ截图20240110160639.jpg

如上图,  分2段, 上面的是强制HTTPS 作用是HTTP访问是跳转到HTTPS

下面的是SSL证书配置, 如果上面复制证书的路径不一样 这里也一起改

    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/ssl/certificate.pem;
    ssl_certificate_key    /www/server/panel/ssl/privateKey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    #SSL-END

保存后关闭浏览器 重新打开页面 浏览器显示绿标就OK了 


注意: 每个人的环境都不一样. 遇到错误请自行百度解决, 教程针对于宝塔面板+Nginx,如果你是Apache

则需要改下命令

acme.sh --issue -d *.xxx.com  --dns dns_dp --server https://acme.freessl.cn/v2/DV90/directory/**************** \
--key-file  "/www/server/panel/ssl/privateKey.pem" \
--fullchain-file "/www/server/panel/ssl/certificate.pem"  \
--reloadcmd "service apache2 force-reload && bt 1"