Security证书相关文件格式汇总及其格式转换工具介绍

 

前段时间利用数字证书对几种语言(Java、.Net、Php) 调用WS-Security支持的Web Service进行了联调测试,在这个过程中各语言需要的证书格式并不一致,比如说Java我们采用jks,.Net采用pfx和cer,Php则采用pem和cer;本文会对Security证书相关各类文件格式进行一个汇总,并描述各种格式的适用场景;主要分成两类,其一为密钥库文件格式、其二为证书文件格式;

密钥库文件格式【Keystore】

格式扩展名描述特点

JKS

.jks/.ks

【Java Keystore】密钥库的Java实现版本,provider为SUN

密钥库和私钥用不同的密码进行保护

JCEKS

.jce

【JCE Keystore】密钥库的JCE实现版本,provider为SUN JCE

相对于JKS安全级别更高,保护Keystore私钥时采用TripleDES

PKCS12

.p12/.pfx

【PKCS #12】个人信息交换语法标准

1、包含私钥、公钥及其证书
2、密钥库和私钥用相同密码进行保护

BKS

.bks

【Bouncycastle Keystore】密钥库的BC实现版本,provider为BC

基于JCE实现

UBER

.ubr

【Bouncycastle UBER Keystore】密钥库的BC更安全实现版本,provider为BC

 

证书文件格式【Certificate】

格式扩展名描述特点
DER.cer/.crt/.rsa【ASN .1 DER】用于存放证书不含私钥、二进制
PKCS7.p7b/.p7r【PKCS #7】加密信息语法标准1、p7b以树状展示证书链,不含私钥
2、p7r为CA对证书请求签名的回复,只能用于导入
CMS.p7c/.p7m/.p7s【Cryptographic Message Syntax】

1、p7c只保存证书
2、p7m:signature with enveloped data
3、p7s:时间戳签名文件

PEM.pem【Printable Encoded Message】1、该编码格式在RFC1421中定义,其实PEM是【Privacy-Enhanced Mail】的简写,但他也同样广泛运用于密钥管理
2、ASCII文件
3、一般基于base 64编码
PKCS10.p10/.csr【PKCS #10】公钥加密标准【Certificate Signing Request】1、证书签名请求文件
2、ASCII文件
3、CA签名后以p7r文件回复
SPC.pvk/.spc【Software Publishing Certificate】微软公司特有的双证书文件格式,经常用于代码签名,其中
1、pvk用于保存私钥
2、spc用于保存公钥

证书格式转换工具介绍

目前两大开发平台Java和.Net都提供了相关的证书管理工具,比如Java是keytool,参考http://java.sun.com/javase/6/docs/technotes/tools/windows/keytool.html;.Net为makecert,参考http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cptools/html/cpgrfcertificatecreationtoolmakecertexe.asp
但是两者遵循的标准并不是完全兼容,有很多都是基于自己的实现,所以很多的文件格式并不通用,在实际开发使用过程中我们可能需要进行格式转换,在转换过程中,常见格式的转换可以运用keytool或者是windows证书管理导入导出工具;另外一个很有用的工具就是OpenSSL,首页地址为http://www.openssl.org/,各种格式间的转换示例这里就不提供了,大家可以参考http://www.waasai.com/blog/f/80/archives/2008/1412.htmlhttp://blog.tom.com/eagles125/article/1579.html

这里要提一些注意事项和小工具:

1、Java平台keytool对X.509证书的支持并不一致,6.0版本之前生成的证书都是v1版本的,这在很多应用场合可能会导致一些潜在的问题,但是他还是能够管理v3版本的证书的,从6.0开始keytool支持v3版本的证书生成;
2、Eclipse插件SecureX推荐,这是一个国人贡献的证书生成、管理工具,效果还是不错的,而且可以下载源代码查看,对学习Security方面的编程很有帮助,可以从http://securex.sourceforge.net/updatesite更新,目前版本为2.0,不过好像现在作者也没有更新了;
3、KeyTool IUI工具推荐,这是一个老外编写的Keytool GUI工具,功能大致和SecureX类似,他可以以application或者Java Web Start启动查看,但作者并没有提供源代码下载,首页为http://yellowcat1.free.fr/keytool_iui.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值