Linux 部署CA數字證書服務
CA Certificate Authority 數字證書授權中心
被通信雙方信任的,獨立的第三方機構
負責證書頒發,驗證,撤銷等管理
PKI公鑰基礎設施
一套標準的密鑰管理平臺
通過公鑰加密,數字證書技術確保信息安全
PKI體系的基礎組成
權威認證機構(CA)
數字證書庫,密鑰備份及恢復系統
證書作廢系統,應用接口
OpenSSL加密/解密工具
對稱加密:
— enc 算法 -e -in 輸入文件 -out 輸出文件 #加密
— enc 算法 -d -in 輸入文件 -out 輸出文件 #解密
[root@localhost ~]# which openssl
/usr/bin/openssl
[root@localhost ~]# rpm -qf /usr/bin/openssl
openssl-1.0.1e-42.el7_1.9.x86_64
[root@localhost ~]# vim f1.txt
[root@localhost ~]# openssl enc -des3 -e -in f1.txt -out f1.txt.enc
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
[root@localhost ~]# ls f1*
f1.txt f1.txt.enc
[root@localhost ~]# rm -rf f1.txt
[root@localhost ~]# openssl enc -des3 -d -in f1.txt.enc -out f1.txt
enter des-ede3-cbc decryption password:
[root@localhost ~]# ls f1*
f1.txt f1.txt.enc
部署CA服務器
第一步:配置CA簽署環境
[root@CA ~]# ls /etc/pki/CA/ #工作目錄
certs crl newcerts private
[root@CA ~]# ls /etc/pki/CA/certs/ #存儲簽發的數字證書
[root@CA ~]# touch /etc/pki/CA/index.txt #存儲發放出去的數字證書信息
[root@CA ~]# chmod 600 /etc/pki/CA/index.txt
[root@CA ~]# touch /etc/pki/CA/serial
[root@CA ~]# chmod 600 /etc/pki/CA/serial
[root@CA CA]# echo 01 > serial
[root@CA CA]# cat serial
01
[root@CA ~]# vim /etc/pki/tls/openssl.cnf #調整配置
42 dir = /etc/pki/CA #CA簽署工作目錄
43 certs = $dir/certs #用戶證書存放路徑
44 crl_dir = $dir/crl
45 database = $dir/index.txt #存儲發放出去的數字證書信息
50 certificate = $dir/my-ca.crt #CA根證書文件名
51 serial = $dir/serial #證書編號文件
55 private_key = $dir/private/my-ca.key #CA私鑰文件名
130 countryName_default = CN
135 stateOrProvinceName_default = beijing
138 localityName_default = beijing
141 0.organizationName_default = Xuenqlve
148 organizationalUnitName_default = ope
84 [ policy_match ] #匹配策略
85 countryName = match
86 stateOrProvinceName = match
87 organizationName = match
88 organizationalUnitName = optional
89 commonName = supplied
90 emailAddress = optional
match 必須匹配
optional 可選
supplied 忽略
第二步:為CA生成私鑰
[root@CA ~]# cd /etc/pki/CA/private/
[root@CA private]# openssl genrsa -des3 2048 > my-ca.key
Generating RSA private key, 2048 bit long modulus
.....................................................................+++
..+++
e is 65537 (0x10001)
Enter pass phrase: #設私鑰口令
Verifying - Enter pass phrase: #重復私鑰口令
[root@CA private]# ls
my-ca.key
[root@CA private]# chmod 600 my-ca.key
第三步:為CA服務器創建根證書
-new 新文件
-x509 證書的版式
./private/my-ca.key 私鑰文件名
-day 365 有效日期
[root@CA private]# cd ..
[root@CA CA]# openssl req -new -x509 -key ./private/my-ca.key -days 365 > my-ca.crt
Enter pass phrase for ./private/my-ca.key:
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) [CN]:
State or Province Name (full name) [beijing]:
Locality Name (eg, city) [beijing]:
Organization Name (eg, company) [Xuenqlve]:
Organizational Unit Name (eg, section) [ope]:
Common Name (eg, your name or your server's hostname) []:Xuenqlve.ca.com
Email Address []:[email protected]
第四步:發布根證書
可以通過Web,FTP等方式進行發布
[root@CA ~]# yum -y install httpd
[root@CA ~]# systemctl stop firewalld
[root@CA ~]# setenforce 0
[root@CA ~]# systemctl restart httpd
[root@CA ~]# systemctl enable httpd.service
[root@CA ~]# mkdir /var/www/html/ca
[root@CA ~]# cp /etc/pki/CA/my-ca.crt /var/www/html/ca/
客戶端下載應用
[root@test ~]# wget http://192.168.4.2/ca/my-ca.crt
--2018-01-04 20:27:49-- http://192.168.4.2/ca/my-ca.crt
正在連接 192.168.4.2:80... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:1399 (1.4K)
正在保存至: “my-ca.crt”
100%[======================================>] 1,399 --.-K/s 用時 0s
2018-01-04 20:27:49 (141 MB/s) - 已保存 “my-ca.crt” [1399/1399])
[root@test ~]# firefox
進入火狐瀏覽器 點擊瀏覽器右側打開菜單--> 點擊首選項
然後點擊高級--->點擊證書--->點擊查看證書
點擊證書機構--->點擊導入
在計算機上找到剛剛下載的 my-ca.crt 證書 ---> 點擊打開
勾選信任--->點擊確定
然後就可以看見我們自己搭建的證書信息了
Linux 部署CA數字證書服務