常用證書操作函式

2021-08-03 02:59:21 字數 2197 閱讀 3622

現有的證書大都採用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...