在Ubuntu系统下,OpenSSL是一个非常强大的加密工具,可以用于生成证书、密钥、签名等。以下是一些常用的OpenSSL命令及其用法:
openssl genrsa -out private.key 2048
-out 指定输出文件名。2048 是密钥长度。openssl req -new -x509 -key private.key -out certificate.crt -days 365
-new 表示创建一个新的证书签名请求(CSR)。-x509 表示生成自签名证书。-key 指定私钥文件。-out 指定输出证书文件。-days 指定证书的有效期。openssl req -new -key private.key -out certificate.csr
openssl x509 -in certificate.crt -text -noout
-in 指定输入证书文件。-text 显示证书的详细信息。-noout 表示不输出原始证书内容。openssl rsa -in private.key -check
openssl dhparam -out dhparam.pem 2048
-out 指定输出文件名。2048 是DH参数的长度。openssl ecparam -genkey -name secp384r1 -out private_ec.key
openssl ec -in private_ec.key -pubout -out public_ec.pem
-genkey 表示生成密钥对。-name secp384r1 指定椭圆曲线算法。-pubout 表示输出公钥。openssl pkcs12 -export -in certificate.crt -inkey private.key -out keystore.p12 -name mycert
-export 表示导出PKCS#12格式的文件。-in 指定输入证书文件。-inkey 指定输入私钥文件。-out 指定输出文件名。-name 指定证书在PKCS#12文件中的别名。openssl pkcs12 -in keystore.p12 -out certificate.crt -clcerts -nokeys
openssl pkcs12 -in keystore.p12 -out private.key -nocerts -nodes
-clcerts 表示只导出客户端证书。-nokeys 表示不导出私钥。-nocerts 表示不导出证书。-nodes 表示以可读格式输出私钥。openssl rand -base64 32
-base64 表示输出Base64编码的随机数。32 是随机数的长度(字节)。这些命令只是OpenSSL功能的一部分,更多高级功能和选项可以通过查看openssl的手册页(man openssl)来了解。