閱讀502 返回首頁    go 英雄聯盟


生成證書__證書管理_用戶指南_負載均衡-阿裏雲

概述

上傳證書前,您需要生成相應的證書,包括服務器證書、CA證書、客戶端證書。

  • 服務器證書:用於用戶瀏覽器檢查服務器發送的證書是否是由自己信賴的中心簽發的,服務器證書可以到阿裏雲雲盾證書服務購買,也可以到其他服務商處購買。服務器證書需要上傳到負載均衡的證書管理係統。

  • 客戶端證書:用於證明客戶端用戶的身份,使得客戶端用戶在與服務器端通信時可以證明其真實身份。

  • CA 證書:服務器要求用戶瀏覽器發送客戶端證書,收到後服務器用 CA 證書驗證客戶端證書,如果沒有通過驗證,拒絕連接。開啟雙向認證功能後,CA 證書和服務器證書都需要上傳到負載均衡的證書管理係統。

操作步驟

  1. 生成服務器證書。您可以從雲盾 證書服務 購買並生成服務器證書,也可以到其他服務商處購買。

  2. 使用 openssl 生成自簽 CA 證書。

    1. 在 /root 目錄下新建 ca 文件夾,在 ca 文件夾下創建 4 個子文件夾:

      1. $ sudo mkdir ca
      2. $ cd ca
      3. $ sudo mkdir newcerts private conf server
      • newcerts 目錄將用於存放 CA 簽署過的數字證書(證書備份目錄);
      • private 目錄用於存放 CA 的私鑰;
      • conf 目錄用於存放一些簡化參數用的配置文件;
      • server 目錄存放服務器證書文件。
    2. 在 conf 目錄下新建 openssl.conf 文件,並將其內容編輯如下:

      conf文件編輯

    3. 運行以下命令生成私鑰 key 文件:

      1. $ cd /root/ca
      2. $ sudo openssl genrsa -out private/ca.key
      3. 輸出
      4. Generating RSA private key, 512 bit long modulus
      5. ..++++++++++++
      6. .++++++++++++
      7. e is 65537 (0x10001)

      private 目錄下有 ca.key 文件生成。openssl 默認生成 512 位的。一般是用 2048 位的。

    4. 運行以下命令,並按命令後的示例提供需要輸入的信息,然後回車,生成證書請求 csr 文件。

      1. $ sudo openssl req -new -key private/ca.key -out private/ca.csr

      信息提供示例:csr信息提供示例

      提示輸入 Common Name 時,如果沒有域名,輸入 xxx.xxx.cn。

      private 目錄下有 ca.csr 文件生成。

    5. 運行以下命令生成憑證 crt 文件:

      1. $ sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt

      控製台輸出如下示例。private 目錄下有 ca.crt 文件生成。

      crt控製台輸出

    6. 運行以下命令為 key 設置起始序列號。可以是任意四個字符。

      1. $ sudo echo FACE > serial
    7. 運行以下命令創建 CA 鍵庫:

      1. $ sudo touch index.txt
    8. 運行以下命令為移除”用戶證書” 創建一個證書撤銷列表。

      1. $ sudo openssl ca -gencrl -out /root/ca/private/ca.crl -crldays 7 -config "/root/ca/conf/openssl.conf"

      輸出為:

      1. Using configuration from /root/ca/conf/openssl.conf

      private 目錄下有 ca.crl 文件生成。

  3. 生成客戶端證書。

    1. 運行以下命令創建存放 key 的目錄 users:
      1. $ sudo mkdir users
    2. 運行以下命令為用戶創建一個 key:

      1. $ sudo openssl genrsa -des3 -out /root/ca/users/client.key 1024

      要求輸入 pass phrase,這個是當前 key 的口令,以防止本密鑰泄漏後被人盜用。兩次輸入同一個密碼,users 目錄下有 client.key 文件生成。

    3. 運行以下命令為 key 創建一個證書簽名請求 csr 文件:

      1. $ sudo openssl req -new -key /root/ca/users/client.key -out /root/ca/users/client.csr

      提示輸入 pass phrase,即 client.key 的口令。將上一步保存的 pass phrase 輸入後並回車。按照以下示例輸入要求提供的信息。A challenge password 是客戶端證書口令(請注意將它和 client.key 的口令區分開,這邊設置密碼為 test),可以與服務器端證書或者根證書口令一致。

      csr 提示輸入示例2

      users 目錄下有 client.csr 文件生成。

    4. 運行以下命令使用您私有的 CA key 為剛才的 key 簽名:

      $ sudo openssl ca -in /root/ca/users/client.csr -cert /root/ca/private/ca.crt -keyfile /root/ca/private/ca.key -out /root/ca/users/client.crt -config "/root/ca/conf/openssl.conf"

      控製台輸出為:使用私有 CA key 簽署 key

      兩次確認提示都輸入 “y”,users 目錄下有 client.crt 文件生成。

    5. 運行以下命令將證書轉換為大多數瀏覽器都能識別的 PKCS12 文件:

      $ sudo openssl pkcs12 -export -clcerts -in /root/ca/users/client.crt -inkey /root/ca/users/client.key -out /root/ca/users/client.p12

      獲得如下提示時,輸入 client.key 的 pass phrase。

      PKCS12_1

      獲得如下提示時,輸入 Export Password,這個是客戶端證書的保護密碼(其作用類似於 步驟 3.iii 保存的口令),在客戶端安裝證書的時候需要輸入這個密碼。

      PKCS12_2

      users 目錄下有 client.p12 文件生成。

最後更新:2016-12-20 13:19:10

  上一篇:go 配置轉發策略__實例管理_用戶指南_負載均衡-阿裏雲
  下一篇:go 轉換證書格式__證書管理_用戶指南_負載均衡-阿裏雲