[SSL证书转换(一)]关于JKS 转换成 CRT 和 KEY
之前遇到个问题,客户做小程序系统,而小程序前后端交互需要https协议,因此就需要在后端nginx前置服务器配置SSL证书。而客户给的SSL证书,是Java版的jks证书;且客户提供的配置好基本环境的nginx,所需要的证书是crt和key组合形式,因此需要进行证书转换。在证书转换和证书配置过程中,以及后续的实际生产部署的过程中,也遇到了各种坑。[强烈建议,有钱的用户,或者省事的用户,使用云服务器,不要自建服务器,这样可以有免费的ssl证书,可以很简单的配置]
现在简单记录下配置的步骤:
1.拿到jks证书,和证书密码(确认没有密码的,拿刀找你们运维去,或找供应方去)2.先将jks 转换成p12格式,具体命令如下:
keytool -importkeystore -srckeystore C:\cert\server.jks -destkeystore C:\cert\server.p12 -srcstoretype jks -deststoretype pkcs12
输入命令后,会提示你三步骤,需要输入口令(建议输入相同的口令,就是你的jks口令,防止后续证书转换忘记密码)
1).输入目标密钥库口令:
2).再次输入新口令:
3).输入源密钥库口令:
接下来就会提示你如下:
已成功导入别名 ca_root 的条目
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
到了这一步,说明已经OK了,剩下的就是转换成crt证书和key了3.将p12转换成crt证书, 命令如下:
openssl pkcs12 -in C:\cert\server.p12 -nokeys -clcerts -out C:\cert\server.crt
4.将p12生成非加密的key, 命令如下:
openssl pkcs12 -in C:\cert\server.p12 -nocerts -nodes -out C:\cert\server.key
5.将证书配置到nginx以后,重启nginx服务器6.使用ssl漏洞扫描工具,检验证书链的完整性,并获取证书链(防止小程序报: fail ssl hand shake error),推荐地址https://myssl.com/chain_download.html
7.如果证书有漏洞,或不完整,拷贝证书链以后,将服务器上server.crt内容替换,重启nginx(或nginx -s reload)
8.如果还不行,(比如:网页访问,依然不安全) 请清空缓存,刷新ps : 至于以上的命令,比如: keytool、openssl哪里来?你问我?问我为什么不安装下呢?百度啊!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。