linux下創建CA以及頒發證書

一、創建私有CA

使用工具openssl模擬創建CA

Openssl程序包分解:

Openssl由三部分組成:加密庫libcrypt、服務器端實現ssl功能會話的庫、命令行工具

Openssl工具使用詳解:

#rpm -ql openssl

第一個功能庫:libctypto:主要用來實現加密解密,一些用來實現加密解密的程序,有可能都要調用libcrypto庫,加密解密程序庫會被衆多應用程序所依賴;來完成ssl會話;一般默認安裝完系統之後就會被默認安裝,因爲libctypto會被衆多的

第二個功能庫:libssl:實現ssl功能

/usr/bin/openssl多用途的命令行程序

httpd,有個模塊叫做mod_ssl,支持https的功能模塊

#openssl version//顯示版本

openssl是一個具有許多子命令的命令,是一個多用途、多功能的工具;

常用選項:

OPTIONS

-in filename
           the input filename, standard input by default.
-out filename
           the output filename, standard output by default.  


使用openssl加密解密:

# cp /etc/fstab  ./
# cat fstab -n

# openssl enc -des3  -in fstab  -e -out fstab.des3
# file fstab.des3

# cat fstab.des3 -n

刪除fstab,再解密還原爲原來的文件

# rm -i fstab
# openssl enc -des3 -d -in fstab.des3 -out fstab
# cat -n fstab

解密只需逆序操作即可,似乎只需要輸入一次密碼即可:

Openssl加密格式:加密解密共兩個命令

單項加密都是調用dgst算法

#openssl  ?
#man dgst


信息摘要算法的巨大特性就是雪崩效應

使用算法提取特徵碼:

# openssl dgst -md5 fstab
# openssl dgst -hex -md5 fstab
#md5sum fstab

雪崩效應實驗

# vim fstab
# openssl dgst -hex -md5 fstab

[root@Cenetos ~]# vim   fstab//對裏面內容隨便修改一下,哪怕只是增加了一個空格而已
# openssl dgst -md5 -hexfstab

雪崩效應直接導致特徵碼已經完全變了模樣,其實上面只是在裏面添加了個空格而已!如果把原來的空格刪除即可恢復原來的特徵碼哦!

無論使用哪個計算工具,只要使用的算法是相同的,那麼,得到的結果一定是相同的。如下

[root@Cenetos ~]# md5sum fstab

4cf50b14ab7d08d99acace901fb78860  fstab

[root@Cenetos ~]# openssl dgst -md5 fstab

MD5(fstab)= 4cf50b14ab7d08d99acace901fb78860

# openssl dgst -sha1 fstab等同# sha1sum fstab

測試當前主機CPU支持加密算法的速度,速度測試工具
# openssl speed des-ede3

不帶任何參數的speed對上面所支持的算法統統測試一遍

#man sslpasswd

生成隨機數種子:
# openssl passwd -1 salt 11111111

注:紅帽6.4默認已經不再是基於MD5,默認是基於sha512,只不過openssl不支持罷了。

如何隨機得到八位的字符串呢?

Openssl專門生成隨機數的命令rand

隨機數

命令格式:生成隨機數種子:
#openssl rand -base64 num
#openssl rand -hex num


如何生成私鑰:

#openssl genrsa

# openssl genrsa 521
# openssl genrsa

既然可以輸出到屏幕上,那就重定向到某個文件裏面了。
# openssl genrsa 2048 > mykey.pki

# cat mykey.pki //即可得到私鑰

私鑰是至關重要的,不能隨意讓別人看到的,那私鑰可以加密嗎?私鑰加密

#man genrsa

對私鑰加密指定算法加密,一般有下面幾項:

# openssl genrsa -des3 1024

私鑰已經有了?那麼公鑰從何處來呢?rsa

如何提取公鑰:
[root@Cenetos ~]# openssl rsa -in mykey.pki  -pubout
writing RSA key
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvimkPZzgpvhTpJAu+4x2
bgrnmD1QxQOoIbxe52bcZEG01wJpWUgL4odL7iPCwJEjDmRaP6zVA3qnHp8kV15j
frpEQplRoxgiOUaohCAGxL15Dgt4zl5VXoLtYs8R9O3B//SJgce4IJwkQZjJ9B84
beVa1zbszUTC5KEjzOa1Rl2ScVEEBU0DBaFSFvOx1D2soICQL6O+lB0dRohHN+GR
uKXxp6s/E360jkLpUbLqZM5D1HArMLcItGJ/ynhA3OQEbXPGdGr+Mjb+LkZnb7Iw
uy+03iDpNG80kdGCM2/PwL0H0OmItKRKRbxtR0jAhffwuAfptRx15hE/PZ4AjiYM
q3RLP7uG4lF3+LDZgDe0H+R7sTCnwgJZHOX469et+HnZDlTLSVR8JIAm9Dk/s3wF
xrbvcvtdyVYFBu15DTzt22aKu1QGkKQmAhCvJDJkWMOEUQSYo1uXijPpwNJ75eCR
j1u+XbvP1vi3nXZEDBKzE11pN76t7vkAynj8O+Pfk+QE5DJ7mSjxG36hZfGAb7xU
4nhTVaf4m/S40mLTAK2yud0o4UFqfw7ixHqgg5ijD/wl++pBwaujUxiZYoJeT0/f
Gn2UvCu5Sl/k4UmYbg4dQHYVEWeFd4bhb76J0rX6F3IHvhamO1wI657zyJG/pUss
1u/YbmWM0NRGiDTdQsDhMTECAwEAAQ==
-----END PUBLIC KEY-----
[root@Cenetos ~]# cat mykey.pki
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

以上就是私鑰與之對應的公鑰

查看私鑰文件的默認權限

注:創建完之後要修改密鑰的權限,或直接使用如下命令

# (umask 077; openssl genrsa -out /root/mykey2.pki 2048)
# ll /root/mykey2.pki

           證書請求的過程

證書中包含的是什麼?主要就是擁有者自身的屬性信息,公鑰以及CA的簽名,其核心其實就是用戶的公鑰。也就意味着用戶要想去CA那裏申請一個證書,該如何去申請呢?

一個證書的組成部分既包含用戶的公鑰又包含用戶實體的名稱,ID號等各種屬性信息,在驗證證書合法性的時候最重要的就是名稱

證書請求籤署過程:

1、自己生成一個私鑰;

2、(從私鑰中把公鑰提取出來,並附加上個人信息)製作一個證書籤署請求;

3、CA負責簽署證書

# openssl req -new -key mykey.pki -out  /test/mykeyreq.csr

-new:製作一個證書申請;

-k:指定私鑰文件位置;

-out:把證書申請保存爲什麼文件;

後綴:req文件格式的後綴名一般保存爲*.csr,一般來講都以此後綴名作爲證書申請;

以下就是填寫個人信息了哦:

各字段註釋:

1、Country Name (2 letter code) [XX]:CN兩個字符的國家代碼,且只能是兩個字符,這裏填入CN

2、State or Province Name (full name) []:Henan州或者省份的名字,這裏填入Henan;

3、Locality Name (eg, city) [Default City]:默認所在的城市,這裏填入Zhengzhou

4、Organization Name (eg, company) [Default Company Ltd]:公司名稱,默認爲有限公司,這裏填入Magedu

5、Organizational Unit Name (eg, section):所在部門的名稱,這裏填入Tech;

6、Common Name (eg, your name or your server's hostname)

關鍵的一項,用戶在訪問時輸入訪問網站的名稱;兩種情況,若使用域名訪問則此處給出的是域名;若是使用IP地址訪問,則給出的是ip地址;一定要保持一致哦!一般設置的都是FQDN。假如此處填入www.magedu.com;

7、Email Address []:管理員郵箱地址,這裏填入[email protected]

後面兩項根據實際需要填寫即可

如何自建CA

2、由CA負責簽署證書  如何自建CA

使用openssl可以模擬自建CA,需要準備前提條件

1)爲CA生成一個私鑰

# cd /etc/pki/CA/
# ls
# pwd
# (umask 077; openssl genrsa -out private/cakey.pem 2048)
# ls -l private/cakey.pem

2)生成自簽證書:

# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656

# touch serial index.txt
# echo 01 > serial
# ls -lh

3)簽署證書:

# openssl ca -in myreq.csr -out mycert.crt -days 3656


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章