安装:
curl https://get.acme.sh | sh
DNS阿里云生成:
前往:https://usercenter.console.aliyun.com/#/manage/ak 获取
export Ali_Key="换成你的 AccessKey ID"
export Ali_Secret="换成你的 Access Key Secret"
acme.sh --issue --dns dns_ali -d aier0769.cn -d '*.aier0769.cn' (坑:注意!泛域名要加双引号包着。)
生成后复制到自己喜欢的目录:(坑:前提要建好文件夹)
acme.sh --install-cert -d xxx.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem
Apache
首先确认下载到的Apache支持SSL。如果是window版本,在apache bin目录下能看到openssl.exe。
如果是Linux,在/etc/httpd/conf.d目录下可见到ssl.conf,如果没有,执行yum install mod_ssl openssl 命令安装。
然后在 /etc/httpd/conf.d/ssl.conf 文件打开LoadModule ssl_module modules/mod_ssl.so,即去掉该行前的注释。
修改如下几行
DocumentRoot "/var/www/v5linux" #修改为自己的web目录
ServerName xxx.com:443 # 修改为自己的域名
SSLCertificateFile /path/to/certfile/in/apache/cert.pem #修改为自己的证书路径
SSLCertificateKeyFile /path/to/keyfile/in/apache/key.pem #修改为自己的私钥路径
SSLCertificateChainFile /path/to/fullchain/certfile/apache/fullchain.pem #修改为自己的公钥路径
修改httpd.conf文件,添加以下代码:
ServerAdmin root@localhost # 修改为自己的用户名
ServerName xxx.com # 修改为自己的域名
ServerAlias x.xxx.com # 修改为自己的泛域名,此配置可选
DocumentRoot "/data/certs/xxx.com" #修改为自己的web目录
修改.htaccess文件,添加以下代码:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{http_host} ^xxx.com [NC]
RewriteRule ^(.*)$ https://www.xxx.com/$1 [L,R=301] #这是301重定向
RewriteCond %{SERVER_PORT} !^443$ #这是80端口转443端口
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
开启服务器防火墙443端口
重启 Apache : service httpd restart
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0
相关文章:
https://yq.aliyun.com/articles/692073
https://f-e-d.club/topic/use-acme-sh-deployment-let-s-encrypt-by-ali-cloud-dns-generic-domain-https-authentication.article