生成本地证书

在​​密钥库​​中生成​​本地数字证书​​:需要提供身份、加密算法、有效期等信息;

keytool指令如下,产生的本地证书后缀名为:​​*.keystore​

keytool -genkeypair -keyalg RSA  -keysize 1024 -sigalg SHA256withRSA  -validity 365 -alias hillstone -storepass hillstone -keystore /tmp/hillstone.keystore

参数说明:

  • ​-genkeypair​​: 产生密钥对;
  • ​-keyalg​​: 加密算法,这里的RSA为非对称加密算法;
  • ​-keysize​​: 密钥大小;
  • ​-sigalg​​: 签名算法(私钥加密摘要),如:SHA256withRSA 、MD5withRSA等;
  • ​-validity​​: 证书有效期,这里指定365天;
  • ​-alias​​ :别名
  • ​keystore​​: 指定密钥库的位置;
  • ​-storepass​​: 密码,如果设置了该参数,需要在tomcat的setting设置相应的密码;

证书导出

导出的证书后缀为:​​*.cer​

keytool -exportcert -alias hillstone -keystore /tmp/hillstone.keystore -file /tmp/hillstone.keystore -rfc

参数说明:

  • ​ -exportcert​​: 表示执行的是证书导出操作;
  • ​-file​​:指定证书生成的路径;.
  • ​-keystore​​: 指定密钥库文件,此处为上一条命令所生成的密钥库: /tmp/hillstone.keystore
  • ​-rfc​​: 表示采用可打印Base64格式输出

查看证书内容

keytool -printcert -file /tmp/hillstone.keystore

参数说明:

  • ​-printcert​​: 表示打印证书操作;
  • ​-file​​:指定证书文件路径

导出CSR

如果想得到证书认证机构的认证,需要导出数字证书并签发申请(CSR),经认证机构认证并颁发后,再将认证后的证书导入本地密钥库和信任库;

keytool -certreq -alias hillstone -keystore /tmp/hillstone.keystore  -file /tmp/hillstone.csr -v

参数说明:

  • ​-certreq ​​:表示执行证书签发申请导出操作;
  • ​-keystore​​: 指定需要导出的密钥库文件;
  • ​-file​​:指定导出CSR的文件路径;.
  • ​-v​​:显示操作的详细情况;

导出​​CSR​​后,就可以到VeriSign、GeoTrust、Cacert(免费)等权威机构进行证书认证;

导入数字证书

获得认证机构颁发的数字证书后,需要将其导入信任库;

keytool -importcert -trustcacerts -alias hillstone -file /tmp/hillstone.cer  -keystore /tmp/hillstone.keystore

参数说明:

  • ​-importcert​​: 执行证书导入操作;
  • ​-trustcacerts​​: 将证书导入信任库
  • ​-file​​:指定导入证书的文件路径;.
  • ​ -keystore​​: 指定证书的密钥库文件;

导入证书后,列出keystore中的证书

keytool -list -alias hillstone -keystore  /tmp/hillstone.keystore

链接

【数字签名】数字签名 与 数字证书