0%

openssl

文章字数:623,阅读全文大约需要2分钟

openssl是目前最流行的SSL密码库工具,提供了一组通用、健壮、完备的工具。

构成

  • 密码算法库
  • 秘钥和证书封装管理
  • SSL通讯API接口

秘钥操作

  1. 生成不加密的RSA私钥
1
openssl genrsa -out rsa_private.key 2048
  1. 使用不加密的RSA私钥生成公钥
1
openssl rsa -in rsa_private.key -pubout -out rsa_public.key
  1. 生成加密RSA私钥(使用AES256加密)
1
openssl genrsa -aes256 -passout pass:123456 -out rsa_aes_private.key 2048
  1. 使用加密的RSA私钥生成公钥
1
openssl rsa -in rsa_aes_private.key -passin pass:123456 -pubout -out rsa_public.key

转换相关

  1. 加密私钥转非加密
1
openssl rsa -in rsa_aes_private.key -passin pass:123456 -out rsa_private.key
  1. 非加密私钥转加密
1
openssl rsa -in rsa_private.key -aes256 -passout pass:123456 -out rsa_aes_private.key
  1. 私钥PEMDER
  • -inform-outform参数制定输入输出格式,由derpem格式同理
1
openssl rsa -in rsa_private.key -outform der-out rsa_aes_private.der
  1. 私钥PKCS1PKCS8(加密算法填充模式)
1
openssl pkcs8 -topk8 -in rsa_private.key -passout pass:123456 -out pkcs8_private.key
  1. 查看私钥明细
1
openssl rsa -in rsa_private.key -noout -text

生成自签证书

  1. 生成RSA私钥和自签名证书
1
openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt
  • req证书请求的子命令
  • newkey rsa:2048 -keyout private_key.pem生成私钥(PKCS8格式)
  • -nodes秘钥不加密,无此参数则提示输入密码
  • -x509输出证书
  • -days365有效期
  • subj证书拥有者信息,如果没有此参数,也可以根据提示输入
  1. 使用已有RSA私钥生成自签名证书
1
openssl req -new -x509 -days 365 -key rsa_private.key -out cert.crt
  • -new生成证书请求
  • -x509直接输出证书
  • -key指定私钥

生成签名请求文件及CA签名

  1. 生成RSA秘钥
1
openssl genrsa -aes256 -passout pass:123456 -out server.key 2048
  1. 生成CSR签名请求(把秘钥生成向CA发起签发证书请求的文件)
1
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=FJ/L=XM/O=COL/CN=127.0.0.1"
  1. 使用CA证书及CA秘钥,对请求签发证书进行签发,生成x509证书
1
openssl x509 -req -days 3650 -in server.csr -CA ca.cert -CAkey ca.key -passin pass:123456 -CAcreateserial -out server.crt