天天看點

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       

openssl實作證書申請

                 檢視加密後的檔案是亂碼

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

openssl實作證書申請

      2.單向加密

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

                          openssldgst

           算法: md5, sha1

           openssldgst-md5 [-hex預設]/PATH/SOMEFILE

           openssldgst-md5 testfile

           md5sum /PATH/TO/SOMEFILE

           如: openssl dgst -md5 f1

openssl實作證書申請

      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

openssl實作證書申請

      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 為加密               

openssl實作證書申請

           從私鑰中提取公鑰:

                 openssl rsa -in PRIVATEKEYFILE –pubout –outPUBLICKEYFILE                    

openssl實作證書申請

二. 建立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         

openssl實作證書申請

           其中:

                 -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

openssl實作證書申請

                 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                           

openssl實作證書申請

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

                                  echo 01 >/etc/pki/CA/crlnumber

                            更新證書吊銷清單

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

繼續閱讀