公鑰(Public Key)與私鑰(Private Key)是通過加密算法得到的一個密鑰對(即一個公鑰和一個私鑰,也就是非對稱加密方式)。公鑰可對會話進行加密、驗證數字簽名,只有使用對應的私鑰才能解密會話數據,從而保證數據傳輸的安全性。公鑰是密鑰對外公開的部分,私鑰則是非公開的部分,由用戶自行保管。
通過加密算法得到的密鑰對可以保證在世界范圍內是唯一的。使用密鑰對的時候,如果用其中一個密鑰加密一段數據,只能使用密鑰對中的另一個密鑰才能解密數據。例如:用公鑰加密的數據必須用對應的私鑰才能解密;如果用私鑰進行加密也必須使用對應的公鑰才能解密,否則將無法成功解密。
SSL證書的原理
SSL證書采用公鑰體制,即利用一對互相匹配的密鑰對進行數據加密和解密。每個用戶自己設定一把特定的、僅為本人所知的私有密鑰(私鑰),并用它進行解密和簽名;同時設定一把公共密鑰(公鑰)并由本人公開,為一組用戶所共享,用于加密和驗證簽名。
由于密鑰僅為本人所有,可以產生其他人無法生成的加密文件,也就是形成了數字簽名。
SSL證書是一個經證書授權中心(CA)數字簽名的、包含公開密鑰擁有者信息以及公開密鑰的文件。最簡單的證書包含一個公開密鑰、名稱以及證書授權中心的數字簽名。數字證書還有一個重要的特征就是只在特定的時間段內有效。
創建私鑰
阿里云SSL證書服務對您私鑰的加密算法和長度要求如下。
-
加密算法使用RSA算法
-
加密長度至少2,048位
您可以通過以下兩種方式創建您的私鑰。
-
使用OpenSSL工具生成私鑰
-
您可以從?OpenSSL官網網站?下載最新的OpenSSL工具安裝包。
說明
OpenSSL版本必須是1.0.1g或以上版本。
-
安裝OpenSSL工具后,在命令行模式下運行
openssl genrsa -out myprivate.pem 2048
生成您的私鑰文件。生成后的私鑰文件名稱為myprivate.pem,加密長度為2,048。
-
-
使用Keytool工具生成并導出私鑰
Keytool工具是JDK中自帶的密鑰管理工具,可以制作Keystore(jks)格式的證書文件,您可以從?官方地址?下載JDK工具包來獲取Keytool工具。
由于使用Keytool工具制作的公鑰和私鑰默認是不可以導出的,您需要從已經創建好的.keystore文件中導出私鑰。
在導出的文件中,以下部分的內容即是您的私鑰:
-----BEGIN RSA PRIVATE KEY----- ...... -----END RSA PRIVATE KEY-----
或者
-----BEGIN PRIVATE KEY----- ...... -----END PRIVATE KEY-----
說明
無論您通過哪種方式生成密鑰,請您妥善地保管好您的私鑰文件。私鑰文件一旦丟失或者損壞,您申請的公鑰及數字證書將無法使用。