公钥(Public Key)与私钥(Private Key)是通过加密算法得到的一个密钥对(即一个公钥和一个私钥,也就是非对称加密方式)。公钥可对会话进行加密、验证数字签名,只有使用对应的私钥才能解密会话数据,从而保证数据传输的安全性。公钥是密钥对外公开的部分,私钥则是非公开的部分,由用户自行保管。
通过加密算法得到的密钥对可以保证在世界范围内是唯一的。使用密钥对的时候,如果用其中一个密钥加密一段数据,只能使用密钥对中的另一个密钥才能解密数据。例如:用公钥加密的数据必须用对应的私钥才能解密;如果用私钥进行加密也必须使用对应的公钥才能解密,否则将无法成功解密。
注意:
由于私钥的私密性,建议您自行生成并妥善保管。 私钥丢失可能导致网站信息泄露。 如果私钥丢失,请立即撤销证书并为域名申请新的SSL证书。
数字证书采用公钥体制,即利用一对互相匹配的密钥对进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。
由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。
数字证书是一个经证书授权中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。
我们的SSL证书服务对您私钥的加密算法和长度要求如下:
加密长度至少2,048位
注意:建议使用 2048 位 SHA256 算法。
您可以通过以下两种方式创建您的私钥。
使用OpenSSL工具生成私钥
您可以从OpenSSL官网网站 http://www.openssl.org/source/. 下载最新的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-----
注意:无论您通过哪种方式生成密钥,请您妥善地保管好您的私钥文件。私钥文件一旦丢失或者损坏,您申请的对应的公钥、及数字证书都将无法使用。