开源实例之免费通配符SSL证书
前言
本篇介绍部署免费通配符SSL证书,开启 HTTPS 的方法。
背景知识
HTTPS
HTTPS(Hypertext Transfer Protocol Secure)协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
通配符SSL证书
通配符SSL证书用于为一个域名及其所有一级子域名启用SSL加密。例如 example.com 的通配符SSL证书,可以用于自身和 *.example.com 形式的所有子域名。
创建和部署
安装软件
使用acme.sh免费创建、续订单域名SSL证书。以 Debian 系统为例,root 安装:
sudo su
curl https://get.acme.sh -s | sh -s
重新打开 ssh,执行acme.sh --version
,正确显示版本号即表示安装成功。
建议启用自动更新:
acme.sh --upgrade --auto-upgrade
会自动生成一条 crontab:
55 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
填写邮箱
acme.sh --register-account -m mail@example.com
验证域名
创建通配符SSL证书需要通过 DNS 验证域名所有权,DNS 需要具有相关 API,在/root/.acme.sh/account.conf
中填入 API ID 和 API KEY。以 Cloudflare 和 DNSPod 为例:
Cloudflare
登录 Cloudflare,进入 API 令牌,查看 Global API Key。在 account.conf 中写入SAVED_CF_Id
和SAVED_CF_Key
字段。
DNSPod
登录 DNSPod,点击右上角账号头像,选择 API 密钥 -> DNSPod Token -> 创建密钥。在 account.conf 中写入SAVED_DP_Id
和SAVED_DP_Key
字段。
创建证书
以创建域名 dujun.eu.org 的通配符证书为例:
acme.sh --issue --dns dns_cf -d dujun.eu.org -d *.dujun.eu.org
如果是 DNSPod,将 dns 参数改为 dns_dp 即可。生成的证书在/root/.acme.sh/dujun.eu.org_ecc/
。
部署证书
以 Nginx 为例,vhost 配置如下:
server {
listen 443 ssl http2;
server_name *.dujun.eu.org dujun.eu.org;
...
ssl_certificate /root/.acme.sh/dujun.eu.org_ecc/dujun.eu.org.cer;
ssl_certificate_key /root/.acme.sh/dujun.eu.org_ecc/dujun.eu.org.key;
ssl_trusted_certificate /root/.acme.sh/dujun.eu.org_ecc/ca.cer;
}
后记
标签: 开源实例