linux 平台下使用 nginx 搭建一个 https web 服务器
背景
- 域名解析使用 cloudflare
- 证书使用 zerossl,申请工具是 acme.sh
- 服务器使用 debian12
nginx 站点配置
- 在
/etc/nginx/sites-available
下面创建一个配置文件,例如:xxx.com,里面填入配置信息,例如:
- 执行命令
ln -s /etc/nginx/sites-available/xxx.com xxx.com
,在/etc/nginx/sites-enabled
中创建一个软链接,表示开启该站点。
使用 acme.sh 申请 zoressl 证书
- 打开 https://zerossl.com/ 注册账号
- 执行
curl https://get.acme.sh | sh -s [email protected]
安装 acme.sh 脚本 - 执行
acme.sh --register-account -m [email protected] --server zerossl
关联 zerossl 账号 - 导出 cloudflare 的 token 和 email 到环境变量,acme.sh 需要用这两个变量来访问 cloudflare
export CF_Token="xxx"
export CF_Email="[email protected]"
- 给申请群晖证书时也执行了类似的操作,参考使用 acme.sh 给群晖申请 SSL 证书
- 执行
~/.acme.sh/acme.sh --server zerossl --issue -d xxx.com --dns dns_cf
申请证书。如果需要申请泛域名证书,执行~/.acme.sh/acme.sh --server zerossl --issue -d xxx.com -d *.xxx.com --dns dns_cf
- 把
/root/.acme.sh/xxx.com_ecc/fullchain.cer
配置到 nginx 的ssl_certificate
- 把
/root/.acme.sh/xxx.com_ecc/xxx.com.key
配置回调 nginx 的ssl_certificate_key