首页 > 系统相关 >ACME续签证书在Linux云服务器上安装指南

ACME续签证书在Linux云服务器上安装指南

时间:2024-10-17 10:49:25浏览次数:10  
标签:ACME acme 证书 -- 服务器上安装 nginx cert sh Linux

环境

供应商;阿里云服务器
操作系统:Linux Centos Stream9操作系统
静态代理:Nginx

前言

我这边使用https://get.acme.sh方式无法正常使用,会卡在这个页面,无任何进度的信息。

最终我使用了git clone的方式进行安装。

正文

  1. clone项目下来,并进行install初始安装ACME环境
git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh
./acme.sh --install -m [email protected]

这里说明下这个邮箱的作用是用于注册 Let's Encrypt 账号的电子邮件,您将在这里收到续订通知邮件。(未进行实际测试验证)。

  1. 首先设置要使用的默认CA服务器(关于server参数的说明在这里)。
acme.sh  --set-default-ca  --server letsencrypt
  1. 签发证书
    这里进行签发证书,签发的域名就是你要通过https访问的域名,这个没什么说的。
    -w参数指定的目录地址是指你前端项目访问的系统地址,因为acme会在这个目录下写一个临时验证文件,
    然后acme会通过你给出的domain域名进行访问,如果访问到这个临时验证文件了,代表这个域名是有效的,之后才会成功签发证书。
    --force参数是可选的,在非首次签发时需要加上这个参数,否则就会提示The domain 'domain.cn' seems to already have an ECC cert, let's use it.
./acme.sh  --issue -d <要签发的域名>  -w <前端项目的目录地址> --force

签发的域名示例:www.example.com。

  1. 安装证书
acme.sh --install-cert -d www.example.com \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd     "sudo nginx -s reload"

这里的-d参数是指定要使用哪个域名的证书进行安装(可以使用acme.sh --list参数进行查看签发的证书列表),
key-file和fullchain-file参数则是指定安装的目标存储的文件位置(注意这里是指定到文件名级别的)。
reloadcmd则就是更新证书后,如何重启相应的服务加载最新的证书。
这里我使用了sudo来通过nginx的信号控制来重新加载配置(关于这里在下方说明如何配置)。

  1. 配置Nginx使用证书。
    在你对应的https server块中,加入SSL的相关配置信息。
    listen 443 ssl;
    server_name www.example.com;

    # SSL 配置
    ssl_certificate /目标路径/cert.pem;
    ssl_certificate_key /目标路径/key.pem;

    # 强制使用 TLSv1.2 和 TLSv1.3
    ssl_protocols TLSv1.2 TLSv1.3;

    # 使用现代加密套件
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
}

  1. 重启Nginx
    使用nginx -s reload重新加载nginx的配置文件即可。

其他

由于我使用的acme是单独建立的用户,接下来我会说明如何建立用户,如何配置sudo,如何给nginx用户添加acme所属者的权限。

# 新增用户
useradd acme
# 给nginx加上acme用户所属组的权限,要重新nginx服务,已加载最新的权限信息(必要的情况下可能需要重新登录)。
usermod -a -G acme nginx

# 配置sudo
visudo
# 通过:定位到100行,增加一句 `acme ALL=(root) NOPASSWD: /usr/sbin/nginx`即可。

常见问题

  1. 如果在使用./acme.sh --issue ...命令签发证书的时候,出现Error creating new order. Le_OrderFinalize not found. {"type":"urn:ietf:params:acme:error:unauthorized","status":401,"detail":"The account has been deactivated"}错误,则说明颁发地址受限了,更换其他的ca server地址
  2. 出现The domain 'www.domain.cn' is not a cert name. You must use the cert name to specify the cert to install.错误,表示你指定的证书名称不存在,通过./acme.sh --list命令查看下证书的列表吧,如果为空就去issue签发证书吧。
  3. 出现Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6或Error creating new order. Le_OrderFinalize not found.错误,我是重试了3遍才成功的,可能是限流401了吧。

附录

标签:ACME,acme,证书,--,服务器上安装,nginx,cert,sh,Linux
From: https://www.cnblogs.com/XingXiaoMeng/p/18471586

相关文章

  • Linux 外设驱动 应用 3 串口
    3串口3.1串口原理串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIARS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口通讯......
  • 安防综合管理系统EasyCVR视频汇聚平台Linux环境,如何测试UDP端口是否开启?
    视频汇聚EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台灵活性强,支持国标GB/T28181协议、部标JT808、GA/T1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石......
  • Vivado+Petalinux驱动开发流程
    该流程中使用的软硬件环境如下:Windows11(pro)+Vivado2022.2+Vitis2022.2Ubuntu20.04+Petalinux2022.2git简介系统开发过程中计划使用nanomsg作为上下位机通讯接口,nanomsg需要运行在linux系统上,所以在开发过程中引入ZYNQlinux开发流程,其中包括Petali......
  • Linux nohup 命令详解
    文章目录Linux`nohup`命令详解基本语法`nohup`工作原理实用示例示例1:运行一个脚本并保持后台执行示例2:指定输出文件示例3:结合`sleep`命令使用`jobs`和`bg`管理后台进程使用`ps`和`kill`管理进程常见的`nohup`参数结合`nohup`和`cron`注意事项结论......
  • Linux rm命令详解
    文章目录Linux`rm`命令详解基本语法常用参数详解常见用法和示例注意事项实践示例结论参数表格Linuxrm命令详解rm(remove)命令用于删除文件或目录,是Linux系统中最常用的文件管理命令之一。rm命令具有强大的功能,可以删除单个文件、多个文件,甚至递归删除整个目录......
  • linux系统中安装JDK
    文章目录1、查看系统版本2、下载JDK版本3、上传4、复制5、添加配置6、重启配置7、查看版本1、查看系统版本查看linux系统版本uname-a这边是x86-64就代表64位系统i686代表32位系统2、下载JDK版本JDK下载相对应的版本在下载之前先勾选AcceptLicenseAgreement,......
  • 2024/10/16 linux命令
    linux命令:1.ifconfig查看IP地址2.serviceiptablesstop关闭防火墙serviceiptablesstart开启防火墙serviceiptablesrestart重启防火墙serviceiptablesstatus查看防火墙状态3、ssh连接虚拟机ssh+ip地址enter输入账号输入密码4.......
  • Linux命令进阶
    grep从文件中搜索字符串grep"字符串"文件参数:-n显示行号-R递归及子目录例如grep"hello"log.cgrep"main"*-nRfind在指定路径下搜索文件find路径-name文件名find/home/linux-namehello.c//在/home/linux目录下搜索hello.c管道连接符|说明......
  • Linux介绍及常用命令
    Linux系统简介1969年,AT&T公司的⻉尔实验室PMIT合作开发的Unix,í在于创建⼀个⽤于⼤型、并⾏、多⽤户的操作系统Unix的推⼴:从学校⾛进企业Unix的版本要两个:AT&TSystemV——就是俗称的系统5BerkleySoftwareDistribution(BSD)linux是一种操作系统1991......
  • Linux服务器上安装git(运维向)
    (1).参考文献官网在线教程:https://git-scm.com/book/zh/v2官方网站:https://git-scm.com/(2).实验环境2核2GCentOS7.6.1810(3).安装git1)yum或dnf安装[root@VM-0-17-centos~]#dnf-yinstallgit-all2)源码安装安装依赖包[root@VM-0-17-centos~]#dnf......