证书处理
生成证书
C:\Users\Administrator>keytool -genkeypair -keystore e:\tomcat.jks -storepass 123456 -keypass 123456 -alias sofly -keysize 2048 -keyalg RSA -validity 3650 -dname "CN=Sofly, OU=Sofly, O=Sofly, L=Jinan, ST=Shandong, C=CN" -ext san=dns:localhost
注意:以上命令在cmd中执行,keytool是JDK中自带的命令,位置为JAVA_HOME\bin\keytool.exe。ext中的信息一定要设置,否则证书即便安装,也会提示“它的安全证书没有指定主题备用名称”的错误。
参数说明:
- alias 要处理的条目的别名
- keyalg 密钥算法名称
- keysize 密钥位大小
- sigalg 签名算法名称
- dname 唯一判别名,(C=Country国家,ST=State or Province,L=Location or City,O=Organization 组织或企业xxxx,OU=Organization Unit 部门xxxx,CN=Common Name 域名或IP xxxx.com)
- ext X.509 扩展
- validity 有效天数
- keypass 密钥口令
- keystore 密钥库名称
- storepass 密钥库口令
san中也可以写IP信息,例如
san=dns:localhost,ip:192.168.1.1
查看证书
C:\Users\Administrator>keytool -list -v -keystore e:\tomcat.jks -storepass 123456
密钥库类型: JKS
密钥库提供方: SUN
您的密钥库包含 1 个条目
别名: sofly
创建日期: 2021-1-2
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Sofly, OU=Sofly, O=Sofly, L=Jinan, ST=Shandong, C=CN
发布者: CN=Sofly, OU=Sofly, O=Sofly, L=Jinan, ST=Shandong, C=CN
序列号: 248fe0d
有效期开始日期: Sat Jan 02 18:28:50 CST 2021, 截止日期: Tue Dec 31 18:28:50 CST 2030
证书指纹:
MD5: 84:B2:F2:72:DD:EF:0A:A1:BB:6E:43:45:46:A0:9E:5B
SHA1: A3:55:86:23:71:43:DF:27:79:AB:CF:F5:34:C9:76:0F:C9:48:E5:DF
SHA256: 63:83:85:2E:49:48:69:36:5F:81:B4:CB:A5:B4:0D:72:76:D0:EB:16:40:14:13:E5:21:E7:2C:1B:B7:3A:89:98
签名算法名称: SHA256withRSA
版本: 3
扩展:
#1: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
DNSName: localhost
]
#2: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 5E 58 87 69 BE 00 DA 14 59 01 51 67 BA 63 1B CE ^X.i....Y.Qg.c..
0010: 69 7D 9A 8B i...
]
]
*******************************************
*******************************************
证书导出
供客户端安装使用,否则浏览器提示不安全,证书不可信
C:\Users\Administrator>keytool -export -alias sofly -keystore e:\tomcat.jks -storepass 123456 -file e:\tomcat.crt
查看导出的证书信息
C:\Users\Administrator>keytool -printcert -file e:\tomcat.crt
所有者: CN=Sofly, OU=Sofly, O=Sofly, L=Jinan, ST=Shandong, C=CN
发布者: CN=Sofly, OU=Sofly, O=Sofly, L=Jinan, ST=Shandong, C=CN
序列号: 248fe0d
有效期开始日期: Sat Jan 02 18:28:50 CST 2021, 截止日期: Tue Dec 31 18:28:50 CST 2030
证书指纹:
MD5: 84:B2:F2:72:DD:EF:0A:A1:BB:6E:43:45:46:A0:9E:5B
SHA1: A3:55:86:23:71:43:DF:27:79:AB:CF:F5:34:C9:76:0F:C9:48:E5:DF
SHA256: 63:83:85:2E:49:48:69:36:5F:81:B4:CB:A5:B4:0D:72:76:D0:EB:16:40:14:13:E5:21:E7:2C:1B:B7:3A:89:98
签名算法名称: SHA256withRSA
版本: 3
扩展:
#1: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
DNSName: localhost
]
#2: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 5E 58 87 69 BE 00 DA 14 59 01 51 67 BA 63 1B CE ^X.i....Y.Qg.c..
0010: 69 7D 9A 8B i...
]
]
Tomcat设置
修改配置
修改conf/server.xml文件,启用8443端口,可以与8080端口共存
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" keystoreFile="E:\tomcat.jks" keystorePass="123456">
<!--
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
-->
</Connector>
启动并访问
启动Tomcat,浏览器访问 https://localhost:8443,默认会显示不安全
安装证书
双击tomcat.crt文件进行安装:
重新打开浏览器就显示正常了:
证书安装方式二:可以从浏览器中导出证书再安装:
点击“证书”
“详细信息”页面点击“复制到文件”
格式默认即可
选择证书导出路径
最近点击“完成”,证书安装步骤和之前一致。
证书查看
“运行”窗口中输入命令:
certmgr.msc
查看已安装的证书: