您现在的位置是:首页 > 正文

ACME.SH 申请SSL证书 于更新(转) 最新发布

2024-04-01 00:38:46阅读 0

1. 获取DNS密钥
(1)获取域名服务商AccessKey ID及AccessKey Secret
我使用的域名是阿里云,故需要去阿里云RAM管理平台获取:

其他服务商,可以去指定的服务商控制台获取。

阿里云参考文档:如何获取AccessKey ID和AccessKey Secret - 阿里云如何获取AccessKey ID和AccessKey Secret - 阿里云

记住APPID和APPSecret

2. 安装与申请
(1)安装ACME
curl https://get.acme.sh | sh
 
source ~/.bashrc
如果使用root用户进行安装,会生成文件夹.acme.sh。

文件夹地址:/root/.acme.sh

(2) 设置ACME自动更新
acme.sh --upgrade --auto-upgrade
3. 证书申请
        申请过程中,请先关闭nginx

(1)设置阿里云APPID 和阿里云APPKEY
##注:此处的APPID 和APPkey为第一步我们从阿里云RAM中获取的
export Ali_Key="Key_XXX"
export Ali_Secret="Secret_XXX"
 (2)申请证书(通配符)
acme.sh --issue --dns dns_ali -d abc.com -d *.abc.com
申请成功会在.acme.sh文件夹下面,生成abc.com文件夹 ,并且证书会存储在文件夹下

注:

1. 证书申请过程较慢,大概会持续1~2分钟左右,注意不要进行其他操纵。申请成功后会显示“success”.

2. 如SSH控制台操作卡顿,是正常现象,一会儿就好了,等一会。

3. 证书申请过程如果出现问题,记得查看文中“常见问题”,进行修正。

(3) 导出证书
##创建证书导出路径
mkdir /data/cert/abc.com/
 
##证书导出脚本
acme.sh --install-cert -d abc.com --cert-file /data/cert/abc.com/abc.com.crt --key-file /data/cert/abc.com/abc.com.key --fullchain-file /data/cert/abc.com/fullchain.crt
 
## 重启nginx
service nginx force-reload
 
# nginx  force-reload 报错替代方案
# service nginx stop
# service nginx start
注:

1. 记得修改脚本中的路径和证书名称。

2. 如果“service nginx force-reload”报错,可以查看“常见问题3”进行解决

4.Nginx 配置HTTPS证书
nginx安装步骤我就不做说明了,没有安装过的自己去看吧

nginx安装教程:

linux搭建nginx_svallll的博客-CSDN博客_linux搭建nginx

nginx安装SSL模块:

Nginx 的 SSL 模块安装_浮_雲的博客-CSDN博客_nginx安装ssl模块

nginx安装fair插件,进行多服务器负载均衡:(可选,非必要)

Nginx安装SSL证书_love_yu_er的博客-CSDN博客_nginx安装证书

注:由于https会使用到443端口,服务商安全组记得打开443端口

(一):编辑nginx.conf
server {
        listen    443 ssl;
        server_name  www.abc.com;
        ssl_certificate /data/cert/abc.com/fullchain.crt;
        ssl_certificate_key /data/cert/abc.com/abc.com.key;
        ssl_trusted_certificate /data/cert/abc.com/fullchain.crt;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        
 
        location / {
           # root   "/home/www/www.abc.com";
            root   html;
            index  index.html index.htm;
            proxy_pass http://127.0.0.1:37521/;
            proxy_set_header X-real-ip $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
    }
    
    
    ##80端口默认重定向到443端口
    server {
        listen    80;
        server_name  www.abc.com;
        # 核心代码
        rewrite ^(.*)$ https://${server_name}$1 permanent;
    }

注:以abc.com域名为例,acme.sh生成的文件包含abc.com.crt ; abc.com.eky ; fullchain.crt;

这里nginx配置ssl域名不要使用abc.com.crt作为密钥,否则会导致证书不全等异常,需要使用fullchain.crt

(二):设置防火墙放行443端口

以下脚本只针对于Centos7及以上,其他版本请查找其他放行方法:

##打开防火墙,如果已经打开了,就不用管了
systemctl start firewalld
 
##放行443端口
firewall-cmd --zone=public --add-port=443/tcp --permanent
 
##重启放获取
firewall-cmd --reload
5.ACME更新
此方法SSL证书默认有效期是90天,好处在于此方法默认是一个月更新一次证书。

但是由于ACME更新较快,所以记得更新ACME。

## acme.sh 更新
## 目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
## 升级 acme.sh 到最新版 :
 
##手动升级。如果你不想, 可以开启自动升级:
acme.sh --upgrade
 
##自动更新:
##acme.sh 就会自动保持更新了.
acme.sh  --upgrade  --auto-upgrade
 
##关闭自动更新
acme.sh --upgrade  --auto-upgrade  0
6. 手动更新ACME证书(证书过期使用)
单域名更新方法

acme.sh --renew -d www.xxx.com --force
或 通配符更新方法

acme.sh --renew -d xxx.com -d *.xxx.com --force
注意过程可能再次出现DNS错误,这里可以查看常见问题二的解决方法

注意:这里要执行上面的renew来覆盖更新证书,而不是申请,别弄错了

证书更新玩后,需要重启nginx

nginx -s reload
7. 常见问题
以下是申请过程-常见错误说明:(未出现错误,跳过此段)

问题一:acme.sh --register-account -m my@example.com
“证书申请”过程中,出现如下错误:

acme.sh --register-account -m my@example.com

出现错误是因为没有注册acme账号,需要执行脚本进行账号申请

解决办法:

##注意test@abc.com 为你的个人邮箱,记得替换
acme.sh  --register-account  -m test@abc.com --server zerossl
成功。然后再次执行证书申请代码。


 

问题二:Adding txt value......
“证书申请”过程中出现如下错误:

Adding txt value: W9IRKarSz7S1RKS8goMFDOK1dGDEjP4PLGuxNjXIUY4 for domain:  _acme-challenge.abc.com

 这是因为你的域名和DNS密钥不在一个服务商

解决办法:

重新执行part1,去你域名指定的服务商去查看,拿到后,再次执行下面代码

##注:此处的APPID 和APPkey为第一步我们从阿里云RAM中获取的
export Ali_Key="Key_XXX"
export Ali_Secret="Secret_XXX"
同时进入/root/.acme.sh目录,修改Ali_Key和ALI_Secret

vi account.conf
修改完记得wq保存。然后再次执行证书申请代码。

问题三:nginx 出现. env: /etc/init.d/redis: Permission denied
解决办法:env: /etc/init.d/redis: Permission denied_极客on之路-CSDN博客

问题四: Failed to reload-or-try-restart nginx.service: Unit not found
解决办法:添加 Nginx 为系统服务(service nginx start/stop/force-reload)_weixin_34279579的博客-CSDN博客

问题五:中间证书缺少,浏览器可以正常访问,接口PKI bulid faild,小程序电脑可以打开,手机打不开等等...
报错:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder.

报错:微信小程序服务端-电脑端可以访问,手机不能访问

检测:

检测SSL证书是否出现错误:中间证书缺少

检测地址:SSL服务器证书安装检查器_OPENSSL工具包_迅通诚信

解决办法:(nginx)

ssl_certificate /data/cert/abc.com/fullchain.crt;
ssl_certificate_key /data/cert/abc.com/abc.com.key;
ssl_trusted_certificate /data/cert/abc.com/fullchain.crt;
 注意:这里ssl_certificate 配置由原本的abc.com.crt 变成fullchain.crt了,同时配置ssl_trusted_certificate 信任证书

重启nginx

nginx -s reload


原文链接:https://blog.csdn.net/fyhju1/article/details/120452141 

网站文章

  • js中的函数防抖和函数节流

    js中的函数防抖和函数节流

    1、什么是函数防抖和函数节流 防抖(debounce)和节流(throttle)都是用来控制某个函数在一定时间内执行多少次的技巧,两者相似不相同,基本思想都是某些代码不可以在没有间断的情况下连续重复执...

    2024-04-01 00:38:20
  • 极地求生自定义服务器僵尸模式,绝地求生自定义房间使用手册 教你如何玩僵尸模式...

    极地求生自定义服务器僵尸模式,绝地求生自定义房间使用手册 教你如何玩僵尸模式...

    《绝地求生》正式服即将到来自定义服务器功能,而这次是不限号测试。官方今日发布了自定义服务器的使用手册,作为参考资料教大家如何游玩自定义房间的各种功能。此外官方表示,由于自定义服务器的公开是‘不限号测试...

    2024-04-01 00:38:12
  • java的js拼接字符串的注意事项

    对于JS一直有些模糊,熟悉又陌生的感觉,近期在写项目时需要使用到JS拼接字符串,就是用JS的写页面首先,使用js拼接input是要注意使用引号(次引号不是汉语或英语的引号,而是键盘上的tab键上面的哪...

    2024-04-01 00:38:07
  • [CTFhub技能树]SQL注入———整数注入

    [CTFhub技能树]SQL注入———整数注入

    u后面接的URL --batch -dbs就是爆库 -o类似与一键优化运行速度。sqlmap直接运行不了的的 前面加个python 然后是sqlmap.py。然后我就可以开始爆表 -D 后面接指定库名...

    2024-04-01 00:37:43
  • 【python教程入门学习】阿里python面试题之年薪40万

    随着人工智能时代的到来,Python工程师的需求量也在与日俱增。现在,很多知名公司都或多或少的在使用Python。而对于Python工程师来说,进入大公司,是一个新的职业起点。就给大家分享一套阿里巴巴...

    2024-04-01 00:37:37
  • 服务器SSL不安全漏洞修复方案

    服务器SSL不安全漏洞修复方案

    关于SSL POODLE漏洞 POODLE = Padding Oracle On Downgraded Legacy Encryption.是最新安全漏洞(CVE-2014-3566)的代号,俗称“贵宾犬”漏洞。 此漏洞是针对SSL3.0中CBC模式加密算法的一种padding oracle攻击,可以让攻击者获取SSL通信中的部分信息明文,如果将明文中的重要部分获取了,比如cookie,sess

    2024-04-01 00:37:30
  • 索引切片复习

    索引切片复习

    【代码】索引切片复习。

    2024-04-01 00:37:07
  • Linux常见指令(超详解哦)

    Linux常见指令(超详解哦)

    Linux与我们熟悉的Window都是操作系统,我们经常在Window操作系统的图形化界面中进行操作。其中基本的比如创建一个文件夹、在文件夹中放置文件、修改文件名、向文件中写数据、移动文件的位置、查看文件的信息、删除文件等,我们也可以打包压缩文件、解压缩文件。只是在Linux的命令行中,我们需要通过指令来实现这些操作。在本篇文章中就来介绍这些基本指令

    2024-04-01 00:37:00
  • mac 苹果电脑升级系统后蓝牙耳机只有一边有声音 苹果电脑连接耳机音质不好 苹果电脑浏览网页音视频嘈杂

    mac 苹果电脑升级系统后蓝牙耳机只有一边有声音 苹果电脑连接耳机音质不好 苹果电脑浏览网页音视频嘈杂

    环境:电脑系统:耳机:手工定制蓝牙平头耳机 蓝牙模块:高通5141情况说明:升级系统前正常升级系统后蓝牙耳机在连接成功时,双耳都有声音且正常,但是播放音乐时,仅右耳有声音。解决:mac搜索 音频MIDI设置找到输出设备,更改输出格式测试正常本教程到此结束私信博主进入QQ技术交流群~...

    2024-04-01 00:36:54
  • C语言经典题目50题

    【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去       掉不满足...

    2024-04-01 00:36:50