1987WEB视界-分享互联网热门产品和行业

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

域名

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

1987web2023-02-08域名197
acme.sh可以通过acme协议生成Let’sEncrypt或者ZeroSSL颁发的免费SSL证书,目前acme.sh默认使用的是ZeroSSL颁发的证书

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

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

1、需要支持老旧设备。

2、letsencrypt申请受阻。

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

acme安装

安装环境CentOS7.9

curlhttps://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中获取的,用来验证DNSexportAli_Key="Key_XXX"exportAli_Secret="Secret_XXX"

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

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

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

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

申请证书

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

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

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

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

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

acme.sh--install-cert -d  \--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