原文在 http://bbs.pediy.com/archive/index.php?t-97663.html,但是觉得这篇文章非常好,我抄下来作我笔记用 一.解析X509证书 1.从磁盘上的证书文件中读取证书数据 unsigned char* pbX509Data; // 证书数据 unsigned long ulX509DataLen; // 证书数据长度 2.获取CertContext PCCERT_CONTEXT pCertContext = CertCreateCertificateC…
微软的CryptoAPI提供了一套解码X509证书的函数,一个X509证书解码之后,得到一个PCCERT_CONTEXT类型的结构体指针. 通过该结构体,我们就能够获取想要的证书项和属性等. X509证书文件,依据封装的不同,主要有下面三种类型: *.cer:单个X509证书文件,不私钥.能够是二进制和Base64格式.该类型的证书最常见: *.p7b:PKCS#7格式的证书链文件,包括一个或多个X509证书,不含私钥.通常从CA中心申请RSA证书时,返回的签名证书就是p7b格式的证书文件. *…
在之前的文章"通过OpenSSL解码X509证书文件"里.讲述了怎样使用OpenSSL将证书文件解码,得到证书上下文结构体X509的方法. 以下我们接着讲述怎样通过证书上下文结构体X509,获得想要的证书项. 本文先讲述怎样获取证书的基本项,后面还有文章介绍怎样获取证书的扩展项. 以下的代码,都是假定已经通过解码证书文件.得到了证书上下文结构体X509.至于怎样使用OpenSSL解码证书文件.得到证书上下文结构体X509.请阅读之前的文章. 首先,我们看看关于证书结构体X509定义:…
X.509 证书结构描述 常见的X.509证书格式包括: 后缀 作用 cer/crt 用于存放证书,它是2进制形式存放的,不含私钥 pem 以Ascii来表示,可以用于存放证书或私钥. pfx/p12 用于存放个人证书/私钥,他通常包含保护密码,2进制方式. p10 证书请求 p7r CA对证书请求的回复,只用于导入 p7b 以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥. 对于常见的https证书 一般是用crt或者pem来保存, http证书可电器网页前…
一.版本号 结构体CERT_INFO中的字段dwVersion即为证书版本,可以直接通过下面的代码获得: DWORD dwCertVer = m_pCertContext->pCertInfo->dwVersion; 版本值的定义如下: 也就是说,V1的值为0:V3的值为2,目前绝大多是证书都是V3版本. 二.序列号 序列号对应结构体CERT_INFO中的字段SerialNumber,不过该字段为ASN.1编码的大数对象,需要解码才能转化为我们平时看到的十六进制序列号.获取序列号的函数如下:…
首先说明用Java自带的解析x509证书类,是不能解析sm2算法的证书,执行会抛出异常. 用开源库bouncycastle能够解析.详细代码 private byte[] getCSPK(byte[] csCert)     {         InputStream inStream = new ByteArrayInputStream(csCert);         ASN1Sequence seq = null;         ASN1InputStream aIn;        …
利用openssl完成X509证书和PFX证书之间的互转 # OpenSSL的下载与安装: 1.下载地址: 官方网址—— https://www.openssl.org/source/ OpenSSL for Windows —— http://gnuwin32.sourceforge.net/packages/openssl.htm 2.安装:此处已OpenSSL for Windows为例 * 点击openssl-0.9.8h-1-setup.exe 进行安装: * 添加环境变量:path…
## 安装.cer证书并将证书从.cer格式转化为.pem格式 ### 安装.cer证书到本地 打开*运行*窗口 输入MMC.exe, 单击*确定* 在打开的控制台1的窗口中. 选择*文件*, 选择*添加或删除管理单元* 在**可用的管理单元**中, 选择*证书* 单击*添加* 现在, 你的所选管理单元窗口中将会出现*证书* 单击*确定* 选择*Computer account* 单击*下一步* 选择*Local computer: (the computer this consoled is…
1.修改Openssl配置文件CA目录: cat /etc/pki/tls/openssl.cnf dir = /etc/pki/CA 2.生成根证书及私钥: #http://www.haiyun.me cd /etc/pki/CA mkdir private crl certs newcerts #新建证书存放目录 echo '00' > serial #新建serial文件并写入初始序列号00 touch index.txt #新建index.txt空文件 openssl genrsa -o…
RT,在C#中实现,依赖.netFramework2.0 BouncyCastle中提供了PKCS12Store,Pkcs12StoreBuilder,AsymmetricKeyEntry,X509CertificateEntry等接口 其中Pkcs12StoreBuilder建立一个PKCS12Store对象,PKCS12Store对象来产生一个pfx/p12格式的证书,该证书符合PKCS#12规范 PKCS#12的ref,见RSA给出的文档:PKCS #12: Personal Inform…