openssl實現證書申請

一.openssl

      openssl 由3部分組成:

           openssl: 多用途的命令行工具

           libcrypto: 加密算法庫

           libssl:加密模塊應用庫,實現了ssl及tls

      openssl子命令:

      1. 對稱加密工具:enc,gpg

           常用算法: 3des,aes,blowfish,twofish

            openssl enc:

                 加密: openssl enc -e -des3 -a-salt -in anaconda-ks.cfg -out anaconda-ks.cfg.des3       

wKiom1fnvoPy-kOgAABK-tua1sQ380.png

                 查看加密後的文件是亂碼

                 解密:openssl enc -d -des3 -a-salt -in anaconda-ks.cfg.des3 -out anaconda-ks.cfg        wKiom1fnvp-yHM44AAA22oX87SQ340.png

      2.單向加密

           單向加密工具::md5sum, sha1sum,sha224sum,sha256sum…

                          openssldgst

           算法: md5, sha1

           openssldgst-md5 [-hex默認]/PATH/SOMEFILE

           openssldgst-md5 testfile

           md5sum /PATH/TO/SOMEFILE

           如: openssl dgst -md5 f1

           wKioL1fnvquSAdJEAAAdXTRDbQE476.png

      3. 生成用戶密碼:

           passwd命令:man sslpasswd

           openssl passwd-1 -salt SALT(最多8位)

           openssl passwd-1 salt centos

      4.生成隨機數: man sslrand

            openssl rand -hex|-base64 num

                 num:表示字節數,-hex:每個字節4位,出現的字符數爲num*2

           wKioL1fnvrWy7N88AAAUPjQrUmE604.png

      5.公鑰加密

           算法: RSA,ELGamal,DSA

           工具: gpg,openssl rsautl

           密鑰交換:

                 公鑰加密,DH

           生成密鑰對:

                 openssl genrsa-out/PATH/TO/PRIVATEKEY.FILE NUM_BITS

                 (umask 077; openssl genrsa -outkey des 1024)      注意:-des 爲加密               wKiom1fnvsKCmjR4AABaPm_7PbM370.png          

           從私鑰中提取公鑰:

                 openssl rsa -in PRIVATEKEYFILE pubout outPUBLICKEYFILE                    wKiom1fnvsySCsaWAAAYr3bDhQY624.png

 

二. 創建CA和申請證書

      2.1 創建私有CA:

           1. 生成私鑰

           2. 生成自簽署證書

                 (1)私鑰用於簽發證書時,向證書添加數字簽名使用

                 (2)證書:每個通信方都導入此證書至"受信任的證書頒發機構"

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

           工作目錄: /etc/pki/CA

      2.2 建立私有CA步驟:

           1. 創建所需要的文件

                 touch/etc/pki/CA/index.txt  ---頒發證書時寫入內容

                 echo 01 >/etc/pki/CA/serial  ---序列號文件,從1開始

           2. 生成私鑰文件:/etc/pki/CA/private/cakey.pem

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

           3. 生成自簽證書

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

wKioL1fnvt3iK2eIAAA831Jn81U709.png

           其中:

                 -new: 生成新的證書籤署請求

                 -key: 私有文件路徑,用於提取公鑰

                 -days N : 證書有效時長

                 -out: 輸出文件保存路徑

                 -x509: 直接輸出自簽署的證書文件,通常只有構建CA時,才這麼用

      2.3. 給客戶端頒發證書

           在需要使用證書的主機上生成證書請求

                 1. 給web服務器生成私鑰

                 (umask 066; openssl genrsa -out/etc/httpd/ssl/httpd.key 2048)    注意:-out指定的路徑是需要使用證書的服務的路徑

                 2. 生成證書申請文件

                 openssl req -new -key/etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr    注意:httpd.csr就是請求文件

                 3.將證書請求文件傳輸給CA

                 4. CA簽署證書,並將證書頒發給請求者:

                      openssl ca -in/root/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365      注意:httpd.crt爲生成的證書

                      注意:默認國家,省,公司名稱必須和CA一致,如果是公有CA,那麼公司的地址不一定在一個城市,那麼久需要修改配置文件了

                            vim/etc/pki/tls/openssl.cnf

                            wKiom1fnvvuAmCzrAAAnTsQCBLo317.png

                 5.查看生成的證書的信息:

                      openssl x509 -in/etc/pki/CA/certs/httpd.crt  -noout-text|subject|serial|dates

                 6.吊銷證書

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

                            openssl  x509 -in /PATH/FROM/CERT_FILE  -noout -serial -subject

                      (2)在CA上,根據客戶提交的serial與subject信息,對比檢驗是否與index.txt文件中的信息一致

                            吊銷證書:

                                  openssl ca-revoke /etc/pki/CA/newcerts/01.pem                           

wKioL1fnvwzSjR5pAAAi5ZJ3s-c047.png

                            生成吊銷證書的編號(第一次吊銷一個證書時才需要執行)

                                  echo 01 >/etc/pki/CA/crlnumber

                            更新證書吊銷列表

                                  openssl ca crl-gencrl -out /etc/pki/CA/crl/ca.crl

                            查看crl文件

                                  openssl crl-in /etc/pki/CA/crl/ca.crl  -noout -text                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    


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