近日网站后台登陆不正常,经常出现证书错误,经排查后发现是ssl证书到期了,宝塔面板后台自带Let’s Encrypt证书,支持泛域名解析。
注:Let’s Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起,主要的目的也是为了推进网站从HTTP向HTTPS过度的进程,目前已经有越来越多的商家加入和赞助支持。
Let’s Encrypted提供的证书一样,90天需续期一次
官方发布:https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579
支持ACME的客户端:https://letsencrypt.org/docs/client-options/
注意事项
本教程基于CentOS6,基于DNS方式进行签发(泛域名必须以DNS方式签发,其他的可以用HTTP方式签发)
已经通过本人签发测试
我以阿里云DNS为例进行签发,其他的DNS请参考(基本都是相同的操作):https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
以下是教程
1、下载ACME.SH
yum -y install curl cron socat
curl https://get.acme.sh | sh
或者
wget -O - https://get.acme.sh | sh
其他安装方法:https://github.com/Neilpang/acme.sh/wiki/How-to-install
安装完成后在根目录生成 .acme文件夹
会自动添加一条定时任务(官方解释:自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书。),使用crontab -l 查看。
2、获取Aliyun的Access Key ID和Access Key Secret
获取地址:https://ak-console.aliyun.com/#/accesskey
再SSH里输入:
export Ali_Key="你的Access Key ID" export Ali_Secret="Access Key Secret"
DNS提供商 | DNS简称 | API参数 | 获取API参数 |
---|---|---|---|
cloudflare | cf | export CF_Key=key export CF_Email=admin@example.com |
访问链接 |
dnspod | dp | export DP_Id=id export DP_Key=key |
访问链接 |
cloudxns | cx | export CX_Key=key export CX_Secret=secret |
访问链接 |
godaddy | gd | export GD_Key=gdkey export GD_Secret=gdsecret |
访问链接 |
aws | aws | export AWS_ACCESS_KEY_ID=aws123 export AWS_SECRET_ACCESS_KEY=awskey |
访问链接 |
aliyun | ali | export Ali_Key=key export Ali_Secret=secret |
访问链接 |
Linode | linode | export LINODE_API_KEY=linodekey | 访问链接 |
freedns | freedns | export FREEDNS_User=user export FREEDNS_Password=password |
freedns用户名密码 |
he | he | export HE_Username=username export HE_Password=password |
he用户名密码 |
namesilo | namesilo | export Namesilo_Key=namesilokey | 访问链接 |
digitalocean | dgon | export DO_API_KEY=dgonkey | 访问链接 |
namecom | namecom | export Namecom_Username=username export Namecom_Token=token |
访问链接 |
更多参考:https://github.com/Neilpang/acme.sh/tree/master/dnsapi
3、开始签发,以域名maotao.net 主域名为例
~/.acme.sh/acme.sh --issue --dns dns_ali -d maotao.net -d *.916916.com
签发过程如下,全自动进行,切记要输入maotao.net这个域名,这个域名为宝塔网站添加的主域名,否则签发下来的证书用在*.916916.com上会提示证书错误。
另一种签发方式
~/.acme.sh/acme.sh --issue --server https://acme-v02.api.letsencrypt.org/directory --dns dns_ali -d guoyangxian.com -d *.guoyangxian.com #裸域名和泛域名一同申请了,并且明确指明申请的是wildcard证书
注:如果已经安装宝塔面板(面板默认安装acme),按照上面输入API参数,然后执行下面的命令。
# yum install -y socat //安装必要组件 # cd ~/.acme.sh # ./acme.sh --upgrade --auto-upgrade //自动升级
使用上面的签发方式生成的证书会自动保存到/www/server/panel/vhost/cert/目录,然后在面板域名配置文件中修改证书引用路径,只使用domain.key、fullchain.cer这两个文件。
4、获取证书
从第三步我们可以看到签发下来证书存放的位置,以maotao.net为例
/root/.acme.sh/maotao.net/
其实我们只需要fullchain.cer maotao.net两个文件
fullchain是完整的证书,包括了CA根证书
key是密钥,安装证书时需要用到
其他单域名证书的签发方法与此类似
续签问题
安装了ACME后,它会添加一个自动任务到你服务器的Cron里,每天都会检查你的证书是否快要过期,ACME会自动帮你续签
文章参考:
https://oneinstack.com/faq/letsencrypt/
评论前必须登录!
注册