Apache 部署
适合使用 Apache 的 VPS、云服务器或独立服务器。
本页使用 Certbot 自动完成签发和 Apache 配置。
1. 准备变量
bash
export ACME_SERVER="你的 Server URL"
export EAB_KID="你的 EAB MAC ID"
export EAB_HMAC_KEY="你的 EAB MAC key"
export EMAIL="[email protected]"
export DOMAIN="example.com"
export WWW_DOMAIN="www.example.com"2. 安装 Certbot
Ubuntu / Debian:
bash
sudo apt update
sudo apt install -y certbot python3-certbot-apacheAlmaLinux / Rocky Linux / CentOS:
bash
sudo dnf install -y epel-release || sudo yum install -y epel-release
sudo dnf install -y certbot python3-certbot-apache || sudo yum install -y certbot python3-certbot-apacheSnap 方式:
bash
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -sf /snap/bin/certbot /usr/bin/certbot3. 自动签发并安装
单域名,默认包含 example.com 和 www.example.com:
bash
sudo certbot --apache \
--non-interactive \
--agree-tos \
--email "$EMAIL" \
--server "$ACME_SERVER" \
--eab-kid "$EAB_KID" \
--eab-hmac-key "$EAB_HMAC_KEY" \
--domain "$DOMAIN" \
--domain "$WWW_DOMAIN" \
--cert-name "$DOMAIN"多个域名:
bash
sudo certbot --apache \
--non-interactive \
--agree-tos \
--email "$EMAIL" \
--server "$ACME_SERVER" \
--eab-kid "$EAB_KID" \
--eab-hmac-key "$EAB_HMAC_KEY" \
--domain example.com \
--domain www.example.com \
--domain api.example.com \
--cert-name example.com4. 通配符证书
通配符默认证书范围:
text
example.com
*.example.com通配符必须使用 DNS 验证,不能用 --apache 自动 HTTP 验证。
Cloudflare DNS API 示例:
bash
export CF_Token="Cloudflare API Token"
export CF_Account_ID="Cloudflare Account ID"
~/.acme.sh/acme.sh --issue \
--dns dns_cf \
-d "$DOMAIN" \
-d "*.$DOMAIN" \
--server "$ACME_SERVER"签发后将证书文件安装到 Apache,并在 VirtualHost 中配置 SSLCertificateFile 和 SSLCertificateKeyFile。
5. 验证
bash
sudo apachectl configtest
curl -I "https://$DOMAIN"
sudo certbot certificates浏览器访问:
text
https://example.com6. 自动续期测试
bash
sudo certbot renew --dry-run