目錄
一、理論
1.CA認證中心
2.CA證書服務器部署
二、實驗
1. CA證書服務器部署
三、總結
一、理論
1.CA認證中心
(1)概念
CA :CertificateAuthority的縮寫,通常翻譯成認證權威或者認證中心,主要用途是為用戶發(fā)放數(shù)字證書
功能:證書發(fā)放、證書更新、證書撤銷和證書驗證。
作用:身份認證,數(shù)據(jù)的不可否認性
端口:443
證書請求文件:CSR是Cerificate Signing Request的英文縮寫,即證書請求文件,也就是證書申請者在申請數(shù)字證書時由CSP(加密服務提供者)在生成私鑰的同時也生成證書請求文件,證書申請者只要把CSR文件提交給證書頒發(fā)機構后,證書頒發(fā)機構使用其根證書的私鑰簽名就生成了證書文件,也就是頒發(fā)給用戶的證書。
(2)名詞介紹
①key 私鑰? = 明文--自己生成(genrsa )
②csr?公鑰? = 由私鑰生成
③crt? 證書? =?公鑰?+ 簽名(自簽名或者由CA簽名)
④證書:server.crt文件就是證書文章來源:http://www.zghlxwxcb.cn/news/detail-684927.html
⑤簽名:使用私鑰key與公鑰csr進行證書server.crt生成的過程稱為簽名文章來源地址http://www.zghlxwxcb.cn/news/detail-684927.html
?
(3)https 與 http 區(qū)別
-
HTTP 明文傳輸,數(shù)據(jù)都是未加密的,安全性較差,HTTPS(SSL+HTTP) 數(shù)據(jù)傳輸過程是加密的,安全性較好。
-
使用 HTTPS 協(xié)議需要到 CA(Certificate Authority,數(shù)字證書認證機構) 申請證書,一般免費證書較少,因而需要一定費用。證書頒發(fā)機構如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。
-
HTTP 頁面響應速度比 HTTPS 快,主要是因為 HTTP 使用 TCP 三次握手建立連接,客戶端和服務器需要交換 3 個包,而 HTTPS 除了 TCP 的三個包,還要加上 ssl 握手需要的 9 個包,所以一共是 12 個包。
-
http 和 https 使用的是完全不同的連接方式,用的端口也不一樣,前者是 80,后者是 443。
-
HTTPS 其實就是建構在 SSL/TLS 之上的 HTTP 協(xié)議,所以,要比較 HTTPS 比 HTTP 要更耗費服務器資源。
?(4)https原理
原理如下:
1.客戶端發(fā)起 HTTPS 請求
這個沒什么好說的,就是用戶在瀏覽器里輸入一個 https 網址,然后連接到 server 的 443 端口。
2.服務端的配置
采用 HTTPS 協(xié)議的服務器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請,區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl 就是個不錯的選擇,有 1 年的免費服務)。
這套證書其實就是一對公鑰和私鑰,如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然后發(fā)給你,因為只有你一個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
3.傳送證書
這個證書其實就是公鑰,只是包含了很多信息,如證書的頒發(fā)機構,過期時間等等。
4.客戶端解析證書
這部分工作是有客戶端的 TLS 來完成的,首先會驗證公鑰是否有效,比如頒發(fā)機構,過期時間等等,如果發(fā)現(xiàn)異常,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題,那么就生成一個隨機值,然后用證書對該隨機值進行加密,就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容。
5.傳送加密信息
這部分傳送的是用證書加密后的隨機值,目的就是讓服務端得到這個隨機值,以后客戶端和服務端的通信就可以通過這個隨機值來進行加密解密了。
6.服務端解密信息
服務端用私鑰解密后,得到了客戶端傳過來的隨機值(私鑰),然后把內容通過該值進行對稱加密,所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠復雜,數(shù)據(jù)就夠安全。
7.傳輸加密后的信息
這部分信息是服務段用私鑰加密后的信息,可以在客戶端被還原。
8.客戶端解密信息
客戶端用之前生成的私鑰解密服務段傳過來的信息,于是獲取了解密后的內容,整個過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策。
2.CA證書服務器部署
(1) 環(huán)境準備
表1 服務器
主機 | IP地址 |
---|---|
CA證書服務器 | 192.168.204.69 |
Apache服務器 | 192.168.204.186 |
(2)CA證書服務器的配置
[root@server ~]# yum install -y openssl //安裝OpenSSL工具默認是安裝好了的
[root@server ~]# vim /etc/pki/tls/openssl.cnf //查看配置文件
42 dir = /etc/pki/CA #相關證書的存放的目錄
43 certs = $dir/certs #存儲簽發(fā)的數(shù)字證書
45 database = $dir/index.txt # 記錄頒發(fā)證書的信息
51 serial = $dir/serial #記錄證書編號
[root@server ~]# cd /etc/pki/CA/ //這個目錄是存放證書相關的文件的地方
[root@server CA]# ls
certs crl newcerts private
[root@server CA]# cd private/ //這個目錄是存放CA證書服務的私鑰的地方
CA證書服務器創(chuàng)建自簽名證書并設置權限為600
[root@server ~]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
..............................................+++
.............................................................+++
e is 65537 (0x10001)
CA證書服務器簽發(fā)本地自簽名證書(需要輸入一些基本信息)
[root@server ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
Country Name (2 letter code) [XX]:CN //國家
State or Province Name (full name) []:JS //所在省
Locality Name (eg, city) [Default City]:NJ //所在市
Organization Name (eg, company) [Default Company Ltd]:APACHE //單位名稱
Organizational Unit Name (eg, section) []:APACHE-SERVER //組織單位名稱
Common Name (eg, your name or your server's hostname) []:jw.com //單位的域名
Email Address []:admin@163.com 郵箱
CA證書服務還需要創(chuàng)建兩個文件,才可以執(zhí)行頒發(fā)證書操作
[root@server ~]# cd /etc/pki/CA/ //進入這個目錄
[root@server CA]# touch index.txt //創(chuàng)建記錄申請證書的文件
[root@server CA]# echo 01 > serial //證書編號
[root@server CA]# cat serial
01
(2)?Apache服務器的配置
[root@clinet ~]# yum install -y httpd mod_ssl
[root@clinet ~]# echo "this is CA " >> /var/www/html/index.html //寫入一個頁面,暫時不要啟動httpd服務器
創(chuàng)建私鑰httpd.key
[root@clinet ~]# mkdir ssl //創(chuàng)建一個目錄
[root@clinet ~]# cd ssl/
[root@clinet ssl]# (umask 077;openssl genrsa -out /root/ssl/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
......+++
................................................................+++
e is 65537 (0x10001)
依據(jù)私鑰生成證書申請文件
[root@clinet 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) []:JS
Locality Name (eg, city) [Default City]:NJ
Organization Name (eg, company) [Default Company Ltd]:APACHE
Organizational Unit Name (eg, section) []:APACHE-SERVER
Common Name (eg, your name or your server's hostname) []:jw.com
Email Address []:admin@163.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:apache
[root@clinet ssl]# ls //最后在這個目錄就生成了兩個文件了
httpd.csr httpd.key
然后我們將生成的證書申請文件發(fā)送到 CA證書服務器進行授權操作
[root@clinet ssl]# scp httpd.csr root@192.168.204.69:/
(3)?CA證書服務器的操作
[root@server /]#openssl ca -in httpd.csr -out /etc/pki/CA/certs/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: Aug 27 10:42:07 2023 GMT
Not After : Aug 26 10:42:07 2024 GMT
Subject:
countryName = CN
stateOrProvinceName = JS
organizationName = APACHE
organizationalUnitName = APACHE-SERVER
commonName = jw.com
emailAddress = admin@163.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
68:52:C5:41:3F:1E:7C:25:FE:06:87:79:91:F1:DD:BD:62:41:50:AE
X509v3 Authority Key Identifier:
keyid:0A:47:11:F3:83:F6:6B:E7:D8:6F:C5:3F:DE:42:C6:71:B6:ED:6F:FD
Certificate is to be certified until Aug 26 10:42:07 2024 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
然后我們在將生成的證書文件傳送會Apache服務器即可
[root@server /]# scp /etc/pki/CA/certs/httpd.crt root@192.168.204.186:/root/ssl
root@192.168.204.186's password:
httpd.crt 100% 4571 7.2MB/s 00:00
(4)?Apache服務器的操作
[root@clinet ssl]# ls 然后就會如下的文件
httpd.crt httpd.csr httpd.key
[root@clinet ~]# vim /etc/httpd/conf.d/ssl.conf //然后我們編輯這個文件 添加這兩個文件所在的路徑即可
100 SSLCertificateFile /root/ssl/httpd.crt
107 SSLCertificateKeyFile /root/ssl/httpd.key
先關閉防火墻以及selinux 不然等下啟動會出現(xiàn)問題
[root@clinet ssl]# systemctl stop firewalld
[root@clinet ssl]# setenforce 0
[root@clinet ssl]# systemctl start httpd
[root@clinet ssl]# ss -tan |grep 80
LISTEN 0 128 [::]:80 [::]:*
[root@clinet ssl]# ss -tan |grep 443
LISTEN 0 128 [::]:443 [::]:*
(5) 瀏覽器訪問測試
瀏覽器輸入https://192.168.204.186訪問測試
因為我們自行搭建的證書服務器頒發(fā)的證書不具備權威性,所有瀏覽器還是提示為不安全
點擊訪問出現(xiàn)如下畫面也是可以正常訪問的
this is CA
點擊證書來進行查看頒發(fā)者,CA證書服務器結合httpd服務器的實驗就此完成
二、實驗
1. CA證書服務器部署
(1)CA證書服務器的配置
安裝OpenSSL工具
完成
查看配置文件:
42行為相關證書的存放的目錄,43行為存儲簽發(fā)的數(shù)字證書
45行為記錄頒發(fā)證書的信息
?
?51行為記錄證書編號
切換存放證書相關的文件的目錄
切換存放CA證書服務的私鑰的目錄
CA證書服務器創(chuàng)建自簽名證書并設置權限為600
生成文件
CA證書服務器簽發(fā)本地自簽名證書(需要輸入一些基本信息)
?CA證書服務還需要創(chuàng)建兩個文件,才可以執(zhí)行頒發(fā)證書操作:
?
(2)?Apache服務器的配置
?寫入一個頁面,暫時不要啟動httpd服務器:
?創(chuàng)建私鑰httpd.key:
?生成文件:
?依據(jù)私鑰生成證書申請文件
?查看在這個目錄就生成了兩個文件
?然后將生成的證書申請文件發(fā)送到 CA證書服務器進行授權操作
(3)?CA證書服務器的操作
然后將生成的證書文件傳送會Apache服務器
(4)?Apache服務器的操作
查看
編輯這個文件
添加這兩個文件所在的路徑即可
?
?先關閉防火墻以及selinux
啟動服務并查看端口
(5) 瀏覽器訪問測試
因為自行搭建的證書服務器頒發(fā)的證書不具備權威性,所有瀏覽器還是提示為不安全
??點擊訪問出現(xiàn)如下畫面也是可以正常訪問的
?可以點擊證書來進行查看
三、總結
名詞介紹:
①key 私鑰? = 明文--自己生成(genrsa )
②csr?公鑰? = 由私鑰生成
③crt? 證書? =?公鑰?+ 簽名(自簽名或者由CA簽名)
④證書:server.crt文件就是證書
⑤簽名:使用私鑰key與公鑰csr進行證書server.crt生成的過程稱為簽名
到了這里,關于Linux系統(tǒng):CentOS 7 CA證書服務器部署的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!