设为首页 收藏本站
查看: 1025|回复: 0

[经验分享] linux OpenSSL 及 CA相关

[复制链接]

尚未签到

发表于 2018-5-23 08:12:22 | 显示全部楼层 |阅读模式
  常见加密算法:
  对称加密:
  加密和解密使用的是同一个密钥。
  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]
  测试本机对各种加密算法的速度,指定CHIPHERNAME则计算某个算法的速度。
  

  enc [OPTION] CHIPHERNAME 对称密钥加解密工具
  [OPTION]
  -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 [OPTION] [PASSWORD] 计算密码的哈希值。
  [OPTION]
  -1 指定使用md5加密
  -salt SALT 使用salt
  例如:
  #openssl passwd -1 -salt JoKYOIkYT
  

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

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

  rsautl [OPTION] rsa加密解密工具
  

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

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

  

  genrsa [OPTION] [NUMBITS] 生成长度为NUMBITS的rsa私钥,不指定默认为512位。
  [OPTION]
  -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 [OPTION] 生成证书的工具
  配置文件为/etc/pki/tls/openssl.cnf
  

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

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

  x509 [OPTION] x509证书格式相关
  [OPTION]
  -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) [AU]:国家名称
  State or Province Name (full name) [Some-State]:省名称
  Locality Name (eg, city) []:市名称
  Organization Name (eg, company) [Internet Widgits Pty Ltd]:公司名
  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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-480021-1-1.html 上篇帖子: Linux IO重定向 下篇帖子: Linux下安装PCRE
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表