linux下的加密算法有:單向加密,對稱加密,非對稱加密。
1 單向加密(one way hashes)
其特點是:輸出定長,不可逆,雪崩效應
屬於單向加密算法的有:md5 ,sha1
Linux下的/etc/shadow的密碼加密屬於單向加密
2 對稱加密(Symmectric Algotitm)
其特點是:加密處理簡單,速度快,密鑰較短
屬於對稱加密算法的有:DES,3DES,AES,Blowfish
3 非對稱加密(Asymmetric Algotitm)
其特點是:用戶不必記憶大量的提前商定好的密鑰,因爲發送方和接收方事先根本不必商定密鑰,發放方只要可以得到可靠的接收方的公開密鑰就可以給他發送信息了,但算法實現後的效率低,速度慢。
屬於非對稱加密算法有:rsa
openssl
openssl是一個功能豐富且自包含的開源安全工具箱。它提供的主要功能有:SSL協議實現(包括SSLv2、SSLv3和TLSv1)、大量軟算法(對稱/非對稱/摘要)、大數運算、非對稱算法密鑰生成、ASN.1編解碼庫、證書請求(PKCS10)編解碼、數字證書編解碼、CRL編解碼、OCSP協議、數字證書驗證、PKCS7標準實現和PKCS12個人數字證書格式實現等功能。
openssl採用C語言作爲開發語言,這使得它具有優秀的跨平臺性能。openssl支持Linux、UNIX、windows、Mac等平臺。
openssl相關指令
-inform DER|PEM|NET 指定輸入文件的格式
-outform DER|PEM|NET 指定輸出文件格式
-in filename 指定輸入文件名
-out filename 指定輸出文件名
-days arg 指定證書的有效時間長短
-outform DER|PEM|NET 指定輸出文件格式
-in filename 指定輸入文件名
-out filename 指定輸出文件名
-days arg 指定證書的有效時間長短
-x509 把一個證書轉化成csr
-req 缺省的認爲輸入文件是證書文件,說明輸入文件是csr
-req 缺省的認爲輸入文件是證書文件,說明輸入文件是csr
下面以例子說明相關命令用法:
1) 加密
openssl enc -des3 -salt -a - in aaa -out aaa.des3
給文件aaa加密,輸出文件是aaa.des3
2) 解密
openssl enc -d -des3 -salt -a -in aaa.des3 -out bbb 給aaa.des3解密,輸出文件是bbb
1 證書請求
1) openssl genrsa -out my.key 1024(2048或4096)
生成私鑰
2) openssl rsa -in my.key -pubout
從私鑰中提取對應的公鑰
3) openssl req -new -key my.key -out my.csr
生成證書籤發請求
4) scp my.csr 192.168.0.1:/root
發送請求
4)openssl req -new -x509 -key my.key -out my.crt -days 1000
生成自簽證書
5) openssl –in my.crt –noout –text
查看證書
cd /etc/pki/tls/certs/
進入/etc/pki/tls/certs/
make a.key
生成密鑰(需輸入密碼)
make a.pem
生成pem格式證書(包含私鑰和公鑰,一般用於測試使用)
make a.crt
生成crt格式證書
2 建立CA
1) cd /etc/pki/CA
進入該目錄,CA證書必須建立在該目錄中
2) openssl genrsa 2048 > pp.key
生成一個密鑰
3) vim /etc/pki/tls/openssl.cnf
將[ CA_default ]中的dir 選項改爲:/etc/pki/CA
4) mkdir ./newcerts
建立newcerts目錄
5) touch ./{serial ,index.txt}
建立序列號文件和index文檔
6) echo “00” > ./serial
給定一個序列號初始值
7) openssl –x509 –new –key pp.key –out pp.crt –days 1000
生成CA證書
3 給用戶發CA證書
openssl ca –in my.csr –out my.crt –days 1000
給用戶發送CA證書
查看證書