在Ubuntu系統中,使用OpenSSL進行數字簽名通常涉及以下步驟:
生成密鑰對:
openssl genpkey命令生成私鑰。openssl rsa或openssl ecparam命令生成公鑰。創建數字證書簽名請求(CSR):
自簽名證書:
使用私鑰進行數字簽名:
驗證數字簽名:
以下是詳細步驟:
openssl genpkey -algorithm RSA -out rsa_private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl ecparam -name secp256k1 -genkey -noout -out ec_private_key.pem
openssl req -new -key rsa_private_key.pem -out rsa_csr.pem -subj "/C=US/ST=State/L=City/O=Organization/CN=CommonName"
openssl req -new -key ec_private_key.pem -out ec_csr.pem -subj "/C=US/ST=State/L=City/O=Organization/CN=CommonName"
openssl x509 -req -days 365 -in rsa_csr.pem -signkey rsa_private_key.pem -out rsa_certificate.pem
openssl x509 -req -days 365 -in ec_csr.pem -signkey ec_private_key.pem -out ec_certificate.pem
openssl dgst -sha256 -sign rsa_private_key.pem -out signature.bin file_to_sign.txt
openssl dgst -sha256 -sign rsa_private_key.pem -out signature.bin <<< "data to sign"
openssl dgst -sha256 -verify rsa_certificate.pem -signature signature.bin file_to_sign.txt
openssl dgst -sha256 -verify rsa_certificate.pem -signature signature.bin <<< "data to sign"
通過以上步驟,你可以在Ubuntu系統中使用OpenSSL進行數字簽名和驗證。