关于在 Namecheap 购买通配符 SSL 证书并配置的教程。
注:这篇文章是从旧的博客系统中迁移过来的、我觉得还存在价值的文章。但是由于时间关系,可能已经不再是最佳实践,请仅作参考。
一个边缘服务涉及到的服务器和子域名实在太多,自签证书在每个服务器上都配置一遍想想就觉得麻烦,而且有些子域名需要暴露给外部访问,在用户机器人上安装证书也不太现实,索性购买下通配符证书来解决吧。
1、证书的购买
选择在 Namecheap 上进行购买,链接:https://www.namecheap.com/security/ssl-certificates/,注意需要选择 Wildcard 类型的证书:

两年起购买更优惠。
2、证书的激活
① 购买后的证书进入激活阶段时,需要你提供 CSR,我这里选择使用在线工具生成:CSR在线生成工具

注意:生成后一定要下载 KEY 文件!生成后一定要下载 KEY 文件!生成后一定要下载 KEY 文件!同时因为你购买的是通配符域名,所以这里的域名要填写 *.your_domain.com。
拷贝到激活页的框中,即可看到适配的域名也是通配符域名了:

② 选择添加 DNS 解析的方式来验证域名所有权:

③ 选择证书发送到哪个邮箱:

④ 提交:

⑤ 去添加 DNS 解析来等待审核:




接着前往 https://mxtoolbox.com/CnameLookup.aspx 验证 CNAME 是否生效:
之后只需静等 15 到 30 分钟即可,审核通过后证书会发送至你的邮箱。
3、证书的配置
发来的证书会有 2 个文件:

拷贝至服务器后拼接为 .crt 文件:
cat STAR_xxxx_xxx.crt STAR_xxxx_xxx.ca-bundle > xxxx_xxx.bundle.crt
接着把生成 CSR 时一起下载的 .key 文件放到服务器上,补齐完整的证书链:

之后就能使用了,直接去 Nginx 中配置即可,样例:
...
...
server {
listen 80;
server_name test.xxxx.xxx;
root /usr/share/nginx/html;
location / {
# 跳转 HTTPS
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name test.xxxx.xxx;
# SSL 配置
ssl_certificate /rab/ssl/xxxx_xxx.bundle.crt;
ssl_certificate_key /rab/ssl/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
location / {
root /usr/share/nginx/html;
}
}
...
...
访问确认证书生效:

结束。