一.openssl web
openssl 由3部分組成:算法
openssl: 多用途的命令行工具vim
libcrypto: 加密算法庫centos
libssl:加密模塊應用庫,實現了ssl及tls服務器
openssl子命令:ide
1. 對稱加密工具:enc,gpg工具
經常使用算法: 3des,aes,blowfish,twofish加密
openssl enc:spa
加密: openssl enc -e -des3 -a-salt -in anaconda-ks.cfg -out anaconda-ks.cfg.des3 命令行
查看加密後的文件是亂碼
解密:openssl enc -d -des3 -a-salt -in anaconda-ks.cfg.des3 -out anaconda-ks.cfg
2.單向加密
單向加密工具::md5sum, sha1sum,sha224sum,sha256sum…
openssldgst
算法: md5, sha1
openssldgst-md5 [-hex默認]/PATH/SOMEFILE
openssldgst-md5 testfile
md5sum /PATH/TO/SOMEFILE
如: openssl dgst -md5 f1
3. 生成用戶密碼:
passwd命令:man sslpasswd
openssl passwd-1 -salt SALT(最多8位)
openssl passwd-1 –salt centos
4.生成隨機數: man sslrand
openssl rand -hex|-base64 num
num:表示字節數,-hex:每一個字節4位,出現的字符數爲num*2
5.公鑰加密
算法: RSA,ELGamal,DSA
工具: gpg,openssl rsautl
密鑰交換:
公鑰加密,DH
生成密鑰對:
openssl genrsa-out/PATH/TO/PRIVATEKEY.FILE NUM_BITS
(umask 077; openssl genrsa -outkey –des 1024) 注意:-des 爲加密
從私鑰中提取公鑰:
openssl rsa -in PRIVATEKEYFILE –pubout –outPUBLICKEYFILE
二. 建立CA和申請證書
2.1 建立私有CA:
1. 生成私鑰
2. 生成自簽署證書
(1)私鑰用於簽發證書時,向證書添加數字簽名使用
(2)證書:每一個通訊方都導入此證書至"受信任的證書頒發機構"
openssl的配置文件:/etc/pki/tls/openssl.cnf
工做目錄: /etc/pki/CA
2.2 創建私有CA步驟:
1. 建立所須要的文件
touch/etc/pki/CA/index.txt ---頒發證書時寫入內容
echo 01 >/etc/pki/CA/serial ---序列號文件,從1開始
2. 生成私鑰文件:/etc/pki/CA/private/cakey.pem
(umask 077; openssl genrsa -out/etc/pki/CA/private/cakey.pem 2048)
3. 生成自簽證書
openssl req -new -x509 -key/etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
其中:
-new: 生成新的證書籤署請求
-key: 私有文件路徑,用於提取公鑰
-days N : 證書有效時長
-out: 輸出文件保存路徑
-x509: 直接輸出自簽署的證書文件,一般只有構建CA時,才這麼用
2.3. 給客戶端頒發證書
在須要使用證書的主機上生成證書請求
1. 給web服務器生成私鑰
(umask 066; openssl genrsa -out/etc/httpd/ssl/httpd.key 2048) 注意:-out指定的路徑是須要使用證書的服務的路徑
2. 生成證書申請文件
openssl req -new -key/etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr 注意:httpd.csr就是請求文件
3.將證書請求文件傳輸給CA
4. CA簽署證書,並將證書頒發給請求者:
openssl ca -in/root/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365 注意:httpd.crt爲生成的證書
注意:默認國家,省,公司名稱必須和CA一致,若是是公有CA,那麼公司的地址不必定在一個城市,那麼久須要修改配置文件了
vim/etc/pki/tls/openssl.cnf
5.查看生成的證書的信息:
openssl x509 -in/etc/pki/CA/certs/httpd.crt -noout-text|subject|serial|dates
6.吊銷證書
(1)在客戶端獲取要吊銷的證書的serial
openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
(2)在CA上,根據客戶提交的serial與subject信息,對比檢驗是否與index.txt文件中的信息一致
吊銷證書:
openssl ca-revoke /etc/pki/CA/newcerts/01.pem
生成吊銷證書的編號(第一次吊銷一個證書時才須要執行)
echo 01 >/etc/pki/CA/crlnumber
更新證書吊銷列表
openssl ca crl-gencrl -out /etc/pki/CA/crl/ca.crl
查看crl文件
openssl crl-in /etc/pki/CA/crl/ca.crl -noout -text