Nginx证书和Tomcat证书能相互转化吗,请看这里
时间:2022-07-24
本文章向大家介绍Nginx证书和Tomcat证书能相互转化吗,请看这里,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/108292030
主流 Web 服务软件证书
一般来说,主流的 Web 服务软件,通常都基于 OpenSSL 和 Java 两种基础密码库。
-
Tomcat
、Weblogic
、JBoss
等Web服务软件,一般使用Java提供的密码库
。通过Java Development Kit (JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的证书文件
。 -
Apache
、Nginx
等Web服务软件,一般使用OpenSSL工具提供的密码库
,生成PEM
、KEY
、CRT
等格式的证书文件。 - IBM的Web服务产品,如
Websphere
、IBM Http Server(IHS)
等,一般使用IBM产品自带的iKeyman工具
,生成KDB
格式的证书文件。 - 微软Windows Server中的
Internet Information Services(IIS)
服务,使用Windows自带的证书库生成PFX
格式的证书文件。
判断证书文件是文本格式还是二进制格式
您可以使用以下方法简单区分带有后缀扩展名的证书文件:
-
.DER
或.CER
文件: 这样的证书文件是二进制格式,只含有证书信息
,不包含私钥。 -
.CRT
文件: 这样的证书文件可以是二进制格式,也可以是文本格式
,一般均为文本格式,功能与.DER
及.CER
证书文件相同。 -
.PEM
文件: 这样的证书文件一般是文本格式
,可以存放证书或私钥,或者两者都包含。.PEM
文件如果只包含私钥,一般用.KEY
文件代替。 -
.PFX
或.P12
文件: 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护。
证书格式转换
上面这张图很直观的说明了各种证书之间转化的流程,只要每一步转化成功其他的转化都是每一步的组合。
JKS 和 PFX 相互转化
PFX格式证书文件和JKS格式证书相互转化可以使用JDK中自带的keytool工具。
将JKS格式转换成PFX格式
keytool -importkeystore -srckeystore server.jks -destkeystore server.pfx -srcstoretype JKS -deststoretype PKCS12
将PFX格式转换成JKS格式
keytool -importkeystore -srckeystore server.pfx -srcstoretype PKCS12 -srcstorepass {pfx-password} -destkeystore server.jks -deststoretype JKS -deststorepass {jks-password} -alias {key-alias}
PFX 和 KEY&CRT 相互转化
PEM/KEY/CRT格式证书和PFX格式互相转换可以使用 OpenSSL工具。
将PFX转换为PEM/KEY/CRT
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
此转换步骤是专用于通过Keytool工具生成私钥和CSR申请证书文件的,并且通过此方法您可以在获取到PEM格式证书公钥的情况下分离私钥。
将PEM/KEY/CRT转换为PFX
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
> 欢迎关注 “后端老鸟” 公众号,接下来会发一系列的专题文章,包括Java、Python、Linux、SpringBoot、SpringCloud、Dubbo、算法、技术团队的管理等,还有各种脑图和学习资料,NFC技术、搜索技术、爬虫技术、推荐技术、音视频互动直播等,只要有时间我就会整理分享,敬请期待,现成的笔记、脑图和学习资料如果大家有需求也可以公众号留言提前获取。由于本人在所有团队中基本都处于攻坚和探路的角色,搞过的东西多,遇到的坑多,解决的问题也很多,欢迎大家加公众号进群一起交流学习。
【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/108292030
- HBase行锁探索
- Spring Cloud构建微服务架构:分布式服务跟踪(抽样收集)【Dalston版】
- HBase client访问ZooKeeper获取root-region-server DeadLock问题(zookeeper.ClientCnxn Unable to get data of zn
- zookeeper学习系列:四、Paxos算法和zookeeper的关系
- 有了phonegap你还android吗?
- zookeeper学习系列:三、利用zookeeper做选举和锁
- Spring Cloud构建微服务架构:分布式服务跟踪(收集原理)【Dalston版】
- zookeeper学习系列:二、api实践
- Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】
- Spring Cloud构建微服务架构:分布式服务跟踪(整合zipkin)【Dalston版】
- 困扰我多年的Connection reset问题
- scala学习笔记
- jersey处理支付宝异步回调通知的问题:java.lang.IllegalArgumentException: Error parsing media type 'application/x-www
- 使用 Java Service Wrapper 启动java后台进程服务
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Julia简易教程——5_函数
- 矩阵操作试题(C++/Python)——矩阵元素逆时针旋转90度
- MapReduce工作笔记——Streaming输入input解压
- MapReduce工作笔记——Streaming输出output压缩
- Linux实用技巧——删除重复行
- python函数——os.path.join路径拼接(pjoin)
- python函数——pickle中的dump以及load
- python函数——Keras分词器Tokenizer
- python函数——序列预处理pad_sequences()序列填充
- MapReduce工作笔记——Streaming多路输出
- nuxt.js项目入门配置篇
- 高级综合工具StratusHLS学习笔记(4)
- 论文笔记&翻译——Enhanced LSTM for Natural Language Inference(ESIM)
- Day 5:用两个栈实现队列
- C++核心准则T.42:使用模板别名简化记法并隐藏实现细节