如何从IBM .kdb文件提取个人证书对应的key.jks和trust.jks
从KDB密钥库提取JKS文件供IBM MQ Explorer配置使用
前置准备
- 持有目标
key.kdb文件,牢记该密钥库的解锁密码 - 本地已安装IBM GSKit组件,可正常启动
ikeyman工具:Windows环境可在GSKit安装目录的bin路径下找到ikeyman.bat启动,Linux/Unix环境直接在终端执行ikeyman命令即可启动
具体操作步骤
1. 打开目标KDB文件
- 启动ikeyman后,点击顶部菜单栏「密钥数据库文件」-「打开」
- 密钥数据库类型选择
CMS(KDB文件对应的原生格式),浏览选中本地的key.kdb文件,确认后输入KDB密码,即可进入库内容浏览页
2. 生成带私钥的key.jks
key.jks作为密钥库,必须存储个人证书对应的私钥,需要先通过PKCS12格式中转,不能直接导出公钥证书生成
- 在KDB浏览页,将「密钥数据库内容」下拉选项切换为「个人证书」,在证书列表中选中你需要提取的目标个人证书,点击「导出/导入」按钮
- 操作类型选择「导出密钥」,导出文件格式选择
PKCS12,设置中转文件保存路径(比如存为temp_personal.p12),给该p12文件设置访问密码(后续操作会用到,请妥善记录),确认后完成导出。此时导出的p12文件已经包含目标个人证书、对应私钥以及完整证书链 - 回到ikeyman主界面,点击「密钥数据库文件」-「新建」,密钥数据库类型选择
JKS,设置保存路径为你需要的key.jks,给该JKS设置访问密码(建议和之前p12密码保持一致,避免后续配置混淆) - 新建完空的key.jks后,再次点击「导出/导入」按钮,操作类型选择「导入密钥」,文件格式选
PKCS12,浏览选中刚才生成的temp_personal.p12,输入p12的密码,按照页面提示将证书内容导入key.jks,导入完成后保存文件即可
3. 生成存储信任证书的trust.jks
- 切回之前打开的key.kdb浏览页,将「密钥数据库内容」下拉选项切换为「签署者证书」,这里存的是KDB中所有受信任的根证书、中间CA证书
- 如果只需要目标个人证书对应的信任链:先切回「个人证书」分类,选中目标证书点击「查看/编辑」-「证书链」,就能看到该证书依赖的所有根、中间证书,记录这些证书名称后回到「签署者证书」分类,逐一选中对应证书,点击「导出」,导出格式选
Base64编码的ASCII数据,存为单独的cer格式文件 - 再次点击ikeyman菜单栏「密钥数据库文件」-「新建」,类型选
JKS,设置保存路径为trust.jks,给该信任库设置访问密码 - 在新建的空trust.jks页面,保持「密钥数据库内容」选中「签署者证书」,点击「添加」按钮,逐一导入刚才导出的所有根、中间证书文件,导入完成后保存文件即可
如果不需要单独筛选证书链,也可以直接把KDB中所有签署者证书批量导出后全部导入trust.jks,不会影响MQ连通性配置
4. MQ Explorer配置验证
- 打开IBM MQ Explorer,找到对应队列管理器连接的SSL/TLS配置项
- 密钥库路径选择生成的
key.jks,输入对应密码;信任库路径选择生成的trust.jks,输入对应密码 - 保存配置后即可发起连接测试SSL连通性
注意事项
- 操作时如果遇到文件读写权限报错,Windows环境请右键以管理员身份运行ikeyman,Linux/Unix环境请确认当前操作用户对KDB文件、JKS导出目录有读写权限
- 导出个人证书环节一定要选择「导出密钥」,如果误选「导出证书」,导出的文件不含私钥,后续生成的key.jks无法用于SSL连接
内容的提问来源于stack exchange,提问作者Pandu
相关产品推荐
相关产品推荐

