openssl命令
配置文件:/etc/pki/tls/openssl.cnf
命令格式:
openssl command [ command_opts ] [ command_args ]
眾多子命令,常用有以下幾項:
1.對稱加密
openssl enc -[e/d] [-a] [-salt] -Cipher -in /PATH/TO/SOMEFILE -out /PATH/TO/SOMEFILE
-e:加密
-d:解密
-a:將數據變為base64編碼
-salt:添加隨機數
-Cipher:加密的算法
示例:
openssl enc -e -a -des3 -in test.txt -out test3.txt //加密test.txt
openssl enc -d -a -des3 -in test3.txt -out test1.txt //解密test3.txt
2.單向加密
openssl dgst -Cipher /PATH/TO/SOMEFILE
示例:
openssl dgst -md5 test.txt MD5(test.txt)= 83c16453b40e59f283211be8fa57d990 //加密結果
3.公鑰加密
①生成私鑰
(umask 077;openssl genrsa -out /PATH/TO/SOMEFILE NUM_BITS(位數,只能是2的倍數))
示例:
(umask 077;openssl genrsa -out test.key 1024)
②提取公鑰
openssl rsa -in /PATH/TO/SOMEFILE -pubout
4.加密用戶密碼
openssl passwd -1 -salt PASSWORD
5.生成隨機數
openssl rand -base64/-hex(16進制數字) NUM(字節數)
如何構建私有CA
1.在服務器主機生成證書
①生成私鑰
(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 1024)
②生成證書
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
③為證書提供所需的目錄和文件
mkdir -pv /etc/pki/CA/{certs,ctl,newcerts} touch /etc/pki/CA/{serial,index.txt} echo 01 > /etc/pki/CA/serial //將序列號寫入此文件
2.在客戶端生成證書簽署請求
①客戶端主機生成私鑰
(umask 077;openssl genrsa -out /root/mykey.key 1024)
②生成證書簽署請求
openssl req -new -key /root/mykey.key -out /root/mykey.csr -days 365
③將證書簽署請求通過可靠的方式發給CA主機
scp /root/mykey.csr root@192.168.1.1:/root
④在CA主機上簽署證書
openssl ca -in /root/mykey.csr -out /root/mykey.crt -days 365
⑤將簽好的證書再次發給請求簽證的客戶端即可
查看證書信息命令:openssl x509 -in /root/mykey.crt -noout -serial -subject
