簡體   English   中英

使用OpenSSL以編程方式在X509證書中輸入數據

[英]Programmatically input data in X509 Certificate using OpenSSL

我正在嘗試創建一個ecdsa證書,但我想以編程方式生成它。 我正在使用openssl和C編程。

當我從命令行生成證書時,我會要求多個問題在其他問題中回答以在證書中使用。 我想知道如何定義這些問題,以編程方式輸入這些數據。

這是我在網上找到的,但我不明白如何插入更多信息,這確實有效:

X509 *x; 
x=X509_new(); 
X509_NAME *name = X509_get_subject_name(x); 
X509_set_version(x, 2); 
ASN1_INTEGER_set(X509_get_serialNumber(x), 3); 
X509_gmtime_adj(X509_get_notBefore(x), 0); 
X509_gmtime_adj(X509_get_notAfter(x), (long) 60 * 60 * 24 * 365); 
X509_set_pubkey(x, pk); 
X509_NAME_add_entry_by_txt(name, "C", MBSTRING_ASC, (const unsigned char*) "PT", -1, -1, 0); 

X509_NAME_add_entry_by_txt函數我意識到這是該國的答案,但這個“C”意味着什么? 這個功能是如何組成的? 我可以把任何我想要的東西放在“C”的地方和“PT”的地方嗎?

C是表示國家的標准方式, PT是葡萄牙的正確選擇(其他國家/地區選項見此列表 )。

您可以使用X509_NAME_add_entry_by_txt函數使用正確的前綴在專有名稱中設置其他值:

  • C =國家
  • ST =狀態
  • L =地點
  • O =組織
  • OU =組織單位
  • CN =通用名稱

只有國家/地區字段具有固定的選擇范圍。

另請參見手冊頁上給出的示例: http//www.openssl.org/docs/crypto/X509_NAME_add_entry_by_txt.html#EXAMPLES

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM