窝窝插件 发表于 2018-5-23 08:12:22

linux OpenSSL 及 CA相关

  常见加密算法:
  对称加密:
  加密和解密使用的是同一个密钥。
  DES:Data Encroption Standard 56bit密钥长度。
  3DES:三层DES
  

  AES:Advanced 128bit密钥长度
  AES192,AES256,AES512
  BlowFish
  

  单向加密:
  1.提取数据特征码,输入一样,输出必然一样。
  2.雪崩效应:输入的微小改变,将会引起结果的巨大改变。
  3.定长输出:无论原始数据多大,结果大小都是相同的。
  4.不可逆:无法根据特征码还原原始数据。
  md4
  md5
  sha1
  sha192,sha256,sha384,sha512
  CRC32 校验码计算机制
  

  非对称加密(公钥加密)
  使用一对密钥:
  公钥:public key 是从私钥提取的。
  私钥:private key 只有自己有。
  

  发送方用自己的私钥加密,可以实现身份验证。
  发送方用对方的公钥加密,可以保证数据机密性。
  

  公钥加密算法很少用来加密数据,速度慢。通常用来进行身份验证。
  

  RSA
  加密
  签名
  DSA
  签名
  ELGamal
  商业算法
  

  PKI Public Key Infrastructure
  公钥基础设施。提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。
  

  

  CA:Certificate Authority
  证书管理机构,CA是PKI系统中通信双方都信任的实体。
  常见自信任证书格式:
  x509 (TLS/SSL)
  公钥及有效期限
  证书的合法拥有者
  证书该如何被使用
  CA的信息
  CA签名的校验码
  

  

  pkcs12(OpenGPG)
  

  

  SSL和TLS 安全协议
  是为网络通信提供安全及数据完整性的安全协议。工作在传输层。
  SSL;Secure Sockets Layer 安全套接层。
  TLS:Transport Layer Security 传输层安全。SSL的后继者。
  
  

  常见的加密工具:
  对称加密
  openssl
  ssl的开源实现
  libcrypto 加密库,提供了各种加密函数
  libssl TLS/SSL的实现
  基于会话的,实现了身份认证、数据机密性和会话完整性。
  gpg
  

  

  #openssl COMMAND 多用途命令行工具,实现私有证书颁发工具。有很多子命令。
  COMMNAD
  version 查看openssl版本号
  

  speed
  测试本机对各种加密算法的速度,指定CHIPHERNAME则计算某个算法的速度。
  

  enc CHIPHERNAME 对称密钥加解密工具
  
  -in FILENAME 指定要加密的文件
  -out FILENAME 指定加密后生成的文件
  -a 对文件基于base64编码
  -e 加密
  -d 解密
  -k PASSWORD 指定密钥
  -salt SALT 使用salt以提高安全性
  例如:
  #cp /etc/inittab initt
  #opanssl enc -des3 -salt -a -in initt -out inittdes3
  #opanssl enc -des3 -d -salt -a -in inittdes3 -out initt
  

  dgst CHIPHERNAME FILE 计算校验码
  

  passwd 计算密码的哈希值。
  
  -1 指定使用md5加密
  -salt SALT 使用salt
  例如:
  #openssl passwd -1 -salt JoKYOIkYT
  

  rsa 密钥处理工具
  
  -in FILE 从文件读入
  -pubout 输出公钥
  

  例如:
  #opensll rsa -in server.key -pubout >server.pub.key
  

  rsautl rsa加密解密工具
  

  rand NUM 伪随机数生成工具,生成长度为NUM的随机数。
  
  -base64 使用base64方式
  

  例如:
  #openssl rand -base64 65 生成长度为65的随机数。
  

  

  genrsa 生成长度为NUMBITS的rsa私钥,不指定默认为512位。
  
  -out FILE 指定私钥保存文件
  

  例如:
  #openssl genrsa生成长度为512位的rsa私钥
  #openssl genrsa 2048 > server.key 生成长度为2048的rsa私钥,并保存到server.key中。
  #openssl genras 2048 -out server.key
  #(umask 077;openssl genrsa -out server1024.key 1024) 在括号中执行的命令会在子shell下执行。所以umask不会对父shell产生影响。
  

  req 生成证书的工具
  配置文件为/etc/pki/tls/openssl.cnf
  

  
  -new 创建一个证书
  -x509 证书类型为x509
  -key FILE 指定私钥文件
  -out FILE 保存证书到文件
  -day DAY 证书有效期限天数为DAY天
  

  例如:
  #openssl req -new -x509 -key server.key -out server.crt -day 365
  

  x509 x509证书格式相关
  
  -text 以文本格式显示。
  -in FILE 从指定证书文件中读取。
  

  例如:
  #opensll x590 -text -in server.crt
  

  

  

  

  openssl实现私有CA实例:
  1.生成一对密钥
  #openssl genrsa -out server.key
  #(umask 077;openssl rsa -in server.key -putout server.pub.key) 括号内的命令将会在子shell中执行,不会影响到父shell。
  

  2.生成自签署证书
  #openssl req -new -x509 -key server.key -out server.crt -day 365
  Country Name (2 letter code) :国家名称
  State or Province Name (full name) :省名称
  Locality Name (eg, city) []:市名称
  Organization Name (eg, company) :公司名
  Organizational Unit Name (eg, section) []:部门名称
  Common Name (eg, YOUR name or your servier's hostname) []: ca.test.com至关重要!如果证书是用在服务器上的,一定要填服务器在DNS上的解析名称。
  Email Address []:邮箱地址,一般填管理员的。
  

  配置CA及证书签署实例;
  #vim /etc/pki/tls/openssl
  #(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2084)
  #openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem
  #mkdir /etc/pki/CA/{certs,newcerts,crl}
  #touch /etc/pki/CA/index.txt
  #touch /etc/pki/CA/serial
  #echo 01 > serial
  

  假设已经搭建好http服务器
  #mkdir -p /etc/httpd/ssl
  #(umask077;openssl genrsa -out /etc/httpd/ssl/httpd.key 1024)
  #openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr
  #openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/httpd.crt
  

  

  测试用自签证书生成:
  #ls /etc/pki/CA/certs
  Makefile ca-bulidle.cert make-dummy-cert
  #cd /etc/pki/CA/certs
  #make xxx.crt|xxx.pem
  #ls /etc/pki/CA/certs
  Makefile ca-bulidle.cert make-dummy-cert xxx.crt
  注意,这里的生成证书类型为自签证书,其中包含私钥,只能用于实验,绝对不能用在生产环境!
  #cat Makefile通过查看此文件可以看make的详细使用说明。
  
页: [1]
查看完整版本: linux OpenSSL 及 CA相关