openssl工具的使用以及创建私有CA
openssl軟件包在安裝之后,主要會生成三段重要內容:加密庫
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ssl相關庫文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? openssl命令行工具
下面就來介紹一下openssl命令行工具的使用:
? ?openssl和yum類似,有著許許多多的子命令:
? ? ? ? ? ? ?
如果要獲得這些子命令的相關man文檔,先使用whatis查看一下確定使用man的格式語法
其中常用的子命令有:
?1.enc:實現對稱加密,解密的命令
使用格式:openssl enc ciphername -a [-e] [-salt] -in filename -out filename?
?例如:openssl enc -des3 -a -in /etc/issue -out /root/issue.des3
-a:使用base64編碼
-e:加密,默認行為,可以省略
ciphername:加密算法名稱
-d:解密(使用格式相同)
?2.dgst:實現提取數據指紋的命令
使用格式:openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-out filename]
?例如:openssl dgst -MD5 /etc/login.defs將該文件的數據指紋使用MD5算法提取出輸出至屏幕
其他實現提取數據指紋的命令:md5sum filename
? ? ? ? ? ? ? ? ? sha1sum filename
? ? ? ? ? ? ? ? ? sha*sum filename
?3.rand:生成隨機數的命令
使用格式:openssl rand [options] num
? 例如:openssl rand -base64 9(隨便寫的數字)生成隨機數
可以使用-out 保存至文件
?4.genrsa:生成私鑰的命令(rsa算法。dsa算法的是gendsa)
使用格式:openssl genrsa [-out filename][-des] [-des3] [numbits]
? 例如:openssl genrsa -out /root/cacert.key 2048
生成一個長度為2048的私鑰保存至指定文件,也可以使用-des等選項加密存放
?5.rsa:從私鑰中提取公鑰的命令
使用格式:openssl rsa -in filename -pubout?
從名為filename的私鑰文件中提取公鑰,可以使用輸出重定向的方式保存,也可以使用選項保存
?6.x509:用于查看證書內容的命令
使用格式:openssl x509 -text -in filename(證書)
?7.req:用于生成證書簽署請求或者自簽證書的命令
使用格式:a.生成自簽證書:
? ? ? ? ?openssl req -new -x509?-key /path/to/private.key -out /path/to/cacert.pem
? ? ? b.生成證書簽署請求
? ? ? ? openssl req -new -key /path/to/private.key -out /path/to/cacert.csr
?8.ca:certificate authority 用于簽署證書請求的命令
使用格式:openssl ca -in /path/to/cacert.csr -out /path/to/cacert.crt
如何在redhat系統上創建私有CA:
?1.創建一對密鑰
?2.生成自簽署證書
在redhat系統上,使用rpm包格式安裝openssl會生成/etc/pki/等一系列目錄以及文件
?/etc/pki/tls/openssl.cnf定義了CA的工作目錄,以及其中應該具有的文件
a.在/etc/pki/CA/private/目錄下生成私鑰,應保存為文件名為cakey.pem的文件(該名稱可通過修改上述配置文件的值改變)
?
如圖,生成2048位的私鑰,保存為指定文件名,注意,應該將權限修改為最小權限
為了避免出錯,我們將/etc/pki/tls/openssl.cnf中的CA相關定義截圖出來:
所以private-key應該命名為cakey.pem。并放在指定目錄下
b.生成自簽署的證書,由配置文件定義,可知應保存在/etc/pki/CA目錄下,命名為cacert.pem
?openssl req -new -x509 -key ./private/cakey.pem -out cacert.pem
在使用req子命令的時候,-x509表示自簽署證書
? ? ? ? ? ? ? ?-key用于指定私鑰
? ? ? ? ? ? ? ?-out用于保存證書
c.根據/etc/pki/tls/openssl.cnf中【CA_default】段的相關定義在/etc/pki/CA目錄下創建相關文件
?
至此,CA(certificate authority)創建完畢,可以為其他人簽署證書請求了
當收到證書請求時,簽署辦法
?openssl ca -in?/path/to/cacert.csr?-out /path/to/cacert.crt
轉載于:https://blog.51cto.com/10764546/1704612
總結
以上是生活随笔為你收集整理的openssl工具的使用以及创建私有CA的全部內容,希望文章能夠幫你解決所遇到的問題。