gmssl 生成證書以及生成crl
阿新 • • 發佈:2020-09-10
配置環境:
mkdir demoCA
cd demoCA
mkdir certs crl newcerts private
touch index.txt
touch index.txt.attr
echo "01" > serial
echo "01" > crlnumber
index.txt:openSSL定義的已簽發證書的文字資料庫檔案,這個檔案通常在初始化的時候是空的;
serial:證書籤發時使用的序列號參考檔案,該檔案的序列號是以16進位制格式進行存放的,該檔案必須提供並且包含一個有效的序列號。
修改配置檔案/usr/local/gmssl/openssl.cnf中“[ usr_cert ]”中的屬性值
[ CA_default ]
dir = ../demoCA # Where everything is kept //由“./demoCA”修改為“../demoCA”
root證書
gmssl ecparam -genkey -name sm2p256v1 -out Root.key
gmssl req -x509 -sm3 -days 3650 -key Root.key -out RootCA.crt
ca證書
gmssl ecparam -genkey -name sm2p256v1 -out ca.key
gmssl req -new -sm3 -extensions v3_req -key ca.key -out ca.csr
gmssl ca -md sm3 -extensions v3_ca -in ca.csr -out ca.crt -days 1850 -cert RootCA.crt -keyfile Root.key
下一級CA證書
gmssl ecparam -genkey -name sm2p256v1 -out ca2.key
gmssl req -new -sm3 -extensions v3_req -key ca2.key -out ca2.csr
gmssl ca -md sm3 -extensions v3_ca -in ca2.csr -out ca2.crt -days 1850 -cert ca.crt -keyfile ca.key
使用ca證書頒發使用者證書
gmssl ecparam -genkey -name sm2p256v1 -text -out user.key
gmssl req -new -key user.key -out user.req
gmssl ca -md sm3 -in user.req -out user.crt -days 365 -cert ca.crt -keyfile ca.key
使用者證書轉換為pfx格式
gmssl pkcs12 -export -out user.pfx -inkey user.key -in user.crt
吊銷證書
gmssl ca -revoke user.crt
生成吊銷證書列表
gmssl ca -gencrl -out test.crl
檢視吊銷證書列表
gmssl crl -in test.crl -noout -text
加密和簽名證書屬性的配置:
修改配置檔案openssl.cnf中“[ usr_cert ]”中的屬性值
# This is typical in keyUsage for a client certificate.
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
# keyUsage = digitalSignature
# keyUsage = keyEncipherment
key usage擴充套件為Digital Signature, Non-Repudiation, Key Encipherment (e0),證書可以用來加密和簽名。
key usage擴充套件為Digital Signature沒有加密功能,只能用來簽名。
key usage擴充套件為keyEncipherment沒有簽名功能,只能用來加密。