概述:本文主要介绍这些内容: DNS 泛域名解析、SSL 泛域名证书申请、CDN 泛域名加速(分发)。
前置:本文中 DNS 服务商为 DNSPod ,SSL 证书由 Let’s Encrypt 颁发,CDN 则是使用 腾讯云 CDN 。
环境:基础的操作环境:主机: CentOS 7.4 、服务器: Nginx 、其他:acme.sh
。
附录:介绍 CentOS 的 Nginx 安装和配置。
一、DNS 域名解析
谈及 DNS 解析,一般有这几点要素:主机记录、记录类型、线路类型、记录值、TTL 。
- 主机记录(@, *,xxx) 假设根域名:
domain.com
主机记录 | 解释 | 解析后网址 |
---|---|---|
@ | 直接对主域名解析 | domain.com |
* | 泛域名解析,匹配所有二级域名 | *.domain.com |
www | 对二级域名为 www 的网址解析 | www.domain.com |
xxx | 对二级域名为 xxx 的网址解析 | xxx.domain.com |
- 记录类型 (A,CNAME,TXT,NS,显性 URL ,隐性 URL)
A
记录:解析到具体的 服务器 IP 地址 ;CNAME
:解析到另一域名(比如 CDN 的加速域名),通过另一域名获取服务器 IP 地址 。
显性 URL
则是使用 301 跳转 重定向 域名,而 隐性URL
本质上只是一个 嵌套 iframe (一个是 DNS 服务器做重定向,一个是 DNS 服务器套一个网页)。NS
则是用来换 DNS 服务商时使用。
二、SSL 泛域名证书申请
支持 免费 泛域名证书申请的只有 Let’s Encrypt 了。
有兴趣可以去其官网看看,每次申请可以获取三个月证书时间,所以此处借助工具:acme.sh
安装方法也非常简单,见其中文帮助文档:acme.sh-说明 ,在本文中简单的记录一下:
(1)安装 acme.sh
curl https://cdn.jsdelivr.net/gh/Neilpang/acme.sh/acme.sh | INSTALLONLINE=1 sh |
(2)生成证书:DNS 方式
需要先登录 dnspod 获取 API 的 ID 和 Key 。
export DP_Id="1234" |
(3)安装证书
acme.sh --installcert -d domain.com \ |
(4)更新证书
目前证书在 60 天以后会自动更新, 你无需任何操作。
(5)自动更新 acme.sh
acme.sh --upgrade --auto-upgrade |
三、CDN 泛域名分发
这里使用的是腾讯云的 CDN (阿里云也是可以的),前置条件:备案 + 验证 。
除了需要验证外,其余的添加方法与普通 CDN 域名加速的设置项均相同。但是有一点需要注意:
全站 Https,泛域名的 SSL 证书 必须要部署到 CDN 上,否则 CDN 会用腾讯云的证书然后就证书不符报错啦。
四、附录
(1)CentOS 配置 Nginx
1.安装 Nginx
yum install -y nginx |
2.启动 Nginx
systemctl start nginx.service |
3.设为开机自启
systemctl enable nginx.service |
4.Nginx 配置信息
- 网站文件存放默认目录:
/usr/share/nginx/html
- 网站默认站点配置文件:
/etc/nginx/conf.d/default.conf
- 自定义站点配置文件:
/etc/nginx/conf.d/
- 全局配置文件:
/etc/nginx/nginx.conf
(2)Nginx 配置 Http 跳转 Https
均修改全局配置文件
nginx.conf
。
1.开启 443 监听
server { |
2.Http 跳转 Https
在监听 80 的函数内添加 rewrite ^(.*)$ https://$host$1 permanent;
:
server { |