人生就是由众多的细节组成的,正因为是个细节,所以常被人所淡忘。

宝塔面板开启ssl错误解决办法及泛域名解析教程

近日网站后台登陆不正常,经常出现证书错误,经排查后发现是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、开始签发,以域名blog.916916.com 主域名为例

~/.acme.sh/acme.sh --issue --dns dns_ali -d blog.916916.com -d *.916916.com

签发过程如下,全自动进行,切记要输入blog.916916.com这个域名,这个域名为宝塔网站添加的主域名,否则签发下来的证书用在*.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、获取证书
从第三步我们可以看到签发下来证书存放的位置,以blog.916916.com为例

/root/.acme.sh/blog.916916.com/

其实我们只需要fullchain.cer blog.916916.com两个文件

fullchain是完整的证书,包括了CA根证书

key是密钥,安装证书时需要用到

其他单域名证书的签发方法与此类似

续签问题

安装了ACME后,它会添加一个自动任务到你服务器的Cron里,每天都会检查你的证书是否快要过期,ACME会自动帮你续签

文章参考:

Mr.KevinH

https://oneinstack.com/faq/letsencrypt/

赞(0) 打赏
未经允许不得转载:被淡忘的细节 » 宝塔面板开启ssl错误解决办法及泛域名解析教程

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏