openssl 1.1.1+ 版本增加了對SM2 的支持,所以我們就能直接使用這些版本的opsnssl 生成 SM2的公私鑰對。
首先我們得在Linux 或者Windows服務器中安裝對應版本的openssl庫,具體過程略。軟件包請到官網下載:https://www.openssl.org/
安裝完成后,使用下列命令查看該版本的openssl 是否支持SM2參數:
openssl ecparam -list_curves | grep SM2
如果像我是windows系統則用: openssl ecparam -list_curves | findstr SM2
如果查詢結果有內容,則說明該版本支持SM2參數,也就可以生成SM2的公私鑰對。
在安裝了正確版本的openssl之后,下面就是利用openssl自帶的命令生成SM2公私鑰對了:
1.創建EC參數和原始私鑰文件:openssl ecparam -out ec_param.pem -name SM2 -param_enc explicit -genkey
注:生成完成后可以查看一下EC私鑰信息:openssl ecparam -in ec_param.pem -text
然后驗證一下參數:openssl ecparam -in ec_param.pem -check
2.將原始的私鑰文件,轉換為pkcs8格式:openssl pkcs8 -topk8 -inform PEM -in ec_param.pem -outform pem -nocrypt -out pri_key_pkcs8.pem
3.利用原始的私鑰,生成對應的公鑰:openssl ec -in ec_param.pem -pubout -out pub_key.pem
至此SM2的秘鑰對已經生成結束,pri_key_pkcs8.pem是SM2私鑰,而pub_key.pem是公鑰。
轉載侵刪