在配置HTTPS監聽時,您可以使用自簽名的CA認證,並且使用該CA認證為用戶端認證簽名。
使用Open SSL產生CA認證
執行以下命令,在
/home
目錄下建立一個ca檔案夾,並在ca檔案夾下建立四個子檔案夾。
sudo mkdir ca
cd ca
sudo mkdir newcerts private conf server
newcerts目錄用於存放CA簽署過的數位憑證。
private目錄用於存放CA的私密金鑰。
conf目錄用於存放一些簡化參數用的設定檔。
server目錄存放伺服器憑證檔案。
在
conf
目錄下建立一個包含以下資訊的openssl.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 = md5 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 private/ca.key
執行結果如下圖所示。
執行以下命令,按照提示輸入所需資訊,然後按下斷行符號鍵產生認證請求csr檔案。
sudo openssl req -new -key private/ca.key -out private/ca.csr
說明Common Name需要輸入負載平衡的網域名稱。
執行以下命令,產生憑證crt檔案。
sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt
執行以下命令,為CA的Key設定起始序號,起始序號可以是四個字元。本樣本中設定為FACE。
sudo echo FACE > serial
執行以下命令,建立CA鍵庫。
sudo touch 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 users
執行以下命令,為用戶端建立一個Key。
sudo openssl genrsa -des3 -out /home/ca/users/client.key 1024
說明建立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 users ls