OpenSSL用法詳解
OpenSSL:
組件:libcrypto,libssl
openssl
openssl
眾多子命令,可分為三類:
標準命令
消息摘要命令(dgst子命令)
加密命令(enc子命令)
標準命令:enc,ca,reeq,genrsa…
linux系統上的隨機數生成器
/dev/random:僅從熵池返回隨機數,隨機數用盡,阻塞進程
/dev/urandom:從熵池中返回隨機數,隨機數用盡,會利用軟件生成偽隨機數,不會阻塞進程,但不夠安全
熵池中隨機數的來源: 硬盤IO中斷的時間間隔
使用openssl完成對稱加密
支持的算法:3des、aes、blowfish、towfish
1、 enc子命令:
加密:
]#openssl enc -e -des3 -a -salt -in fstab -out fstab.cipher
解密:
]#openssl enc -d -des3 -a -salt -out fstab.out -in fstab.cipher
使用openssl完成單向加密
2、 dgst子命令
]#md5sum fstab]#openssl dgst -md5 fstab
使用openssl生成用戶加密
生成隨機數:
]#openssl rand -base64 6 #8進制隨機數
]#openssl rand -hex 30 #16進制隨機數
]#openssl passwd -1 -salt $(openssl rand -hex 6)
使用openssl完成公鑰加密
加密解密
支持的算法:RSA、ELGamal
工具:openssl rsautl,gpg
數字簽名
支持的算法:RSA、ELGamal、DSA
工具:openssl rsautl,gpg
密鑰交換
支持的算法:RSA、DH
如何生成密鑰對
如何生成私鑰:
]#(umask 077;openssl genrsa -out /root/mykey.private 2048)
注意:生成的私鑰除了屬主,其他任何用戶都不應該有任何權限
如何從公鑰中提取私鑰
]#openssl rsa -in /root/mykey.private -pubout -out /root/mykey.public
CA
公共權威CA
私有CA
如何自建CA:
openssl
openCA:二次封裝的openssl。
配置文件:/etc/pki/tls/openssl.cnf
如何構建私有CA:
在確認配置為CA的服務器上生成一個自簽證書,并為CA提供所需要的目錄及文件
步驟:
1、生成私鑰:
]#(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
2、生成自簽證書:
]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
-new:生成證書簽署請求
-x509:生成自簽格式證書,專用于創建私有CA
-key:生成請求時用到的私鑰文件路徑
-out:生成的請求文件路徑,如果自簽操作將直接生成簽署過的證書
-days:證書的有效時長,單位是day
3、 為CA提供所需的目錄及文件
]#mkdir -pv /etc/pki/CA/{certs,crl,newcerts} ]#touch /etc/pki/CA/{serial,index.txt} ]#echo 01 > /etc/pki/CA/serial
要用到證書進行安全通信的服務器,需要向CA請求簽署證書
步驟:
1、在用到證書的主機上生成私鑰
~]# mkdir /etc/httpd/ssl~]# cd /etc/httpd/ssl~]# (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
2、生成證書簽署請求
]# openssl req -new -key httpd.key -out httpd.csr -days 365
3、將請求發送到CA服務器上
]# scp httpd.csr root@10.1.154.97:/etc/pki/CA/certs
4、在CA上簽署證書請求
]#openssl ca -in httpd.csr -out httpd.crt -days 365
5、簽署證書之后,將證書拷貝給請求的主機
]#scp httpd.crt root@10.1.154.94:/etc/httpd/ssl
6、查看證書中的信息
]# openssl x509 -in httpd.crt -noout -serial -subject
-serial:查看證書序列號
-subject:查看證書主體信息
7、如何吊銷證書,需要在CA上執行
(1)客戶端獲取要吊銷證書的serial
]# openssl x509 -in httpd.crt -noout -serial -subject
(2)CA吊銷證書
先根據客戶提交的serial和subject信息,對比其與本機數據庫index.txt中存儲的是否一致,一致,則吊銷
]#openssl ca -revoke ./certs/httpd.crt
(3)生成證書吊銷列表
]#echo 01 > /etc/pki/CA/crlnumber
(4)更新證書吊銷列表
]#openssl ca -gencrl -out ./certs/httpd.crt
原創文章,作者:M20-1鐘明波,如若轉載,請注明出處:http://www.www58058.com/48630
總結的很詳細,