OpenSSL命令行工具
數據的加密解密對於Linux系統來說,是至關重要的一個概念,必須懂的對數據進行保護,上次我們詳細說了關於數據加密的種種方式,如公鑰加密,單向加密,密鑰交換等,以及認證機構CA的存在;而OpenSSL命令就是一個可以幫助我們實現公鑰加密,創建私鑰,並根據私鑰創建出公鑰;還可以進行單向加密,生成隨機數,對用戶的密碼進行加密操作;還有一點,就是可以利用OpenSSL自己認證生成私人CA,用戶可以根據OpenSSL命令生成CA請求證書,並將此證書發給有公信力的CA進行認證,產生一個CA證書用來證明用戶;
openssl enc:加密解密命令,可以指定加密算法加密文件;
in filename:加密文件路徑;
out filename:輸出的加密文件路徑;
-ciphername:算法名稱,des3,des,aes,rc4;
-e:加密;
-d:解密;
-a/-base64:純文本格式的加密;
-salt:隨機鹽;
加密實例:
解密實例:
openssl rand:生成隨機數
-hex:生成十六進制的隨機數;
-base64:生成純文本格式的隨機數;
實例:
openssl dgst:單向加密,只能加密,不能解密;
-ciphername:指定單向加密算法,sha,md5等;
實例:
openssl passwd:用戶密碼加密;
openssl passwd -1 -salt (鹽可自寫)
openssl passwd [-1] [-salt string]
實例:
openssl genrsa:公鑰加密,首先創建私鑰;
-out filename:將私鑰放入文件中;
私鑰文件最好是將權限設置為600,這樣其他用戶就無法訪問修改,只有創建這個私鑰文件的用戶 可以訪問修改;
實例:
設置權限:
openssl rsa:根據私鑰文件生成公鑰
一個私鑰只能生成同一種公鑰,除非私鑰文件遭到修改,否則公鑰文件不會產生變化;
-in filename:私鑰文件作為輸入;
-out filename:公鑰文件作為輸出;
實例:
建立私有的CA
建立一個私有的CA文件首先要創建幾個固定的CA配置文件,這些配置文件都是在CA專有的配置文件中有對應的位置的,如果要修改文件名的話,也要將CA專有的配置文件/etc/pki/tls/openssl.cnf中的文件名;
目錄級文件:
/etc/pki/CA/certs
/etc/pki/CA/newcerts
/etc/pki/CA/crl
文本級文件:
/etc/pki/CA/index.txt
/etc/pki/CA/serial
需要在文件serial中輸入01,其余文件如果沒有就創建,放空即可;
CA創建的公鑰私鑰必須放在指定路徑下的文件中;
公鑰:/etc/pki/CA/cacert.pem
私鑰:/etc/pki/private/cakey.pem
創建CA私鑰:
生成自檢的證書
openssl req -new -x509 -key filename -out filename
-new:生成一個新的證書;
-x509:當是CA生成這個自簽證書時使用x509;
-key:CA的私鑰;
-out filename:輸出的公鑰文件即自簽證書;
-days:自簽證書的有效期限,以天為單位;
實例:
CA對外來用戶的證書申請,需要經過嚴格的審核,而在審核過後,CA就可以通過openssl ca來對用戶簽發證書,證書完成後,發送給用戶即可;
用戶的證書申請的生成也同CA的證書生成一樣,都是使用openssl req生成的;
用戶將自己生成的證書,發送給CA
openssl ca -in 用戶證書路徑 -out 生成的用戶證書路徑 -days 有效期限
OpenSSL命令行工具