JDK 自签证书

知识库运维技巧证书认证Java大约 3 分钟

keytool可视化工具

官方网址为 https://keystore-explorer.org/index.htmlopen in new window

证书格式

  • *.DER或*.CER文件: 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。
  • *.CRT文件: 这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与 .DER及.CER证书文件相同。
  • *.PEM文件: 这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。 .PEM 文件如果只包含私钥,一般用.KEY文件代替。
  • *.PFX或*.P12文件: 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。可以使用记事本直接打开。

密钥库文件格式【Keystore】

keytool 命令

keytool

  • - genkey
  • - alias tomcat (别名)
  • - keypass 123456 (别名密码)
  • - keyalg RSA (生证书的算法名称,RSA是一种非对称加密算法)
  • - keysize 2048 (密钥长度,证书大小)
  • - validity 365 (证书有效期,天单位)
  • - keystore ./tomcat.keystore (指定生成证书的位置和证书名称)
  • - storepass 123456 (获取keystore信息的密码)
  • - storetype PKCS12 (指定密钥仓库类型)
# 生成证书 使用JDK自带的工具keytool (keytool -genkeypair)
keytool -genkey -alias caskeystore -keyalg RSA -keystore thekeystore \
    -storepass 123456 -keypass 123456 \
    -dname "CN=cas.alot.pw, OU=bjtxra,OU=com,S=BJ,C=CN" \
    -ext SAN="dns:localhost,ip:127.0.0.1"
# 查看证书信息
keytool -list -keystore thekeystore
# 导出数字证书
keytool -export -alias caskeystore -storepass 123456 -keystore thekeystore -rfc -file cas.crt
# 将数字证书导入jdk下的jre里,这里导入JDK时需要默认密码 changeit
# windows:
keytool -import -alias caskeystore -keystore %JAVA_HOME%\jre\lib\security\cacerts -file cas.crt -trustcacerts -storepass changeit
# Unix:
sudo keytool -import -alias caskeystore -keystore $JAVA_HOME/jre/lib/security/cacerts -file cas.crt -trustcacerts -storepass changeit

keytool可视化工具

官方网址为 https://keystore-explorer.org/index.htmlopen in new window

keytool 命令

keytool

  • - genkey
  • - alias tomcat (别名)
  • - keypass 123456 (别名密码)
  • - keyalg RSA (生证书的算法名称,RSA是一种非对称加密算法)
  • - keysize 2048 (密钥长度,证书大小)
  • - validity 365 (证书有效期,天单位)
  • - keystore ./tomcat.keystore (指定生成证书的位置和证书名称)
  • - storepass 123456 (获取keystore信息的密码)
  • - storetype PKCS12 (指定密钥仓库类型)

证书格式

  • *.der文件*.cer文件: 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。
  • *.crt文件: 这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与 *.der*.cer证书文件相同。
  • *.pem文件: 这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。 *.pem 文件如果只包含私钥,一般用*.key文件代替。
  • *.pfx文件*.p12文件: 证书交换格式,是二进制格式,同时包含证书和私钥,用于交换传输,且一般有密码保护。

自签名证书:用自己的私钥签发自己的公钥即主体信息生成的证书。 证书签名:对证书固定值进行hash后用密钥对中的私钥对hash值加密