1、画出TSL链路的通信图

SSL: Secure Socket Layer
TLS: Transport Layer Security
1995:SSL 2.0 Netscape
1996: SSL 3.0
1999: TLS 1.0
2006: TLS 1.1 IETF(Internet工程任务组) RFC 4346
2008:TLS 1.2 当前使用
2015: TLS 1.3
功能:机密性,认证,完整性,重放保护
两阶段协议,分为握手阶段和应用阶段
握手阶段(协商阶段):客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套
件以及主密钥。后续通信使用的所有密钥都是通过MasterSecret生成。
应用阶段:在握手阶段完成后进入,在应用阶段通信双方使用握手阶段协商好的密钥进行安全通信

马哥36期第九周作业_第1张图片

注:图片来源于马哥教育

2、如何让浏览器识别自签的证书

什么是自签名证书

公认的证书往往都需要收费,如果客户端与服务端都是由我们自己来操控,那便可以使用自签名证书

ca签名证书

ca签名证书,也就是我们自己当是认证的机构去认证一个证书,那么客户端新人该ca证书也代表着信任该ca证书签名的所有的自签名证书。

这里用openssl 实现自签名证书

OpenSSL是一套开源的密码学工具包

在SSL协议中,我们使用了很多密码学手段来保护数据,其中包括对称密码、公钥密码、数字签名、证书、完整性校验、伪随机数生成等。由于这些算法和操作都非常复杂,于是开源社区就开发了一套库,这个库里面提供了很多现成的标准方法,其他开发者只要用正确调用这些方法,就可以实现SSL协议中的各种加密/解密操作了。

linux环境下使用openssl生成ca证书与自签名证书

生成ca证书

1).生成ca证书的密钥key

openssl genrsa -des3 -out ca.key 1024

2).生成ca的自签名证书,是的,此处的ca证书也是一个自签名证书

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

输入ca.key的使用密码后根据情况输入相应信息,在Commom Name选项中需要填写你要使用的域名

如果不想在调用密钥文件的时候输入密码,可以使用以下操作去除

openssl rsa -in ca.key -out ca.key

使用ca证书签名自签名证书

1).生成自签名证书密钥

openssl genrsa -des3 -out server.key 1024

2).生成自签名证书请求文件

openssl req -new -key server.key -out server.csr

输入相应信息后得到server.csr请求文件

3).使用ca证书对自签名证书请求文件进行签名

openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

3、搭建DNS服务器

centos6 (这里是6.7):

1、查看是否已安装Bind软件包,默认只有下面两个

[root@centos named]# rpm -qa | grep bind

bind-libs-9.8.2-0.47.rc1.el6_8.4.x86_64

bind-utils-9.8.2-0.47.rc1.el6_8.4.x86_64

2、安装下面的这两个软件包:

bind-chroot-9.8.2-0.47.rc1.el6_8.4.x86_64

bind-9.8.2-0.47.rc1.el6_8.4.x86_64

[root@centos named]# yum -y install bind-chroot-9.8.2-0.47.rc1.el6_8.4.x86_64 bind-9.8.2-0.47.rc1.el6_8.4.x86_64

安装完成查看是否成功安装

[root@localhost ~]# rpm -qa | grep bind

bind-devel-9.8.2-0.47.rc1.el6_8.4.x86_64

bind-utils-9.8.2-0.47.rc1.el6_8.4.x86_64

bind-chroot-9.8.2-0.47.rc1.el6_8.4.x86_64

bind-libs-9.8.2-0.47.rc1.el6_8.4.x86_64

bind-9.8.2-0.47.rc1.el6_8.4.x86_64

//看到这个说明安装成功

本例中配置ip地址为:192.168.1.10 子网掩码255.255.255.0

主机名为centos.linux.com 并关闭防火墙和selinux

3、配置ip地址,子网掩码

[root@centos named]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

device=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTBROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
DNS1=8.8.8.8

//DNS根据实际情况配置。可以配置谷歌的8.8.8.8,也可以是您当地宿主机的dns

4、更改主机名

[root@centos named]# vim /etc/sysconfig/network

5、更改selinux为disabled

[root@centos named]# vim /etc/selinux/config

6、关闭防火墙守护进程

[root@centos named]# chkconfig iptables off
[root@centos named]# chkconfig --list iptables

7、重启系统,让配置生效

8、设置主DNS服务器:

[root@centos named]# cd /etc/
[root@centos named]# cp named.conf named.bak

先做一个备份,防止出错不能够恢复

9、编辑主配置文件,修改两个地方为any

[root@centos named]# vim /etc/named.conf

options {
listen-on port 53 { any;}; //{any:} 原内容改成 any
...
allow-query { any;}; //{any:} 原内容改成 any
...

10、编辑主配置文件
正反向区域的配置,可以直接写在/etc/named.conf中(不推荐),在/etc/named.conf最下方有两句include语句,其中include "/etc/named.rfc1912.zones";就是用来配置正反向区域配置的文件,当然也可以自定义(自定义需要在/etc/named.conf中include)

这里我们使用默认的配置文件/etc/named.rfc1912.zones,执行

vim /etc/named.rfc1912.zones

编辑这个文件,加入(以域名linux.com为例):

zone "linux.com" IN {

    type master;

    file "linux.com.zone";

};

反向区域如下,

zone "1.168.192.in-addr.arpa." IN {

type master;

file "1.168.192.zone";

};
11、修改正向配置文件

正反向解析区域文件都在/etc/named.conf的 directory 参数配置,默认是"/var/named"。

cd /var/named/ //进入这个目录

cp named.localhost linux.com.zone //将name.localhost 作为正向解析文件的模板,复制成linux.com.zone。在linux.com.zone里面更改 注意:最后的 点 这里面用tab键补齐,别用空格

马哥36期第九周作业_第2张图片
(图片来自网络)

12、修改反向配置文件(提示:可以拷贝正向解析文件去然后进行更改)

马哥36期第九周作业_第3张图片
(图片来自网络)

13、主配置,正反向配置完以后,检查bind文件配置过程中容易出错的地方,以下命令用于检查bind配置文件以及zone文件语法
这里是检查正向:

[root@centos named]# named-checkconf /etc/named.conf

[root@centos named]# named-checkzone linux.com /var/named/linux.com.zone

这里是检查反向:

[root@centos named]# named-checkconf /etc/named.conf

[root@centos named]# named-checkzone linux.com /var/named/1.168.192.zone

14、然后/etc/resolve.conf 添加自己的ip地址为域名服务器ip 192.168.1.10

vim /etc/resolve.conf
nameserver 192.168.1.10

15、重启服务

CentOS6.x 使用 service named restart重启named服务,使用chkconfig named on让服务开机启动。

CentOS7.x 使用 systemctl restart named重启named服务,使用systemctl enable named让服务开机启动。

这里当然是

[root@localhost named]# service named restart

[root@localhost named]# systemctl enable named

16、配置防火墙

CentOS7.x 是:

[root@localhost~]# firewall-cmd --zone=public--add-port=53/tcp --permanent

[root@localhost~]# firewall-cmd --zone=public--add-port=53/udp --permanent

重启防火墙以让更改立刻生效:

[root@localhost~]# firewall-cmd –reload

可使用以下命令检查配置是否成功:

[root@localhost~]# firewall-cmd --list-all

 

CentOS6.X是:

/sbin/iptables -I INPUT -p tcp --dport 53 -j ACCEPT

/sbin/iptables -I INPUT -p udp --dport 53 -j ACCEPT

保存规则:

/etc/rc.d/init.d/iptables save

重启防火墙以让更改立刻生效:

service iptables restart

17、检查之前先看下 配置文件有没有读取权限 ll /var/named

(如果没有读取权限, chmod +r /var/named/* 即可)

如果出现报错,输入

[root@centos etc]# tail /var/log/messages

查看错误文件,并更改


正向解析成功

[root@centos named]# nslookup www.linux.com

Server: 192.168.1.10

Address: 192.168.1.10#53

www.linux.com canonical name = centos.linux.com.

Name: centos.linux.com

Address: 192.168.1.10

反向解析成功

[root@centos named]# nslookup 192.168.1.10

Server: 192.168.1.10

Address: 192.168.1.10#53

10.1.168.192.in-addr.arpa name = centos.linux.com.

10.1.168.192.in-addr.arpa name = www.linux.com.

如果出现解析不成功的情况:

[root@centos named]# service network restart //先重启网络

Shutting down interface eth0: [ OK ]

Shutting down loopback interface: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface eth0: Determining if ip address 192.168.1.10 is already in use for device eth0...

                                                       [  OK  ]

[root@centos named]# service named restart //再重启DNS服务 最后再去尝试解析

Stopping named: . [ OK ]

Starting named: [ OK ]

4、熟悉DNSPOD的解析类型

DNSPod是国内提供智能DNS产品的网站,致力于为各类网站提供高质量的电信、网通、教育网双线或者三线智能DNS免费解析。目前DNSPod已经是国内最大的免费DNS解析产品提供商

A记录
如果需要将域名指向一个ip地址,就需要添加A记录
CNAME记录
如果需要将域名指向另一个域名,再由另一个域名提供ip地址,就需要添加CNAME记录
最常用到CNAME的情况包括:做CDN,做企业邮局
MX记录
如果需要设置邮箱,让邮箱能收到邮件,就需要添加MX记录
TXT记录
如果希望对域名进行标识和说明,可以使用TXT记录,绝大多数的TXT记录是用来做SPF记录(反垃圾邮件)
隐/显性URL记录
将一个域名指向另外一个已经存在的站点,就需要添加URL记录
AAAA记录
当您希望访问者通过IPv6地址访问您的域名时,可以使用AAAA记录
NS记录
如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录
SRV记录
SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理