d2i_X509 載入der檔案返回為空
阿新 • • 發佈:2019-02-16
在安裝好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檔案編碼哈~