加密、解密;openssl自建CA

PKI:Public Key Infrastructure公鑰基礎設施
        簽證機構:CA,被公認的提供公鑰簽證的機構
        註冊機構:RA,CA的子機構
        證書吊銷列表:CRL,當某個個人或者公司的服務器的私鑰丟失後,向CA申請公鑰證書吊銷後所有已吊銷的證書列表
        證書存取庫:

    x.509: 定義了證書結構和認證協議標準;
        IP安全、TLS/SSL和S/MIME


    SSL: Secure Socket Layer安全套接層協議
        sslv1, sslv2, sslv3  各種版本

    TLS: Transport Layer Security傳輸層安全性
        tlsv1

        http(80/tcp) --> ssl --> https(443/tcp)

    Linux:gpg, (pgp); openssl

    openssl:
        openssl: 多用途命令行工具,各功能分別使用子命令實現
        libcrypto: 公共加密庫
        libssl: ssl協議的實現

    openssl命令工具:
        # openssl versionwKiom1PdoiyxXDizAAA2Ax54EP4615.jpg來查看我們系統所安裝額openssl包的版本

    對稱加密:
        工具:gpg, openssl enc
        算法:DES, 3DES, AES, Blowfish, Twofish, RC6, idea, CAST5

        # openssl enc -des3 -a -salt -in /tmp/jiami/qq -out /tmp/jiami/qq.cipher

wKioL1Pdo1nzBndSAADzlNHUesY003.jpg加密文件內容
        # openssl enc -d -des3 -a -salt -in /tmp/jiami/qq.cipher -out /tmp/jiami/qq.jiemi

wKioL1Pdo3rCw3CMAADjJWd9jss203.jpg解密文件內容

    單向加密:
        特性:
            One-Way
            Collison-free
        算法:各種密文生成長度
            md5: 128bits
            sha1: 160bits
            sha256
            sha384
            sha512

        工具:md5sum, sha1sum, openssl dgst, chsum

        # openssl dgst -md5 /tmp/jiami/qq

         wKiom1PdonjxWOF5AABQJVoWi5U947.jpg計算文件的特徵碼

        MAC: 消息摘要碼,單向加密的一種延伸類的應用
            應用:用於實現在網絡通信中保證所傳輸的數據的完整性

            機制:
                CBC-MAC
                HMAC:使用md5或sha1算法

    用戶密碼:
       # openssl passwd -1 -salt 12345678

wKiom1PdosCy4XzDAABQqQE8uxs420.jpg    

    生成隨機數:
        openssl rand -hex 8

wKioL1Pdo-2gngB9AAAyBa02JYs803.jpg生成一個8字節的隨機數

    公鑰加密:
        算法:RSA, EIGamal
        工具:gpg, openssl rsautl

    數字簽名:
        算法:RSA, EIGamal, DSA

        DSA: Digital Signature Algorithm
        DSS: Digital Signature Standard


    密鑰交換:IKE
        算法:公鑰加密、DH
            Diffie-Hellman

    生成密鑰: 
        # (umask 077; openssl genrsa  -out /tmp/mima2 2048 )

wKiom1PdoubTOH_RAACNT4gxBAM904.jpg

        提出公鑰: 
      # openssl rsa -in /tmp/mima2 -pubout

      wKioL1PdpBqAka_EAAFwrN5o8_g172.jpg

 

 

 

 

      如何用openssl建立私有CA,以滿足在公司內部建立基於證書的通信。CA之所以存在,只是爲了讓其他任何想和你通信的客戶可以拿到你的真正公鑰,因爲CA本身的權威和公信已可以其他客戶端承認公鑰的真實信

首先我們看一下openssl包生成的文件

# rpm -ql openssl

wKiom1PdoxeQ__5cAAGORBpaTos138.jpg
一、建立CA服務器:首先自己給自己發個證書,以讓其他客戶端驗證你給別人頒發的證書是”官方“可被信任的

    1、生成密鑰

在我們安裝openssl包後,在/etc/kpi/CA/private/裏面放的就是CA的私鑰,配置文件中默認在這裏
    # (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

wKioL1PdpG3DFBeAAAD0qMq76aQ843.jpg

    2、自簽證書
    # openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365

wKioL1PdpInhPZAsAAKKOMAAjnc316.jpg

 

        req: 生成證書籤署請求
            -new: 新請求
            -key /私鑰存放地: 指定私鑰文件
            -out /存放的地方:
            -x509: 生成自簽署證書
            -days n: 有效天數

    3、初始化工作環境
    # touch /etc/pki/CA/{index.txt,serial}
    # echo 01 > /etc/pki/CA/serial

二、節點申請證書:

    (一) 節點生成請求
        1、生成密鑰對兒
         wKiom1Pdo4ugMErKAADCKHJIqok247.jpg

        2、生成證書籤署請求

      wKioL1PdpNmAqND6AAEXjPl9ggs657.jpg

        3、把簽署請求文件發送給CA服務
        # scp


    (二) CA簽署證書
        1、驗正證書中的信息;
        2、簽署證書
        # openssl ca -in /path/to/somefile.csr -out /path/to/somefile.crt -days N

        3、發送給請求者;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章