以debian为例
安装caddy命令
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list && sudo apt update && sudo apt install caddy -y && systemctl enable caddy
安装php
apt-get install -y php php7.4-fpm php7.4-curl php-mysql
usermod -a -G www-data caddy && systemctl start php7.4-fpm && systemctl enable php7.4-fpm && sudo apt-get install php7.4-sqlite3 -y
申请SSL证书
#非433端口申请证书
curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m [email protected](你的邮箱)
# 更改默认证书提供商为 letsencrypt
/root/.acme.sh/acme.sh --set-default-ca --server letsencrypt
##修改下面的域名, 下个命令运行后在 dns 后台增加 txt 解析
/root/.acme.sh/acme.sh --issue --dns -d xxx.com(你的域名) --yes-I-know-dns-manual-mode-enough-go-ahead-please
完成后会显示_acme-challenge开头的一个域名和对应的一串字符,到你的域名服务商增加一个txt type的解析,类似_acme-challenge.xx.com,字串填进去。
## 生成证书
/root/.acme.sh/acme.sh --renew -d vps88.ozersource.dynv6.net --yes-I-know-dns-manual-mode-enough-go-ahead-please
证书生成后,保存在/root/.acme.sh/你的域名_ecc/目录下(4个文件),将它全部复制到/var/lib/caddy下面,执行:
chown caddy.caddy /var/lib/caddy/*.cer
chown caddy.caddy /var/lib/caddy/*.key
最后修改/etc/caddyfile
#修改caddyfile
你的域名
{
tls /var/lib/caddy/fullchain.cer /var/lib/caddy/你的域名.key
encode gzip
reverse_proxy localhost:443 #反代端口
}
现在可以通过https://你的域名:端口(映射的)来访问了。
正常访问后,可以删除_acme-challenge开头的txt解析