在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进行数字签名和验证。