使用acme.sh在Ubuntu配置Let’s Encrypt免费通配符SSL证书
An ACME Shell script: acme.sh
GitHub: https://github.com/Neilpang/acme.sh
acme.sh 实现了 acme
协议, 可以从Let’s Encrypt生成免费的证书,现在已经支持*.domain.com通配符证书
打开终端安装支持包
sudo apt-get install socat
安装acme.sh,支持root和普通账户,安装完成后必须关闭当前终端,重新开启一个以使acme.sh命令生效
curl https://get.acme.sh | sh
首先需要到DNSPOD后台去生成API Token(如果腾讯云注册的域名,直接用腾讯云账号登录DNSPOD即可)
在腾讯云域名服务 https://www.dnspod.cn 上申请DNS API Token,安全设置-创建API Token
获取 Aliyun 域名 API 的密钥,在阿里云官网登录的情况下点击https://ak-console.aliyun.com/#/accesskey即可看到自己的密钥,没有就直接创建一个即可。
依次执行如下三条命令,替换成你自己的Id和Key
export DP_Id="1234" export DP_Key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" acme.sh --issue --dns dns_dp -d mydomian.com -d *.mydomian.com
一小阵等待之后,你的通配符证书就安静地躺在了~/.acme.sh/mydomian.com/下了
接着配置证书,以Ubuntu下为例,参考这篇文章
Ubuntu下Apache2配置https且强制http转为https
https://www.luochenzhimu.com/archives/448.html
新建一个文件夹用于保存证书,注意不能直接复制生成的证书到目录,需要使用安装命令
mkdir /etc/apache2/certs
安装生成的证书到这个目录保存,用于在Apache2中引用,在终端输入以下命令(注意这是单条命令,只不过转行了)将证书保存到/etc/apache2/certs
acme.sh --install-cert -d luochenzhimu.com \ --cert-file /etc/apache2/certs/luochenzhimu.com.crt \ --key-file /etc/apache2/certs/luochenzhimu.com.key \ --ca-file /etc/apache2/certs/ca.crt \ --reloadcmd "service apache2 force-reload"
复制/etc/apache2/sites-available目录下的000-default.conf和default-ssl.conf到/etc/apache2/sites-enabled
配置default-ssl.conf为
SSLCertificateFile /etc/apache2/certs/luochenzhimu.com.crt SSLCertificateKeyFile /etc/apache2/certs/luochenzhimu.com.key SSLCertificateChainFile /etc/apache2/certs/ca.crt
重启apache,应该已经可以访问https了
sudo service apache2 restart
后续更新acme.sh方法
acme.sh --upgrade