Tomcat启动Alias name [null] does not identify a key entry报错分析,涉及从公钥(CER)+私钥(KEY)转换为jks证书的方法

2023-11-19

先说原因是什么,之前百度,谷歌,CSDN上也搜过,搜到最多的答案是server.xml中缺少指定keyAlias=xxx,但是试了以后会发现还是报这个错,只是报错由Alias name [null] does not identify a key entry变成了Alias name [xxx] does not identify a key entry。后来从公司内网看到一个帖子才知道,原来是因为我使用keytool生成的证书有问题,里面只存在公钥,而没有私钥。
我是直接使用下面命令直接将cer证书转为jks证书

keytool -import -alias xxxCert -file xxx.cer -keystore xxx.jks

问题是cer证书只包含证书公钥,而没有私钥,导出的jks证书只包含公钥而没有私钥
使用keytool -list -keystore xxx.jks 会显示证书类型是 trustedCertEntry
在这里插入图片描述
正确做法应该是先使用cer证书和私钥key生成p12证书,再由p12转为jks

openssl pkcs12 -export –out xxx.p12 -in xxx.cer -inkey xxx.key

keytool -importkeystore -srckeystore xxx.p12 -srcstoretype pkcs12 -destkeystore xxx.jks -deststoretype JKS

然后再次查看证书信息显示是PrivateKeyEntry
在这里插入图片描述

PrivateKeyEntry,为私钥,配置在tomcat的server.xml(CAS服务端)
trustedCertEntry,为公钥,配置在jdk(应用服务端)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat启动Alias name [null] does not identify a key entry报错分析,涉及从公钥(CER)+私钥(KEY)转换为jks证书的方法 的相关文章

随机推荐