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