在 Ubuntu 上使用 OpenSSL 命令行工具可以执行多种任务,包括生成密钥对、创建和管理证书、加密和解密数据等。以下是一些常用的 OpenSSL 命令和示例:
如果你的系统上还没有安装 OpenSSL,可以使用以下命令进行安装:
sudo apt update
sudo apt install openssl
openssl genrsa -out private.key 2048
这会生成一个 2048 位的 RSA 私钥,并保存到 private.key 文件中。
openssl rsa -in private.key -pubout -out public.key
这会从私钥 private.key 生成对应的公钥,并保存到 public.key 文件中。
openssl req -new -x509 -days 365 -key private.key -out certificate.crt
这会生成一个有效期为 365 天的自签名证书,并保存到 certificate.crt 文件中。执行此命令时,系统会提示你输入一些信息,如国家、组织名称等。
openssl x509 -in certificate.crt -text -noout
这会显示证书的详细信息。
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
这会使用 AES-256-CBC 算法对 plaintext.txt 文件进行加密,并将加密后的数据保存到 encrypted.bin 文件中。执行此命令时,系统会提示你输入一个密码。
openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
这会使用相同的密码对 encrypted.bin 文件进行解密,并将解密后的数据保存到 decrypted.txt 文件中。
openssl dgst -sha256 -sign private.key -out signature.bin plaintext.txt
这会使用 SHA-256 算法和私钥对 plaintext.txt 文件生成签名,并将签名保存到 signature.bin 文件中。
openssl dgst -sha256 -verify public.key -signature signature.bin plaintext.txt
这会使用公钥验证 signature.bin 文件是否是对 plaintext.txt 文件的合法签名。
openssl dhparam -out dhparams.pem 2048
这会生成 2048 位的 Diffie-Hellman 密钥交换参数,并保存到 dhparams.pem 文件中。
openssl pkcs12 -export -in certificate.crt -inkey private.key -out keystore.p12 -name mycert
这会将证书和私钥打包成一个 PKCS#12 文件 keystore.p12,并设置别名为 mycert。
openssl pkcs12 -in keystore.p12 -clcerts -nokeys -out certificate.crt
openssl pkcs12 -in keystore.p12 -nocerts -out private.key
这会从 PKCS#12 文件中导出证书和私钥。
这些是 OpenSSL 的一些基本用法。根据你的具体需求,可能还有其他命令和选项可以使用。你可以查阅 OpenSSL 的官方文档或使用 openssl help 命令获取更多信息。