在 Ubuntu 中使用 OpenSSL 进行签名的步骤如下:
首先,确保你的系统上安装了 OpenSSL。Ubuntu 默认已经安装了 OpenSSL,但如果没有,可以使用以下命令安装:
sudo apt update
sudo apt install openssl
使用 OpenSSL 生成一个私钥。以下命令将生成一个 2048 位的 RSA 私钥:
openssl genrsa -out private_key.pem 2048
这将在当前目录下生成一个名为 private_key.pem
的文件。
使用私钥生成一个证书签名请求 (CSR)。在生成 CSR 的过程中,你需要提供一些信息,如国家、组织名称等:
openssl req -new -key private_key.pem -out certificate_signing_request.csr
按照提示输入所需的信息。CSR 将保存在 certificate_signing_request.csr
文件中。
如果你只是想创建一个自签名证书,可以使用以下命令:
openssl x509 -req -days 365 -in certificate_signing_request.csr -signkey private_key.pem -out certificate.pem
这将生成一个有效期为 365 天的自签名证书,并保存在 certificate.pem
文件中。
假设你有一个名为 data.txt
的文件,你想使用私钥对其进行签名:
openssl dgst -sha256 -sign private_key.pem -out signature.bin data.txt
这将对 data.txt
进行 SHA-256 哈希,并使用私钥对其进行签名,结果将保存在 signature.bin
文件中。
为了验证签名,你需要使用公钥。首先,从 CSR 或证书中提取公钥:
openssl x509 -pubkey -in certificate.pem -noout > public_key.pem
然后,使用公钥验证签名:
openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txt
如果签名有效,你将看到输出 Verified OK
。
通过这些步骤,你可以在 Ubuntu 中使用 OpenSSL 进行签名和验证签名。