2025年来此加密证书申请,验证,自动部署

来此加密证书申请,验证,自动部署之前用 certbot 后来一直不报错 证书不管用 就想着干脆直接使用来此加密 不要中间商了 就有了直接到来此加密注册之旅 注册地址 来此加密 https letsencrypt osfipin com user 0408 order list 附上这两年的 战绩 申请这么多证书主要原因是 测试域名太多 一些用了之后又不要了

大家好,我是讯享网,很高兴认识大家。

之前用certbot, 后来一直不报错, 证书不管用, 就想着干脆直接使用来此加密, 不要中间商了, 就有了直接到来此加密注册之旅

注册地址:

来此加密
讯享网https://letsencrypt.osfipin.com/user-0408/order/list
附上这两年的"战绩"

申请这么多证书主要原因是, 测试域名太多, 一些用了之后又不要了, 还有一些测试域名的证书

话不多说, 直接申请证书

1, 点击申请证书

2,输入需要申请证书的域名,如果需要泛域名,或者包含根域名, 自行选中

 3,选择加密方式,我一般就下一步了

 4,选择渠道和是否需要独立通道, 独立通道的作用可以去看看文档, 总的来说就是可以同时处理多个证书的申请&验证, 然后验证和创建的速度要快些, 备注我都没怎么在意

 5,提交, 等证书创建成功

 

因为我的这个测试域名已经创建成功了的, 只能另起一个域名作为演示: a.sinclair.world

 6,选择验证方式

        http验证:

        

如果已经指了域名, 就可以用http,在域名服务器的目录下面创建文件夹 mkdir -p ./.well-known/acme-challenge/

点击"立即下载",把文件放到新建的文件夹里面, 就可以直接点击验证本条了, 需要注意的是服务器的配置不要把http直接跳转https了, 不然要报错

        DNS验证:

需要注意上面说的是TXT  还是CNAME, 按照指定的规则添加DNS规则, 然后再进行验证

下面附上一些失败记录,HTTP的失败是因为没关闭http跳转https, DNS就是没看清楚到底是TXT解析还是CNAME解析...自己的锅自己背......

 

 7,我用的nginx 就参考了文档里面的nginx配置

server { listen 80; listen 443 ssl http2; ssl_certificate path\fullchain.crt; ssl_certificate_key path\private.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # 开启OCSP stapling ssl_stapling on; ssl_stapling_verify on; }

讯享网

 只需要把fullchain.crt和private.pem放在指定的文件夹, 配置好了就重启nginx

8,通过shell脚本自动部署

        8.1变更验证类型

         8.2根据API接口里面的步骤进行

        首先创建一个key,然后点击查看进入文档

 

         看到了手册 案例:linux下自动下载和部署 · 语雀根据接口文档,可以编写满足需求的bash文件,实现自动...https://www.yuque.com/osfipin/letsencrypt/makzkw

 我用了这个案例里面的例子

附上我的脚本:

 

讯享网#!/usr/bin/env bash export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin # 参数配置 开始 ORDER_ID='2x83ml'#上图的自动验证ID TYPE='auto'#自动重申&自动验证的话,这里需要是auto API_TOKEN='xxxxxx'刚刚申请的key API_USER=''#我的用户名 FILE_CERT_DIR='/etc/nginx/cert' FILE_CERT=${FILE_CERT_DIR}'/fullchain.crt' FILE_CERT_KEY=${FILE_CERT_DIR}'/private.pem' COMAND_RELOAD='nginx -s reload' # 参数配置 结束 # 以下内容根据需求修改 # 证书到期前13天内才会更新 isexpire=`openssl x509 -in ${FILE_CERT} -noout -enddate -checkend ` if echo "${isexpire}" | grep " not " ; then #echo "Certificate will not expire." exit 1 fi API_URL='https://api.osfipin.com/letsencrypt/api' URL_ORDER_DOWN="${API_URL}/order/down" HEADER_AUTHOR="Authorization: Bearer ${API_TOKEN}:${API_USER}" ZIP_FILE="${ORDER_ID}.$RANDOM" curl ${URL_ORDER_DOWN} -H "${HEADER_AUTHOR}" -G -d "id=${ORDER_ID}" -d "type=${TYPE}" -o ${ZIP_FILE}.zip if [ ! -s "${ZIP_FILE}.zip" ]; then echo "download error." exit 1 fi size=`du -b ${ZIP_FILE}.zip | awk '{print $1}'` if [[ ${size} -lt 500 ]]; then echo "download file error." cat ${ZIP_FILE}.zip unlink ${ZIP_FILE}.zip exit 1 fi # 解压 移动文件 mkdir -p ${ZIP_FILE} mkdir -p ${FILE_CERT_DIR} unzip ${ZIP_FILE}.zip -d ${ZIP_FILE} cp ${ZIP_FILE}/fullchain.crt ${FILE_CERT} cp ${ZIP_FILE}/private.pem ${FILE_CERT_KEY} # 删除 打完收工 unlink ${ZIP_FILE}.zip rm -rf ${ZIP_FILE} `${COMAND_RELOAD}` 

脚本在root用户下运行

在crontab里面添加定时任务, 我是周二周五运行一下

30 8 * * 2,5 bash /root/backup/updateHttps.sh

至此, 从申请证书, 到验证, 到配置, 再到自动部署, 大致的步骤就完了, 官方文档很详细了, 需要注意的是:

  •         http验证的时候, 文件夹权限要注意, http不要直接跳转https, 证书配置好了再说哈
  •         DNS验证的时候, 需要注意是TXT解析还是CNAME解析
  •         自动部署的时候, 过期时间需要改一下

免费的证书, 爱了吗, 不过建议加入VIP, 买点独立通道, 真的很方便!

附上推荐码,可自取: 2DOV0NRJ

记录完毕, 收工

小讯
上一篇 2025-01-14 14:01
下一篇 2025-01-11 09:24

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/72877.html