1. 程式人生 > >linux中openssl工具

linux中openssl工具

openssl

openssl命令行工具:

眾多的子命令實現各種安全加密功能;


標準命令:

enc,dgst,ca,req,genrsa,rand,rsa,x509,passwd,...


對稱加密命令:enc

提供對稱加密算法,以進行數據或文件的手動加密;


openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt]

-ciphername:加密算法的名稱

-in filename:opensll要讀取的文件路徑;

-out filename:加密或解密操作後用於保存結果的文件路徑;

-e:加密操作

-d:解密操作

-a/-base64:用純文本格式進行密文編碼;

-salt:隨機加鹽


示例:

加密文件:

~]# openssl enc -e -des3 -in anaconda-ks.cfg -a -out anconda-ks.cfg.encryptfile

解密文件:

~]# openssl enc -d -des3 -in anconda-ks.cfg.encryptfile -a -out anaconda-ks.cfg.plaintext



單向加密:dgst

~]# openssl dgst -sha1 /etc/fstab


生成隨機數命令:rand

openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num


示例:

~]# openssl rand -base64 8


生成帶鹽的密碼:passwd

openssl passwd -1 -salt SALT_STRING


示例:

~]# openssl passwd -1 -salt 01234567


公鑰加密算法:genrsa

生成rsa算法的私鑰:


openssl genrsa [-out filename] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]


處於安全考慮,需要給創建的私鑰賦予只有擁有者才能讀寫其他任何人都不能讀寫的權限;建議使用下列方法生成私鑰:

~]# (umask 077 ; openssl genrsa -out /tmp/my.key 4096)

~]# (umask 077 ; openssl genrsa > /tmp/my.key 4096)


從已經生成的私鑰文件中讀取公鑰:rsa


openssl rsa [-in filename] [-out filename] [-pubout]

-pubout:抽取公鑰

-in filename:私鑰文件的路徑

-out filename:公鑰文件的路徑

~]# openssl rsa -in my.key -out my.key.pub -pubout


利用openssl建立私有CA:

1.創建CA所在主機的私有文件;

2.生成自簽證書;

3.必須為CA提供必要的目錄級文件及文本級文件;

目錄級文件:

/etc/pki/CA/certs

/etc/pki/CA/crl

/etc/pki/CA/newcerts

文本級文件:

/etc/pki/CA/serial:保存證書序列號,一般初始序列號啊為01;

/etc/pki/CA/index.txt:證書索引;

/etc/pki/tls/openssl.cnf:配置文件;


創建私有CA的步驟:

1.創建CA的私鑰文件:

(umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

2.生成自簽證書:

openssl req

openssl req [-out filename] [-new] [-x509] [-days n] [-key filename]


3.完善目錄及文本文件結構:

touch /etc/pki/CA/index.txt

echo 01 > /etc/pki/CA/serial


在CA上查看證書的內容:

openssl x509 -in /etc/pki/CA/cacert.perm -noout -serial -subject


吊銷證書:必須在CA上執行:

1.獲取客戶端證書對應的序列號

openssl x509 -in /etc/pki/CA/certificate -noout -serial


2.吊銷證書:

openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem


註意:上述命令中的"SERIAL"要換成準備吊銷的證書的序列號;


3.生成吊銷證書的吊銷索引文件;僅需要第一次吊銷證書時執行此操作;

echo "SERIAL" > /etc/pki/CA/crl/crlnumber


4.更新證書吊銷列表:

openssl ca -genctl -out /etc/pki/CA/crl/ca.crl


5.查看CRL:

openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text


linux中openssl工具