xsmscb 发表于 2019-2-18 09:06:34

linux中openssl工具

  openssl命令行工具:
  众多的子命令实现各种安全加密功能;
  标准命令:
  enc,dgst,ca,req,genrsa,rand,rsa,x509,passwd,...
  对称加密命令:enc
  提供对称加密算法,以进行数据或文件的手动加密;
  openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt]
  -ciphername:加密算法的名称
  -in filename:opensll要读取的文件路径;
  -out filename:加密或解密操作后用于保存结果的文件路径;
  -e:加密操作
  -d:解密操作
  -a/-base64:用纯文本格式进行密文编码;
  -salt:随机加盐
  示例:
  加密文件:
  ~]# openssl enc -e -des3 -in anaconda-ks.cfg -a -out anconda-ks.cfg.encryptfile
  解密文件:
  ~]# openssl enc -d -des3 -in anconda-ks.cfg.encryptfile -a -out anaconda-ks.cfg.plaintext
  单向加密:dgst
  ~]# openssl dgst -sha1 /etc/fstab
  生成随机数命令:rand
  openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num
  示例:
  ~]# openssl rand -base64 8
  生成带盐的密码:passwd
  openssl passwd -1 -salt SALT_STRING
  示例:
  ~]# openssl passwd -1 -salt 01234567
  公钥加密算法:genrsa
  生成rsa算法的私钥:
  openssl genrsa [-out filename] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id]
  处于安全考虑,需要给创建的私钥赋予只有拥有者才能读写其他任何人都不能读写的权限;建议使用下列方法生成私钥:
  ~]# (umask 077 ; openssl genrsa -out /tmp/my.key 4096)
  ~]# (umask 077 ; openssl genrsa > /tmp/my.key 4096)
  从已经生成的私钥文件中读取公钥:rsa
  openssl rsa [-in filename] [-out filename] [-pubout]
  -pubout:抽取公钥
  -in filename:私钥文件的路径
  -out filename:公钥文件的路径
  ~]#openssl rsa -in my.key -out my.key.pub -pubout
  利用openssl建立私有CA:
  1.创建CA所在主机的私有文件;
  2.生成自签证书;
  3.必须为CA提供必要的目录级文件及文本级文件;
  目录级文件:
  /etc/pki/CA/certs
  /etc/pki/CA/crl
  /etc/pki/CA/newcerts
  文本级文件:
  /etc/pki/CA/serial:保存证书序列号,一般初始序列号啊为01;
  /etc/pki/CA/index.txt:证书索引;
  /etc/pki/tls/openssl.cnf:配置文件;
  创建私有CA的步骤:
  1.创建CA的私钥文件:
  (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
  2.生成自签证书:
  openssl req
  openssl req [-out filename] [-new] [-x509] [-days n] [-key filename]
  3.完善目录及文本文件结构:
  touch /etc/pki/CA/index.txt
  echo 01 > /etc/pki/CA/serial
  在CA上查看证书的内容:
  openssl x509 -in /etc/pki/CA/cacert.perm-noout -serial-subject
  吊销证书:必须在CA上执行:
  1.获取客户端证书对应的序列号
  openssl x509 -in /etc/pki/CA/certificate -noout -serial
  2.吊销证书:
  openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
  注意:上述命令中的"SERIAL"要换成准备吊销的证书的序列号;
  3.生成吊销证书的吊销索引文件;仅需要第一次吊销证书时执行此操作;
  echo "SERIAL" > /etc/pki/CA/crl/crlnumber
  4.更新证书吊销列表:
  openssl ca -genctl -out /etc/pki/CA/crl/ca.crl
  5.查看CRL:
  openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text



页: [1]
查看完整版本: linux中openssl工具