keytool工具安全证书
目录.png命令格式参考:
创建证书库(keystore)及证书(Certificate)
keytool -genkeypair \
-alias www.mydomain.com \
-keyalg RSA \
–keysize 4096 \
-keypass mypassword \
-sigalg SHA256withRSA \
-dname "cn=www.mydomain.com,ou=xxx,o=xxx,l=Beijing,st=Beijing,c=CN" \
-validity 3650 \
-keystore www.mydomain.com_keystore.jks \
-storetype JKS \
-storepass mypassword
解释:
keytool 是jdk提供的工具,该工具名为”keytool“
-alias www.mydomain.com 此处”www.mydomain.com“为别名,可以是任意字符,只要不提示错误即可。因一个证书库中可以存放多个证书,通过别名标识证书。
-keyalg RSA 此处”RSA“为密钥的算法。可以选择的密钥算法有:RSA、DSA、EC。
–keysize 4096 此处”4096“为密钥长度。keysize与keyalg默认对应关系:
2048 (when using -genkeypair and -keyalg is “RSA”)
1024 (when using -genkeypair and -keyalg is “DSA”)
256 (when using -genkeypair and -keyalg is “EC”)
-keypass mypassword 此处”mypassword “为本条目的密码(私钥的密码)。最好与storepass一致。
-sigalg SHA256withRSA 此处”SHA256withRSA“为签名算法。keyalg=RSA时,签名算法有:MD5withRSA、SHA1withRSA、SHA256withRSA、SHA384withRSA、SHA512withRSA。keyalg=DSA时,签名算法有:SHA1withDSA、SHA256withDSA。此处需要注意:MD5和SHA1的签名算法已经不安全。
-dname “cn=www.mydomain.com,ou=xxx,o=xxx,l=Beijing,st=Beijing,c=CN” 在此填写证书信息。”CN=名字与姓氏/域名,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码”
-validity 3650 此处”3650“为证书有效期天数。
-keystore www.mydomain.com_keystore.jks 此处”www.mydomain.com_keystore.jks“为密钥库的名称。此处也给出绝对路径。默认在当前目录创建证书库。
-storetype JKS 此处”JKS “为证书库类型。可用的证书库类型为:JKS、PKCS12等。jdk9以前,默认为JKS。自jdk9开始,默认为PKCS12。
-storepass mypassword 此处”mypassword “为证书库密码(私钥的密码)。最好与keypass 一致。
上述命令,需要将 -dname 参数替换(尤其时域名要写对)、密码更改即可,其它可保持不变。
一、生成证书(创建证书密码:michaelpw)
按win键+R,弹出运行窗口,输入 cmd 回车,打开命令行窗户,输入如下命令:
keytool -genkey -alias ssodemo -keyalg RSA -keysize 1024 -keypass michaelpwd -validity 365 -keystore H:\keytool\ssodemo.keystore -storepass michaelpwd
命令说明:
keytool 是jdk提供的工具,该工具名为"keytool"
-alias ssodemo 此处"ssodemo"为别名,可以是任意字符,只要不提示错误即可。因一个证书库中可以存放多个证书,通过别名标识证书
-keyalg RSA 此处”RSA“为密钥的算法。可以选择的密钥算法有:RSA、DSA、EC
–keysize 4096 此处”4096“为密钥长度。keysize与keyalg默认对应关系:
2048 (when using -genkeypair and -keyalg is “RSA”)
1024 (when using -genkeypair and -keyalg is “DSA”)
256 (when using -genkeypair and -keyalg is “EC”)
-keypass michaelpwd此处"michaelpwd"为本条目的密码(私钥的密码)。最好与storepass一致。
-validity 365 此处"365"为证书有效期天数。
-keystore H:\keytool\ssodemo.keystore 此处"H:\keytool\ssodemo.keystore"为密钥库的名称。此处也给出绝对路径。默认在当前目录创建证书库
-storetype JKS 此处"JKS"为证书库类型。可用的证书库类型为:JKS、PKCS12等。jdk9以前,默认为JKS。自jdk9开始,默认为PKCS12
-storepass michaelpwd此处"michaelpwd"为证书库密码(私钥的密码)。最好与keypass 一致
-sigalg SHA256withRSA 此处”SHA256withRSA“为签名算法。keyalg=RSA时,签名算法有:MD5withRSA、SHA1withRSA、SHA256withRSA、SHA384withRSA、SHA512withRSA。keyalg=DSA时,签名算法有:SHA1withDSA、SHA256withDSA。此处需要注意:MD5和SHA1的签名算法已经不安全
二、查看证书
缺省情况下,-list 命令打印证书的 MD5 指纹。而如果指定了 -v 选项,将以可读格式打印证书,如果指定了 -rfc 选项,将以可打印的编码格式输出证书。
-v 命令如下:
keytool -list -v -keystore H:\keytool\ssodemo.keystore -storepass michaelpwd
-rfc 命令如下:
keytool -list -rfc -keystore H:\keytool\ssodemo.keystore -storepass michaelpwd
三、证书的导出和查看:
导出证书命令:
keytool -export -alias ssodemo -keystore H:\keytool\ssodemo.keystore -file H:\keytool\ssodemo.crt -storepass michaelpwd
查看导出的证书信息:
keytool -printcert -file H:\keytool\ssodemo.crt
四、客户端导入证书:
keytool -import -keystore %JAVA_HOME%\jre\lib\security\cacerts -file H:\keytool\ssodemo.crt -alias michaelkey
网友评论