1. 程式人生 > >d2i_X509 載入der檔案返回為空

d2i_X509 載入der檔案返回為空

在安裝好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檔案編碼哈~