在安装好OPENSSL之后,就可以通过命令行进行生成证书操作。网上有很多的帖子,但是不乏有错。本人就受其误导,走了弯路。
在此记录,希望其他的小伙伴少走弯路
现象描述:
在使用VS2012进行数字信封开发时,d2i_X509返回值总是为空
解决方法:
经过了解,x509 = d2i_X509(NULL,(const unsigned char**)&cerBuffer,inLen); 中第二个参数要从.CER文件中读取
而这个文件在使用OPENSSL生成时要使用二进制
完整命令:
生成KEY:
>genrsa -des3 -out file.key 1024
生成请求文件:
>req -new -key file.key -out file.csr
自签名:(或CA签名)
>x509 -req -in file.csr -outform DER -out file.cer -signkey file.key -days 3650
CA签名:
>x509 -req -in file.csr -outform DER -out file.cer -signkey file.key -CA CA.cer -CAkey CA.key -CAcreateserial -days 3650
如此生成的file.cer文件即可被d2i_X509正确读取。
碰到类此情况的小伙伴在排除代码错误时,注意看看的你.CER文件编码哈~