公開金鑰(Public Key)與私密金鑰(Private Key)是通過密碼編譯演算法得到的一個金鑰組(即一個公開金鑰和一個私密金鑰,也就是非對稱式加密方式)。公開金鑰可對會話進行加密、驗證數位簽章,只有使用對應的私密金鑰才能解密會話資料,從而保證資料轉送的安全性。公開金鑰是金鑰組外公開的部分,私密金鑰則是非公開的部分,由使用者自行保管。
通過密碼編譯演算法得到的金鑰組可以保證在世界範圍內是唯一的。使用金鑰組的時候,如果用其中一個祕密金鑰加密一段資料,只能使用金鑰組中的另一個密鑰才能解密資料。例如:用公開金鑰加密的資料必須用對應的私密金鑰才能解密;如果用私密金鑰進行加密也必須使用對應的公開金鑰才能解密,否則將無法成功解密。
SSL認證的原理
SSL認證採用公開金鑰體制,即利用一對互相匹配的金鑰組進行資料加密和解密。每個使用者自己設定一把特定的、僅為本人所知的私人密鑰(私密金鑰),並用它進行解密和簽名;同時設定一把公用密鑰(公開金鑰)並由本人公開,為一組使用者所共用,用於加密和驗證簽名。
由於密鑰僅為本人所有,可以產生其他人無法產生的加密檔案,也就是形成了數位簽章。
SSL認證是一個經認證授權中心(CA)數位簽章的、包含公開密鑰擁有者資訊以及公開密鑰的檔案。最簡單的認證包含一個公開密鑰、名稱以及認證授權中心的數位簽章。數位憑證還有一個重要的特徵就是只在特定的時間段內有效。
有關私密金鑰原理的更多資訊,請參見阿里雲SSL認證私密金鑰保護原理是怎樣的?
建立私密金鑰
阿里雲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檔案中匯出私密金鑰。關於如何從.keystore檔案中匯出私密金鑰,請參見如何轉換認證格式?。
在匯出的檔案中,以下部分的內容即是您的私密金鑰:
-----BEGIN RSA PRIVATE KEY----- ...... -----END RSA PRIVATE KEY-----
或者
-----BEGIN PRIVATE KEY----- ...... -----END PRIVATE KEY-----
說明無論您通過哪種方式產生密鑰,請您妥善地保管好您的私密金鑰檔案。私密金鑰檔案一旦丟失或者損壞,您申請的公開金鑰及數位憑證將無法使用。