OpenSSL及證書服務

3.OpenSSL及證書服務
問題
本案例要求熟悉OpenSSL工具的基本使用,完成以下任務操作:
1)使用OpenSSL加密/解密文件
2)搭建企業自有的CA服務器,爲頒發數字證書提供基礎環境
方案
使用兩臺RHEL6虛擬機,其中svr5作爲CA數字證書服務器,而pc205作爲測試用客戶機,如圖-4所示。
在這裏插入圖片描述
圖-4
步驟
實現此案例需要按照如下步驟進行。
步驟一:使用OpenSSL加密/解密文件
1)加密文件
創建一個明文的文本文件f1.txt,使用openssl進行加密,選用des3加密算法,輸出的加密文件爲f1.txt.enc 。
[root@svr5 ~]# rpm -qi openssl > f1.txt //建立明文的測試文件
[root@svr5 ~]# head -2 f1.txt
Name : openssl Relocations: (not relocatable)
Version : 1.0.0 Vendor: Red Hat, Inc.
[root@svr5 ~]# 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@svr5 ~]# file f1.txt*
f1.txt: UTF-8 Unicode English text
f1.txt.enc: data //加密後變成非ASCII格式
2)解密文件
查看未解密的f1.txt.enc文件時顯示亂碼,必須解密後才能查看。
[root@svr5 ~]# head -2 f1.txt.enc
Salted__▒▒▒▒C̏▒x▒6Q▒
.O▒l▒g▒)▒▒▒{▒▒G▒▒t▒▒!▒▒▒Cc0▒▒▒c쬂▒V▒Dp▒▒9▒▒▒[▒▒▒X▒f▒ڍ▒j@▒▒▒▒▒▒▒=@▒.ɮP▒1e▒▒▒"M`▒W▒=▒▒▒-a,▒▒j7▒M▒▒b▒+▒▒ 麋0▒▒▒k▒▒z▒Zʢ

[root@svr5 ~]# openssl enc -des3 -d -in f1.txt.enc -out f1-new.txt
enter des-ede3-cbc decryption password: //輸入解密口令
[root@svr5 ~]# head -2 f1-new.txt //查看解密後的文本
Name : openssl Relocations: (not relocatable)
Version : 1.0.0 Vendor: Red Hat, Inc.
步驟二:搭建企業自有的CA服務器,爲頒發數字證書提供基礎
1)配置CA簽署環境
修改OpenSSL的主配置文件位於/etc/pki/tls/openssl.cnf,爲證書創建過程提供一些默認的設置:
[root@svr5 ~]# vim /etc/pki/tls/openssl.cnf
… …
[ CA_default ]
dir = /etc/pki/CA //CA相關文件的默認目錄
certs = $dir/certs //爲用戶頒發證書的存放位置
crl_dir = $dir/crl //證書廢止列表(CRL)文件的存放位置
database = $dir/index.txt //證書數據的索引文件,需手動建立
certificate = $dir/my-ca.crt //CA服務器根證書文件
serial = $dir/serial //序號記錄文件,需手動建立
… …
private_key = $dir/private/my-ca.key //CA服務器私鑰文件
[ req_distinguished_name ] //證書請求的識別信息
countryName = Country Name (2 letter code)
countryName_default = CN //國家名縮寫
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = Beijing //所在省份
localityName = Locality Name (eg, city)
localityName_default = Beijing //所在城市
0.organizationName = Organization Name (eg, company)
0.organizationName_default = Tarena Technology Ltd //所在單位/組織
默認CA配置目錄位於/etc/pki/CA/,需要建立初始化序列文件、索引文件:
[root@svr5 ~]# cd /etc/pki/CA
[root@svr5 CA]# touch index.txt //建立數據索引文件
[root@svr5 CA]# echo 01 > serial //建立序號文件
2)爲CA服務器創建私鑰
此私鑰在後續簽發證書時都會用到,建議設置一個私鑰口令進行保護。
[root@svr5 ~]# cd /etc/pki/CA/private
[root@svr5 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@svr5 private]# chmod 600 my-ca.key
[root@svr5 private]# ls -l my-ca.key
-rw-------. 1 root root 1751 8月 6 14:12 my-ca.key
3)爲CA服務器創建根證書
此根證書將提供給所有客戶企業及個人,用來驗證證書持有者的合法身份。證書請求識別信息會根據第1)步設置的自動讀取,但通用名稱、郵箱地址需要手動指定。
[root@svr5 private]# openssl req \

-new -x509 -key my-ca.key -days 365 > …/my-ca.crt
Enter pass phrase for 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) [Tarena Technology Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:Tarena CA Server
Email Address []:[email protected]
4)發佈根證書文件
本例中通過自帶的httpd服務提供Web方式的下載。
[root@svr5 private]# mkdir /var/www/html/certs/
[root@svr5 private]# cp …/my-ca.crt /var/www/html/certs/TARENA-CA.CRT
[root@svr5 private]# service httpd start
正在啓動 httpd:httpd: Could not reliably determine the server’s fully qualified domain name, using svr5.tarena.com for ServerName
[確定]
確認在客戶機能夠下載到根證書。
[root@pc205 ~]# wget http://192.168.4.5/certs/TARENA-CA.CRT
… …
2013-08-17 23:36:51 (49.5 MB/s) - 已保存 “TARENA-CA.CRT” [1436/1436])
完成這些步驟以後,就已經具有了簽發證書的環境。當收到企業或個人提交的證書籤發請求(CSR)文件以後,就可以執行驗證和簽發了(後續講解內容)。

發佈了225 篇原創文章 · 獲贊 196 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章