oneinstack默认申请证书需要域名解析向主机,如果没解析就需要使用dnsapi。

oneinstack在申请证书时会自动安装acme.sh,当然我们在申请证书时还是要检测下acme.sh有没有安装好。

进入用户根目录:

cd ~/

查看有没有.acme.sh目录,如果有,说明acme.sh已经安装好。

ls -al

如果没有.acme.sh目录,执行下方命令安装acme.sh。

curl https://get.acme.sh | sh -s email=my@example.com

临时设置别名

alias acme.sh=~/.acme.sh/acme.sh

acme.sh会经常更新,所以开启自动升级。

acme.sh  --upgrade  --auto-upgrade

申请证书:

dnsapi和申请证书:https://github.com/acmesh-official/acme.sh/wiki/dnsapi

过程省略,具体看官方文档。

...

...

安装证书:

分两种情况。

1.安装的是nginx:

创建站点存放证书的目录:

mkdir /usr/local/nginx/conf/ssl/gmloc.me

安装证书:

acme.sh --install-cert -d gmloc.me \
--key-file       /usr/local/nginx/conf/ssl/gmloc.me/gmloc.me.key  \
--fullchain-file /usr/local/nginx/conf/ssl/gmloc.me/fullchain.cer \
--reloadcmd     "systemctl reload nginx"

2.安装的是openresty

mkdir /usr/local/openresty/nginx/conf/ssl/gmloc.me

安装证书:

acme.sh --install-cert -d gmloc.me \
--key-file       /usr/local/openresty/nginx/conf/ssl/gmloc.me/gmloc.me.key  \
--fullchain-file /usr/local/openresty/nginx/conf/ssl/gmloc.me/fullchain.cer \
--reloadcmd     "systemctl reload nginx"

修改 Nginx 配置文件启用 ssl
nginx:

vi /usr/local/nginx/conf/vhost/gmloc.me.conf
server
{
    listen 443 ssl http2;
    server_name gmloc.me;
    ssl_certificate /usr/local/nginx/conf/ssl/gmloc.me/fullchain.cer;
    ssl_certificate_key /usr/local/nginx/conf/ssl/gmloc.me/gmloc.me.key;
}

openresty:

vi /usr/local/openresty/nginx/conf/vhost/gmloc.me.conf
server
{
    listen 443 ssl http2;
    server_name gmloc.me;
    ssl_certificate /usr/local/openresty/nginx/conf/ssl/gmloc.me/fullchain.cer;
    ssl_certificate_key /usr/local/openresty/nginx/conf/ssl/gmloc.me/gmloc.me.key;
}

关于acme.sh

目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步。

而oneinstack自动安装的acme没有开启自动升级。

  • 升级 acme.sh 到最新版:
acme.sh --upgrade
  • 开启自动升级:
acme.sh  --upgrade  --auto-upgrade
  • 关闭自动更新:
acme.sh --upgrade  --auto-upgrade  0
  • 停止证书续订
acme.sh --remove -d example.com [--ecc]

证书/密钥文件未从磁盘中删除。

您可以自己删除相应的目录(例如~/.acme.sh/example.com)。

  • 查看证书列表:
acme.sh --list 
  • 删除证书:
acme.sh remove <SAN_Domains>
  • 卸载acme.sh
acme.sh --uninstall

相关:

  1. nginx 不带www和http 301重定向到带www的https网址
  2. namesilo域名通过acme.sh申请Let's Encrypt通配符HTTPS证书