如何使用Windows IIS颁发的证书生成Netty SocketIO支持SSL所需要的JKS密钥库?

2 篇文章 0 订阅
2 篇文章 0 订阅

大体背景是,同一机器上Windows IIS的Web服务和基于Netty SocketIO的WebSocket服务都需要支持SSL功能。

一开始两个服务是不同团队开发,于是分别各自生成支持SSL所需要的证书和密钥库。IIS这边只需要颁发证书,而Netty SocketIO这边因为是Java开发,需要通过keytool生成密钥库文件和证书。

后来在一起集成部署后,测试发现需要导入两次证书,对用户很不方便。

于是想到既然在一个机器上部署,能不能两个服务共用一个证书。

由于IIS哥们有事请假半天,WebSocket团队这边最初的想法就是直接双击IIS生成的CER证书看看能不能导出keytool兼容的格式,结果发现只能导出DER/Base64编码的X509(.CER)证书,或者PKCS#7(.P7B)证书。因为导出界面禁止了导出PKCS#12(.PFX)证书,折腾半天找不到办法。后来IIS哥们回来告诉了正确的姿势:1)打开IIS管理器;2)左侧点机器名节点(比如,<Hostname> (<Hostname>\Administrator)),双击右边的“服务器证书”进入证书列表界面,选一个证书,点击鼠标右键选“导出”即可以导出PFX格式文件(比如myhostname.pfx)并设置保护密码。

有了PFX文件,那么接下来简单了,用keytool将其转成JKS格式密钥库(比如keystore.jks):

keytool -importkeystore -srckeystore myhostname.pfx -destkeystore keystore.jks -srcstoretype PKCS12 -deststoretype JKS

最后,拷贝keystore.jks给WebSocket指定的密钥库目录即可。

事后测试证明,用户只要安装一个证书,就同时搞定Web服务和WebSocket服务的SSL功能。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值