1. 程式人生 > >Linux建立私有CA和頒發證書及管理

Linux建立私有CA和頒發證書及管理

name 工具 index country 證書管理 text tex 簽名證書 簽名

建立私有CA和頒發證書及管理

1. 建立私有CA

  1. 使用openssl工具實現搭建一個私有CA,打開文件/etc/pki/tls/openssl.cnf ,文件裏的內容是openssl 的配置文件。

    • 三種策略:match匹配、optional可選、supplied提供
    • match:要求申請填寫的信息跟CA設置信息必須一致
    • optional:可有可無,跟CA設置信息可不一致 aphs
    • supplied:必須填寫這項申請信息
  2. 執行以下命令創建私鑰

    (umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
  3. 執行以下命令,生成CA自簽名證書

    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
    • -new:生成新證書簽署請求
    • -x509:專用於CA生成自簽證書
    • -key:生成請求時用到的私鑰文件
    • -days n:證書的有效期限
    • -out /PATH/TO/SOMECERTFILE: 證書的保存路徑
    • windows中需加上cer或者crt後綴才能識別證書
  4. 按照提示填寫證書信息,完成自簽名證書,私有CA搭建完成

    Country Name (2 letter code) [XX]:                        # 填寫國家,2個字符
    State or Province Name (full name) [ ]:                 # 省份
    Locality Name (eg, city) [Default City]:                  # 城市
    Organization Name (eg, company) [Default Company Ltd]:        # 公司名
    Organizational Unit Name (eg, section) [ ]:           # 部門
    Common Name (eg, your name or your server‘s hostname) [ ]:  # 網站
    Email Address [ ]:                                                   # 郵箱

2. 證書頒發

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

    • 給服務器生成私鑰

      (umask 066; openssl genrsa -out /data/test.key 2048)
    • 生成證書申請文件

      openssl req -new -key /data/test.key -out /data/test.csr  #因是私有CA所以國家、省份、公司名稱需和CA一致,如想不一致需進CA服務器/etc/pki/tls/openssl.cnf配置文件進行更改
  2. 將證書請求文件傳輸給CA ,並檢查CA是否缺失以下頒發證書文件,缺失需創建,否則會出現錯誤

    • 證書數據庫文件index.txt

      touch /etc/pki/CA/index.txt
    • 證書序號文件serial

      echo 0f > /etc/pki/CA/serial
  3. CA簽署證書,並將證書頒發給請求者

    openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 100
  4. 同一證書申請文件CA一般不能再次重復簽署頒發,如需再次重復頒發需修改以下文件

    • /etc/pki/CA/index.txt.attr 中的unique_subject = yes 改成unique_subject =no

3. 證書管理

  1. 使用以下命令可以查看證書內容

    openssl x509 -in /PATH/FROM/CERT_FILE -noout -text(證書內容)|issuer(證書頒發者信息)|subject(證書擁有者)|serial(證書系列號)|dates(過期時間)
    openssl ca -status SERIAL(證書名)                  # 查看指定編號的證書狀態
  1. 吊銷證書

    • 在客戶端獲取要吊銷的證書的serial標號

      openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
    • 在CA上,根據客戶提交的serial與subject信息,對比檢驗是否與index.txt文件中的信息一致,然後吊銷證書

      openssl ca -revoke /etc/pki/CA/newcerts/SERIAL(證書編號).pem
    • 指定第一個吊銷證書的編號,註意:第一次更新證書吊銷列表前,才需要執行

      echo 01 > /etc/pki/CA/crlnumber          # 缺失吊銷列表才執行此命令
    • 更新證書吊銷列表

      openssl ca -gencrl -out /etc/pki/CA/crl.pem
    • 查看證書吊銷列表

      openssl crl -in /etc/pki/CA/crl.pem -noout -text     # windows中查看需添加crl後綴

    本次的個人筆記到此結束

Linux建立私有CA和頒發證書及管理