openssl 常用命令

发布时间 2023-08-16 13:43:34作者: demoduan

openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持 SSL (Secure Sockets Layer) / TLS (Transport Layer Security) 协议的实现
官网:https://www.openssl.org/source/

# 生成 RSA 私钥(无加密)

openssl genrsa 2048 > rsa_private.key 或 openssl genrsa 2048 -out rsa_private.key

# 生成 RSA 公钥

openssl rsa -in rsa_private.key -pubout > rsa_public.key 或 openssl rsa -in rsa_private.key -pubout -out rsa_public.key

# 生成 RSA 私钥(使用 aes256 加密)

openssl genrsa -aes256 -passout pass:demoduan -out rsa_aes256_private.key 2048

# 通过 aes256 加密后的 RSA 私钥生成公钥( -passin pass:demoduan 参数可避免交互式的输入加密密码)

openssl rsa -in rsa_aes256_private.key -passin pass:demoduan -pubout -out rsa_public.key

# aes256 加密私钥转为无加密私钥

openssl rsa -in rsa_aes256_private.key -passin pass:demoduan -out rsa_private.key 

# 无加密私钥转为 aes256 加密私钥

openssl rsa -in rsa_private.key -aes256 -passout pass:demoduan -out rsa_aes256_private.key

# PEM 格式私钥转 DER 格式

openssl rsa -in rsa_private.key -outform der -out rsa_private.der

# 生成 csr (Certificate Signing Request) 文件,其中 csr.cnf 为 ini 格式的基础信息文件,该文件包含公司或组织信息及证书绑定的域名

openssl req -new -key rsa_private.key -config csr.cnf -out server.csr

# 查看 csr 文件详细信息

openssl req -in server.csr -noout -text

# 使用现有私钥生成自签名 ca 证书

openssl x509 -req -days 36500 -in server.csr -signkey rsa_private.key -out server.crt

# 生成私钥和自签名 ca 证书,如下命令必须交互式输入公司或组织信息及证书绑定的域名

openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 36500 -out server.crt

# 证书格式转换

openssl x509 -in server.crt -inform DER -outform PEM -out server.pem

# 查看 ca 证书详细信息

openssl x509 -in server.crt -noout -text