1、详细描述一次加密通讯的过程,结合图示最佳。
Client 从互联网下载CA的公钥,用于验证Server身份
Server 通过加密算法生成一对密钥,将公钥发给CA认证机构,做数字证书
CA 通过自己的私钥加密 Server 公钥并加上自己的数字签名后,将生成的数字证书发给Server
Client 与 Server 通TCP的三次握手建立连接
Client 发出HTTP的报文请求,并和Server协商使用哪种算法加密
Server 响应报文并将公钥(CA证书)发送给客户端
Client 能通过CA的公钥解密CA证书,得到Server的公钥和数字签名,Client 通过散列函数算出Server公钥的数字签名与得到的数字签名对比,来验证Server身份,验证成功并发送数据请求
Server 处理请求,并根据Client请求的资源类型,来访问相关资源做出响应报文,并记录日志
Client 与 Server 通过TCP的四次挥手断开连接,通信完成
2、描述创建私有CA的过程,以及为客户端发来的证书请求进行颁发证书。
第一步,创建CA机构
修改配置文件
自己生成一对密钥 (私钥加密http公钥)
生成自签证书
第二步,客户端
生成一对密钥
生成证书颁发请求—.csr
将请求发给CA
第三步,CA机构
签署此证书
传送给客户端
第一步:
创建私有CA机构
~]# cd /etc/pki/CA/
CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
…………………………………………+++
……..+++
e is 65537 (0x10001)
CA]# ls -l private/
总用量 4
-rw——- 1 root root 1679 12月 1 01:28 cakey.pem
CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
—–
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:SZ
Locality Name (eg, city) [Default City]:SZ
Organization Name (eg, company) [Default Company Ltd]:CPTW
Organizational Unit Name (eg, section) []:OPS
Common Name (eg, your name or your server's hostname) []:CPTW.COM.CN
Email Address []:MAIL.CPTW.COM.CN
[root@localhost CA]# touch index.txt
[root@localhost CA]# echo 01 > serial
第二步:
客户端的证书请求
秘钥加密
~]# cd /etc/httpd/
httpd]# ls
conf conf.d conf.modules.d logs modules run
httpd]# mkdir ssl
httpd]# cd ssl
ssl]# ls
ssl]# (umask 077;openssl genrsa -out httpd.key 1024)
Generating RSA private key, 1024 bit long modulus
……..++++++
……..++++++
e is 65537 (0x10001)
[root@localhost ssl]# ls
httpd.key
证书请求
ssl]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
—–
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:SZ
Locality Name (eg, city) [Default City]:SZ
Organization Name (eg, company) [Default Company Ltd]:CPTW
Organizational Unit Name (eg, section) []:OPS
Common Name (eg, your name or your server's hostname) []:WWW.CPTW.COM.CN
Email Address []:MAIL.CPTW.COM.CN
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@localhost ssl]# ls
httpd.csr httpd.key
第三步:
将证书发送给颁发证书机构进行签证
tmp]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Nov 30 18:08:27 2016 GMT
Not After : Nov 30 18:08:27 2017 GMT
Subject:
countryName = CN
stateOrProvinceName = SZ
organizationName = CPTW
organizationalUnitName = OPS
commonName = WWW.CPTW.COM.CN
emailAddress = MAIL.CPTW.COM.CN
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
C2:C2:F3:E3:91:CC:82:96:B2:38:CB:23:84:F4:4F:93:FF:32:FC:BD
X509v3 Authority Key Identifier:
keyid:F0:26:D0:A8:94:A9:81:E2:C5:C0:5A:95:5B:D3:1B:BB:BB:28:59:87
Certificate is to be certified until Nov 30 18:08:27 2017 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
3、描述DNS查询过程以及DNS服务器类别。
DNS查询过程:
(1)、本地解析
客户端操作系统上都运行着一个DNS客户端程序,当其他程序提出DNS查询请求时,这个查询请求要传送至DNS客户端程序。DNS客户端程序首先使用本地缓存信息进行解析,如果可以解析所要查询的名称,则DNS客户端程序就直接应答该查询,而不需要向DNS服务器查询,该DNS查询处理过程结束(/etc/hosts)
(2)、直接解析
如果DNS客户端程序不能从本地DNS缓存中回答客户端的DNS查询,向客户端所设定的局部DNS服务器发送一个查询请求,要求局部DNS服务器进行解析。局部DNS服务器得到这个查询请求,首先查看所要求查询的域名自己能否解析,如果能解析,则直接应答,如不能,在查看自己的DNS缓存,如果可以从缓存中解析,则也是直接给予回应
(3)、递归解析
当局部DNS服务器无法进行DNS解析时,它就需要向其他DNS服务器进行查询。此时有两种方式:递归方式,局部DNS服务器自己负责向其它DNS服务器进行查询,一般是先向该域名的根域名服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS,再由局部DNS服务器返回给客户端
(4)、迭代解析
当局部DNS服务器自己不能回答客户端的DNS查询时,也可以通过迭代查询的方式进行解析。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其它DNS服务器的IP地址返回给客户端的DNS程序,客户端DNS程序再继续想这些DNS服务器进行查询,知道得到结果为止。
备注:摘自http://blog.sina.com.cn/s/blog_4078ccd60101cj6r.html
DNS服务器类别
负责解析至少一个域:
主名称服务器;
辅助名称服务器;
不负责域解析:
缓存名称服务器;
4、搭建一套DNS服务器,负责解析magedu.com域名(自行设定主机名及IP)
(1)、能够对一些主机名进行正向解析和逆向解析;
(2)、对子域cdn.magedu.com进行子域授权,子域负责解析对应子域中的主机名;
(3)、为了保证DNS服务系统的高可用性,请设计一套方案,并写出详细的实施过程
主从DNS
一、主服务器部分需要在bind的主配置文件/etc/named.conf中定义允许哪些从服务器来同步信息
allow-transfer {}; 允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;
allow-transfer { 192.168.150.132; };
二、主服务器上还需要在正向解析库文件中添加从服务器的ns解析记录
[root@node1 ~]# cat /var/named/void.com.zone
$TTL 3600
$ORIGIN void.com.
@ IN SOA ns1.void.com. admin.void.com. (
20161028 修改完配置文件后序列号手动进行+1操作
1H
10M
3D
1D )
IN NS ns1
IN NS ns2
ns1 IN A 192.168.150.128
ns2 IN A 192.168.150.132
www IN A 192.168.150.128
web IN CNAME www
bbs IN A 192.168.150.129
配置修改检查named-checkzone void.com.zone /var/named/void.com.zone
三、在从服务器上只用修改bind的配置文件/etc/named.rfc1912.zones,数据库解析文件不需要定义(因为要从主服务器上传送过来)
zone "void.com" IN {
type slave;
file "slaves/void.com.zone";
masters { 192.168.150.128; };
};
注意:时间要同步;
ntpdate命令;
配置文件语法检查:named-checkconf
四、重载配置
rndc reload
systemctl reload named.service
日志查看/var/log/messages
从服务器解析
[root@node2 ~]# dig -t A www.void.com @192.168.150.132
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A www.void.com @192.168.150.132
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56277
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.void.com. IN A
;; ANSWER SECTION:
www.void.com. 3600 IN A 192.168.150.128
;; AUTHORITY SECTION:
void.com. 3600 IN NS ns1.void.com.
void.com. 3600 IN NS ns2.void.com.
;; ADDITIONAL SECTION:
ns1.void.com. 3600 IN A 192.168.150.128
ns2.void.com. 3600 IN A 192.168.150.132
;; Query time: 0 msec
;; SERVER: 192.168.150.132#53(192.168.150.132)
;; WHEN: 三 10月 26 21:11:43 CST 2016
;; MSG SIZE rcvd: 125
从服务器slaves文件
[root@node2 ~]# ls -l /var/named/slaves/
总用量 4
-rw-r–r– 1 named named 378 10月 26 12:11 void.com.zone
子域授权
授权原理是在本域名服务器上的正向解析库文件当中定义子域对应的DNS服务器的主机名和其A记录即可
[root@node1 ~]# cat /var/named/void.com.zone
$TTL 3600
$ORIGIN void.com.
@ IN SOA ns1.void.com. admin.void.com. (
20161028
1H
10M
3D
1D )
IN NS ns1
IN NS ns2
ops.void.com IN NS ns1.ops.void.com. 主要添加NS记录
ns1 IN A 192.168.150.128
ns2 IN A 192.168.150.132
www IN A 192.168.150.128
web IN CNAME www
bbs IN A 192.168.150.129
ns1.ops.void.com IN A 192.168.150.129 还有对应的A记录
另外,子域还需要定义其对应子域的解析库文件,这样才能对子域进行解析。配置过程同上面的配置相同。
子域授权:
正向解析区域授权子域的方法:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NS ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A IP.AD.DR.ESS
ns2.ops.magedu.com. IN A IP.AD.DR.ESS
定义转发:
注意:被转发的服务器必须允许为当前服务做递归;
(1) 区域转发:仅转发对某特定区域的解析请求;
zone "ZONE_NAME" IN {
type forward;
forward {first|only};
forwarders { SERVER_IP; };
};
first:首先转发;转发器不响应时,自行去迭代查询;
only:只转发;
(2) 全局转发:针对凡本地没有通过zone定义的区域查询请求,通通转给某转发器;
options {
… …
forward {only|first};
forwarders { SERVER_IP; };
.. …
};
原创文章,作者:N23-苏州-void,如若转载,请注明出处:http://www.178linux.com/62772
评论列表(1条)
赞,加密通讯可以自己画个图来描述下~~继续加油~