acme申请免费SSL证书,泛域名证书,多域名证书

createh520小时前技术教程4

acme.sh可以通过acme协议生成Let’s Encrypt或者ZeroSSL颁发的免费SSL证书,目前acme.sh默认使用的是ZeroSSL颁发的证书

这两者证书如何选择呢?绝大部分情况下两者没有什么本质差别,一般情况下选择letsencrypt即可。但是如果出现以下情况时,建议选择zerossl:

1、需要支持老旧设备。

2、letsencrypt申请受阻。

至于说两者的安全性,对于非银行电商类的网站来说,这点一般不需要考虑。一般的电商网站也是可以使用的。当然,你有足够的预算,可以购买OV和EV的证书。

acme安装

安装环境CentOS7.9

curl https://get.acme.sh | sh

或者

wget -O -  https://get.acme.sh | sh

如果使用root用户进行安装,会生成文件夹.acme.sh。

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

acme.sh提供了两种方式进行验证域名所有权,一种是通过HTTP API,另一种是通过DNS API

  • HTTP API通过修改Apache和NGINX配置,在根目录添加文件, 通过域名可以访问到该文件,验证成功。
  • DNS API 通过云服务商提供的API(需要云服务商支持),在DNS添加一条TXT解析记录,添加成功则验证通过。国内的云服务比如jdcloud,Aliyun,DNSPod都可以使用这种方式。如果云服务商不在支持的列表里,可以使用腾讯云的DNSPod作为域名解析

证书申请

本文中使用的域名是在阿里云托管的,所以设置部分使用阿里云

设置访问阿里云的验证key

##注:此处的APPID 和APPkey为我们从阿里云RAM中获取的,用来验证DNS
export Ali_Key="Key_XXX"
export Ali_Secret="Secret_XXX"

acme.sh默认使用的是ZeroSSL作为CA

第一次使用,需要先注册一个acme账号

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

my@example.com 替换为自己的邮箱

申请证书

acme.sh --issue --dns dns_ali -d <abc.cn> -d  <"*.abc.cn" > -d  <"*.efg.cn" >

可以同时申请单域名,泛域名和不同域名

申请成功会在.acme.sh文件夹下面,生成abc.cn文件夹 ,并且证书会存储在文件夹下

注意: 证书申请过程较慢,大概会持续3~5分钟左右,速度取决于网络以及DNS生效时间

证书安装(本文使用nginx作为web服务器)

acme.sh --install-cert -d <abc.cn> \
--key-file       /etc/nginx/ssl/key.pem  \
--fullchain-file /etc/nginx/ssl/cert.pem \
--reloadcmd     " /usr/local/nginx/sbin/nginx -s reload"

注意: 如果不使用install-cert命令进行安装,证书更新之后还是被保存在默认目录,会导致已有证书过期之后无法被自动更新

证书配置

证书配置部分请参考nginx或者apache的ssl配置方法

证书更新

acme 申请的ssl证书默认有效期是90天,acme.sh安装过程中会添加crontab计划任务,每天自动检测所有证书是否需要更新 (acme.sh会在证书失效之前进行自动更新)。查看定时任务,可以使用如下指定进行查看

crontab -l

也可以手动对证书进行强制更新

"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" --force

相关文章

openssl生成SSL证书

nginx配置https协议,一般会用到三类文件:.key:私有密钥,openssl格式,通常是RSA算法。.csr:证书请求文件,用于申请证书。在制作csr文件的时候,必须使用自己的私钥来签署申请,...

如何升级SSL证书 SSL证书更新方法简析

如何升级SSL证书?SSL服务器证书是比较常见的数字证书之一,其对于网站运行有很大的保障的作用,现在大部分网站都会安装部署,可以对网站起到数据加密的作用。通常SSL证书的使用有效期是13个月,在其到期...

Linux安全套接字层通信SSL及httpd、nginx ssl配置

SSL(Secure Sockets Layer)是一种用于保护网络通信的安全协议,它位于传输层(套接字层)和应用层之间。SSL通过使用加密和认证机制来确保通信的机密性、完整性和可信性。使用SSL进行...

如何在NGINX服务器中实施SSL完美前向保密技术?

本文介绍了在Debian和Ubuntu系统平台上实施完美前向保密(Perfect Forward Secrecy)以及NGINX网站服务器的过程。如果是其他GNU/Linux系统,整个过程稍有变动。简...

微信小程序HTTPS使用的SSL证书

微信小程序开发项目中经常会使用到HTTPS协议,当然这也是小程序进入上线或者测试必须要有的。就已小程序的要求来说必须符合ATS信任标准,其中包括证书的有效期,TLS1.2安全套件,信任的CA机构等,所...

宝塔面板正确开启TLS 1.3并删除TLS 1.1

昨天折腾了一个AlphaSSL泛域名证书后,心血来潮去SSL评分网站测试了一番,最后的结果竟然是B,这真是不能忍啊……为啥会是B,查看了原因,竟然是启用了TLS 1.1,所以为B。那么,删除TLS 1...