OpenSSL用法詳解

OpenSSL用法詳解

OpenSSL

       組件:libcrypto,libssl

                openssl

       openssl

              眾多子命令,可分為三類:

              標準命令

              消息摘要命令(dgst子命令)

              加密命令(enc子命令)           

       標準命令:enc,ca,reeq,genrsa…

linux系統上的隨機數生成器

       /dev/random:僅從熵池返回隨機數,隨機數用盡,阻塞進程

       /dev/urandom:從熵池中返回隨機數,隨機數用盡,會利用軟件生成偽隨機數,不會阻塞進程,但不夠安全

       熵池中隨機數的來源: 硬盤IO中斷的時間間隔

使用openssl完成對稱加密

       支持的算法:3des、aes、blowfish、towfish

      1、 enc子命令:

              加密:

]#openssl enc -e -des3 -a -salt -in fstab -out fstab.cipher

              解密:

]#openssl enc -d -des3 -a -salt -out fstab.out -in fstab.cipher

使用openssl完成單向加密

      2、 dgst子命令             

]#md5sum fstab]#openssl dgst -md5 fstab

blob.png

使用openssl生成用戶加密

       生成隨機數:

]#openssl rand -base64 6      #8進制隨機數
]#openssl rand -hex 30        #16進制隨機數
]#openssl passwd -1 -salt $(openssl rand -hex 6)

blob.png

使用openssl完成公鑰加密

       加密解密

              支持的算法:RSA、ELGamal

              工具:openssl rsautl,gpg

       數字簽名

              支持的算法:RSA、ELGamal、DSA

              工具:openssl rsautl,gpg

       密鑰交換

              支持的算法:RSA、DH

       如何生成密鑰對

              如何生成私鑰:                   

]#(umask 077;openssl genrsa -out /root/mykey.private 2048)

blob.png

        注意:生成的私鑰除了屬主,其他任何用戶都不應該有任何權限

        如何從公鑰中提取私鑰                    

]#openssl rsa -in /root/mykey.private -pubout -out /root/mykey.public

blob.png

CA

       公共權威CA

       私有CA

如何自建CA:

       openssl

       openCA:二次封裝的openssl。

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

blob.png

如何構建私有CA:

在確認配置為CA的服務器上生成一個自簽證書,并為CA提供所需要的目錄及文件

        步驟:

              1、生成私鑰:                    

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

              2、生成自簽證書:          

]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

              -new:生成證書簽署請求

              -x509:生成自簽格式證書,專用于創建私有CA

              -key:生成請求時用到的私鑰文件路徑

              -out:生成的請求文件路徑,如果自簽操作將直接生成簽署過的證書

              -days:證書的有效時長,單位是day

 blob.png

             3、 為CA提供所需的目錄及文件

 ]#mkdir -pv /etc/pki/CA/{certs,crl,newcerts} ]#touch /etc/pki/CA/{serial,index.txt} ]#echo 01 > /etc/pki/CA/serial

blob.png

要用到證書進行安全通信的服務器,需要向CA請求簽署證書

步驟:

       1、在用到證書的主機上生成私鑰            

~]# mkdir /etc/httpd/ssl~]# cd /etc/httpd/ssl~]# (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

blob.png

       2、生成證書簽署請求       

]# openssl req -new -key httpd.key -out httpd.csr -days 365

blob.png

       3、將請求發送到CA服務器上            

]# scp httpd.csr root@10.1.154.97:/etc/pki/CA/certs

       4、在CA上簽署證書請求            

]#openssl ca -in httpd.csr -out httpd.crt -days 365

blob.png

       5、簽署證書之后,將證書拷貝給請求的主機             

]#scp httpd.crt root@10.1.154.94:/etc/httpd/ssl

blob.png

       6、查看證書中的信息              

]# openssl x509 -in httpd.crt -noout -serial -subject

              -serial:查看證書序列號

              -subject:查看證書主體信息

blob.png

       7、如何吊銷證書,需要在CA上執行

              (1)客戶端獲取要吊銷證書的serial            

]# openssl x509 -in httpd.crt -noout -serial -subject

              (2)CA吊銷證書

              先根據客戶提交的serial和subject信息,對比其與本機數據庫index.txt中存儲的是否一致,一致,則吊銷           

]#openssl ca -revoke ./certs/httpd.crt

blob.png

              (3)生成證書吊銷列表            

]#echo 01 > /etc/pki/CA/crlnumber

              (4)更新證書吊銷列表             

]#openssl ca -gencrl -out ./certs/httpd.crt

 blob.png

原創文章,作者:M20-1鐘明波,如若轉載,請注明出處:http://www.www58058.com/48630

(4)
M20-1鐘明波M20-1鐘明波
上一篇 2016-09-23 09:06
下一篇 2016-09-23 09:44

相關推薦

  • linux第一天,不正經的感想

    課是正經課,人正不正經就不知道了

    2018-03-26
  • 關于 shell腳本編程第一篇

                                                   shell腳本編程(1) …

    系統運維 2016-08-15
  • 用戶、組、權限 等相關命令

    用戶、組、文件權限屬性 1、用戶和組的配置文件 在Linux中用戶和組的配置文件主要為: /etc/passwd :存放用戶及其屬性的信息(名稱、GID、UID) /etc/group :存放組及其屬性信息 /etc/shadow :存放用戶密碼及其相關屬性 /etc/gshadow :存放組密碼及其相關屬性 (1)、/etc/passwd的格式 root:…

    Linux干貨 2017-07-29
  • 內核編譯安裝 (用NTFS模塊)

    內核編譯安裝 (用NTFS模塊) 1 rz 下載的 的內核最新文件 在這 https://www.kernel.org/ 2 tar xvf linux-4.12.10.tar.xz 解壓文件 內核文件一般都放在 /usr/src/ 3 cd linux-4.12.10/ 4 [root@god linux-4.12.10]#cp /boot/config-…

    2017-09-04
  • ansible實踐

    本偏文章以上圖拓撲部署 首先準備了6臺為centos7的主機(確保selinux和iptables不會成阻礙!關閉他們) 我們先來安裝ansible吧! 配置EPEL源過后使用 yum -y install ansible  ?。。。。。。。。。。。。。。。。。。。。。。。。。。。。?! 出師不利啊,安裝ansible就失敗了。?。。。。?! 看了一下…

    Linux干貨 2017-01-27
  • linux磁盤管理之LVM

                        LVM  LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁…

    Linux干貨 2016-09-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-23 11:53

    總結的很詳細,

欧美性久久久久