在配置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