在配置HTTPS監聽時,您可以使用自簽名的CA認證,並使用該CA認證簽發用戶端認證。
使用Open SSL產生CA認證
登入到任意一台安裝有OpenSSL工具的Linux機器。本文以Alibaba Cloud Linux 3為例,OpenSSL版本為1.1.1k。
執行以下命令,在
/home目錄下建立一個ca目錄,並在ca目錄下建立四個子目錄。sudo mkdir /home/ca cd /home/ca sudo mkdir newcerts private conf servernewcerts目錄用於存放CA簽署過的數位憑證。
private目錄用於存放CA的私密金鑰。
conf目錄用於存放一些簡化參數用的設定檔。
server目錄存放伺服器憑證檔案。
在
conf目錄下建立一個openssl.conf檔案。vim /home/ca/conf/openssl.confopenssl.conf檔案包含下列資訊。
[ ca ] default_ca = foo [ foo ] dir = /home/ca database = /home/ca/index.txt new_certs_dir = /home/ca/newcerts certificate = /home/ca/private/ca.crt serial = /home/ca/serial private_key = /home/ca/private/ca.key RANDFILE = /home/ca/private/.rand default_days = 365 default_crl_days= 30 default_md = sha256 unique_subject = no policy = policy_any [ policy_any ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = match localityName = optional commonName = supplied emailAddress = optional執行以下命令,產生私密金鑰Key檔案。
cd /home/ca sudo openssl genrsa -out /home/ca/private/ca.key執行結果如下圖所示。

執行以下命令,按照提示輸入所需資訊,然後按下斷行符號鍵產生認證請求csr檔案。
sudo openssl req -new -key /home/ca/private/ca.key -out /home/ca/private/ca.csr
說明Common Name需要輸入負載平衡的網域名稱。
執行以下命令,產生憑證crt檔案。
sudo openssl x509 -req -days 365 -in /home/ca/private/ca.csr -signkey /home/ca/private/ca.key -out /home/ca/private/ca.crt重要ca.crt檔案為用於上傳到CLB的CA認證。
執行以下命令,為CA的Key設定起始序號,起始序號可以是四個字元。本樣本中設定為FACE。
echo FACE | sudo tee /home/ca/serial執行以下命令,建立CA鍵庫。
sudo touch /home/ca/index.txt執行以下命令,為移除用戶端認證建立一個認證撤銷列表。
sudo openssl ca -gencrl -out /home/ca/private/ca.crl -crldays 7 -config "/home/ca/conf/openssl.conf"輸出為:
Using configuration from /home/ca/conf/openssl.conf
為用戶端認證簽名
執行以下命令,在
ca目錄內建立一個存放用戶端Key的目錄users。sudo mkdir /home/ca/users執行以下命令,為用戶端建立一個Key。
sudo openssl genrsa -des3 -out /home/ca/users/client.key 2048說明建立Key時要求輸入pass phrase,這個是當前Key的口令,以防止本密鑰泄漏後被人盜用。兩次輸入同一個密碼。
執行以下命令,為用戶端Key建立一個認證簽章要求csr檔案。
sudo openssl req -new -key /home/ca/users/client.key -out /home/ca/users/client.csr輸入該命令後,根據提示輸入STEP 2中輸入的pass phrase,然後根據提示輸入對應的資訊。
說明A challenge password是用戶端認證口令,注意區分它和client.key。
執行以下命令,使用CA認證的Key為用戶端Key簽名。
sudo openssl ca -in /home/ca/users/client.csr -cert /home/ca/private/ca.crt -keyfile /home/ca/private/ca.key -out /home/ca/users/client.crt -config "/home/ca/conf/openssl.conf"當出現確認是否簽名的提示時,兩次都輸入y。

執行以下命令,轉換認證為PKCS12檔案。
sudo openssl pkcs12 -export -clcerts -in /home/ca/users/client.crt -inkey /home/ca/users/client.key -out /home/ca/users/client.p12按照提示輸入用戶端client.key的pass phrase。再輸入用於匯出認證的密碼。這個是用戶端認證的保護密碼,在安裝用戶端認證時需要輸入這個密碼。
執行以下命令,查看產生的用戶端認證。
cd /home/ca/users ls