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.www58058.com/62772
贊,加密通訊可以自己畫個圖來描述下~~繼續加油~