1. 程式人生 > >OpenSSL命令行工具

OpenSSL命令行工具

應用 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命令行工具