JDK 自签证书
大约 3 分钟
keytool可视化工具
证书格式
*.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可视化工具
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值加密