青训营笔记:将服务开放给用户
域名系统
Host 管理
使用 hosts 文件管理主机名和 IP 的映射,并分发至其它节点同步。
缺点:
- Host 文件增大,统一分发引起网络和 CPU 负载
- 名称冲突,无法保证主机名称的唯一性
- 分发靠人工上传,时效性差
域名
域名空间被组织成树形结构,全球公共域名被组织为一棵树
www.baidu.com
网址是由二部分组成,baidu
是这个域名的主体,而最后的 com
则是该域名的后缀,代表的这是一个 com
国际域名,是顶级域名。而前面的 www.
是网络名。
DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过 63 个字符,不区分大小写字母。除-
外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的域名写在最右边。完整域名总共不超过 255 个字符。
域名购买与配置迁移
通过购买公共顶级域名和二级域名,就可以取代 Host 管理的模式,Linux 下操作如下:
- 清空
/etc/hosts
文件 - 配置
/etc/resolv.conf
中的nameservers
为公共 DNS - 通过控制台添加解析记录
外部访问
租赁一个外网 IP,用于外部访问,将域名解析至外网 IP
自建 DNS 服务器
公共 DNS 缺点
- 解析内网域名时同样需要前往公网获取;
- 外部用户看得到内网 IP 地址,存在安全隐患;
- 云厂商 DNS 容易出现故障,影响用户体验;
HTTPS
密钥
明文通过加密算法 和加密密钥 变成密文 :
解密算法 运算和解密密钥 解出明文 。解密算法是加密算法的逆运算:
- 加密密钥可以与解密密钥相同,也可以不同。
- 密钥可以由密钥中心提供。
- 当密钥需要向远地传送时,一定要通过另一个安全信道。
对称密钥密码体制
- 加密密钥与解密密钥是相同的密码体制
DES
将明文分组后分别加密:
- 在加密前,先对整个明文进行分组。每一个组长为 64 位。
- 对每一个 64 位数据进行加密处理,产生64 位密文数据。
- 各组密文串接起来,得出整个的密文。
- 使用的密钥为 64 位(实际密钥长度为 56 位,有 8 位用于奇偶校验)。
DES 的保密性仅取决于对密钥的保密,56位的 DES 已不再认为是安全的
3DES
也就是先使用一个密钥进行加密,再用另一个密钥解密,再用原来的密钥再加密。称为三重 DES
公钥密码体制
使用不同的加密密钥与解密密钥
由已知加密密钥推导出解密密钥在计算上是不可行的
公钥:加密密钥,Public key,公开的
私钥:解密密钥,Secret key,需要保密
私钥由公钥决定,但是不能根据公钥计算出私钥
- 如果某一信息用公开密钥加密,则必须用私有密钥解密,这就是实现保密的方法
- 如果某一信息用私有密钥加密,那么,它必须用公开密钥解密。这就是实现数字签名的方法
SSL
使用
- Client Random
- Server Random
- Premaster Secret
- 加密算法协商
生成临时的 Session Key,随后使用 Session Key 进行传输。
1 | master_secret = PRF(pre_master_secret, "master secret",ClientHello.random+ServerHello.random) |
如何确定公钥是有效的
- 是否由可信机构发布
- 域名是否与当前域名一致
- 数字签名是否一致
- 有效期
- 撤回状态
降低响应时间
响应慢的原因
- 源站容量低
- 经过的网络设备越多,出问题的概率越大,如丢包、劫持等
- 自主选路的网络链路长、时延高
解决方案
- 增加机器扩容
- 静态加速 CDN
- 动态加速 DCDN
静态加速 CDN
针对静态资源的加速方式。
将静态资源缓存至 CDN 节点上,从而在访问静态资源时只需要访问 CDN 节点,降低主站压力。
- 解决了服务端的 “第一公里” 问题,让优化靠近客户端
- 缓解了不同运营商之间互联的瓶颈
- 减轻了各省出口带宽的压力
- 优化网络热点内容分布
动态加速(全站加速) DCDN
通过探测路径,选择性能与稳定性最优的链路