openssl的應用及創建CA

openssl命令行工具:
    衆多的子命令實現各種安全加密功能;

    ]# openssl ?

    顯示的內容有
        Standard commands(標準命令)
            enc, dgst, ca, req, genrsa, rand, rsa, x509, passwd, ...
        Message Digest commands
            ...
        Cipher commands
            ...

    接下來是一些openssl標準命令的使用:

        使用enc命令加密(對稱加密)
            格式:
            openssl enc -ciphername [-in filename] [-out filename] [-e] [-d] [-a/-base64] [-salt]
                -ciphername:加密算法的名稱
                -in filename:openssl要讀取的文件路徑;
                -out filename:加密或解密操作後用於保存結果的文件路徑;
                -e:加密操作
                -d:解密操作
                -a/-base64:用純文本格式進行密文編碼;
                -salt:隨機加鹽;

            示例:
                加密文件:
                    ~]# openssl enc -e -des3 -in anaconda-ks.cfg -a -out anaconda-ks.cfg.encryptfile
                解密文件:
                    ~]# openssl enc -d -des3 -out anaconda-ks.cfg -a -in anaconda-ks.cfg.encryptfile

        使用dgst加密(單向加密)
            示例:
                ~]# openssl dgst -sha1 fstab

        生成隨機數命令:rand
                格式:
                openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num

            示例:
                ~]# openssl rand -base64 8

        生成帶鹽的密碼:passwd
                格式:
                openssl passwd -1 -salt SALT_STRING

            示例:
                ~]# openssl passwd -1 -salt 01234567

        公鑰加密算法:genrsa
                生成rsa加密算法的私鑰;

                格式:
                openssl genrsa [-out filename] [-des] [-des3] [-idea] [-f4] [-3] [numbits]

                出於安全考慮,需要給創建的私鑰賦予只有擁有者才能讀寫其他任何人都不能讀寫的權限;建議使用下列方法生成私鑰:

            示例:
                ~]# (umask 077 ; openssl genrsa -out /tmp/my.key 4096)
                ~]# (umask 077 ; openssl genrsa > /tmp/my.key 4096)

        從以及生成的私鑰文件中抽取公鑰:rsa
                格式:
                openssl rsa [-in filename] [-out filename] [-pubout]
                    -pubout:抽取公鑰
                    -in filename:私鑰文件的路徑
                    -out filename:公鑰文件的路徑

            示例:
                        ~]# openssl rsa -in my.key -out mykey.pub -pubout

利用openssl創建一個屬於自己管理的CA:
    1.創建CA所在主機的私鑰文件;
    2.生成自簽證書;
    3.必須爲CA提供必須要的目錄級文件及文本級文件;
        目錄級文件:
            /etc/pki/CA/certs
            /etc/pki/CA/crl
            /etc/pki/CA/newcerts
        文本級文件:
            /etc/pki/CA/serial:保存證書的序列號,一般初始序列號爲01;
            /etc/pki/CA/index.txt:證書索引;
            /etc/pki/tls/openssl.cnf:配置文件

創建私有CA的步驟:
        1.創建CA的私鑰文件:
            (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

        2.生成自簽證書:
            openssl req命令:
                openssl req [-out filename] [-new] [-key filename] [-x509] [-days n]

        3.完善目錄及文本文件結構:
            touch /etc/pki/CA/index.txt
            echo 01 > /etc/pki/CA/serial

    在CA上查看證書內容:
        openssl x509 -in /etc/pki/CA/cacert.pem -noout -serial -subject

    吊銷證書:必須在CA上執行;
        1.獲取客戶端證書對應的序列號:
            openssl x509 -in /etc/pki/CA/certificate -noout -serial

        2.吊銷證書:
            openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

            注意:上述命令中的"SERIAL"要換成準備吊銷的證書的序列號;

        3.生成吊銷證書的吊銷索引文件;僅需要第一次吊銷證書時執行此操作:
            echo "SERIAL" > /etc/pki/CA/crl/crlnumber

        4.更新證書吊銷列表:
            openssl ca -genctl -out /etc/pki/CA/crl/ca.crl

        5.查看CRL:
            openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章