現有的證書大都採用x_509規範, 主要同以下資訊組成:版本號、證書序列號、有效期、擁有者資訊、頒發者資訊、其他擴充套件資訊、擁有者的公鑰、ca對以上資訊的簽名。
openssl實現了對x_509數字證書的所有操作。包括簽發數字證書、解析和驗證證書等。
涉及證書操作的主要函式有驗證證書(驗證證書鏈、有效期、crl)、解析證書(獲得證書的版本、序列號、頒發者資訊、主題資訊、公鑰、有效期等)
主要函式
1、der編碼轉換為內部結構函式
x509 *d2i_x509(x509 **cert, unsigned char **d, int len);
函式功能:把乙個der編碼的證書資料轉化成openssl內部結構體。
引數:cert:[out]x509結構體。 d:[in]der編碼的證書資料指標位址。len[in]證書資料長度;
返回值:編碼後的x509結構體資料
2、獲得證書版本函式x509_get_version
#define x509_get_version(x) asn1_integer_get((x)->cert_info->version)
引數:x:[in]x509*結構體
資料結構
。返回值:證書版本,資料型別「long」
3、獲得證書序列號函式
asn1_integer *x509_get_serialnumber(x509 *x);
返回值:證書序列號,資料型別「asn1_integer」.
4、獲得證書頒發者資訊函式
x509_name *x509_get_issuer_name(x509 *a);
注*:x509_name結構體包括多個x509_name_entry結構體。x509_name_entry儲存了頒發者的資訊,這些資訊包括物件和值(object 和value)。物件的型別包括國家、通用名、單位、組織、地區、郵件等。
5、獲得證書擁有者資訊函式
x509_name *x509_get_subject_name(x509 *a);
6、獲得證書有效期的起始日期函式
#define x509_get_notbefore(x) ((x)->cert_info->validity->notbefore)
返回值: 證書起始有效期,資料型別「asn1_time」
7、獲得證書有效期的終止日期函式
#define x509_get_notafter(x) ((x)->cert_info->validity->notafter)
8、獲得證書公鑰函式
evp_pkey *x509_get_pubkey(x509 *x);
9、建立和釋放證書儲存區
x509_store *x509_store_new(void);
void x509_store_free(x509_store *v);
函式功能:建立和釋放乙個x509_store結構體, 主要用於驗證證書。
10、向證書儲存區新增證書
int x509_store_add_cert(x509_store *ctx, x509 *x);
函式功能:新增信任的根證書到證書儲存區。
返回值:1成功,否則為0
11、向證書儲存區新增證書吊銷列表
int x509_store_add_crl(x509_store *ctx, x509_crl *x);
功能:新增crl到證書儲存區。
引數:x:[in]證書吊銷列表。ctx:[in]證書儲存區。
返回值:1成功, 否則為0。
12、建立證書儲存區上下文環境函式
x509_store_ctx *x509_store_ctx_new(void);
返回值:操作成功返回證書儲存區上下文環境指標,否則返回null。
13、釋放證書儲存區上下文環境
void x509_store_ctx_free(x509_store_ctx *ctx);
14、初始化證書儲存區上下文環境函式
int x509_store_ctx_init(x509_store_ctx *ctx, x509_store *store, x509 *x509, stack_of(x509) *chain);
函式功能:初始化證書儲存區上下文環境,設定根證書、待驗證的證書、ca證書鏈。
15、驗證證書函式
int x509_verify_cert(x509_store_ctx *ctx);
返回值:驗證成功返回1,否則返回0
證書常用操作歸納 粗略版
1.如何生成生成公私鑰對和證書 pem格式或der格式 生成公私鑰對和證書請求 openssl req newkey rsa color red 1024 color sha1 pubkey config color red myopenssl.cnf color keyout root.pri.k...
OpenSSL證書操作
openssl證書操作 1 掌握openssl x509證書驗證和獲取證書資訊的原理以及常用的api 2 基於openssl庫開發x509證書驗證和證書資訊檢視程式。1 在函式tx509 verify 中,完成對證書的驗證。2 在函式tgetx509info 中,獲取證書的資訊,包括證書版本號 證書...
證書keytool操作
將證書匯入到trustedcertentry金鑰庫 keytool importcert alias 別名 file 證書檔案 keystore 金鑰庫 storepass 金鑰庫密碼例項 keytool importcert alias www.test.com file d temp www.t...