OpenSSL用法详解

OpenSSL用法详解

OpenSSL

       组件:libcrypto,libssl

                openssl

       openssl

              众多子命令,可分为三类:

              标准命令

              消息摘要命令(dgst子命令)

              加密命令(enc子命令)           

       标准命令:enc,ca,reeq,genrsa…

linux系统上的随机数生成器

       /dev/random:仅从熵池返回随机数,随机数用尽,阻塞进程

       /dev/urandom:从熵池中返回随机数,随机数用尽,会利用软件生成伪随机数,不会阻塞进程,但不够安全

       熵池中随机数的来源: 硬盘IO中断的时间间隔

使用openssl完成对称加密

       支持的算法:3des、aes、blowfish、towfish

      1、 enc子命令:

              加密:

]#openssl enc -e -des3 -a -salt -in fstab -out fstab.cipher

              解密:

]#openssl enc -d -des3 -a -salt -out fstab.out -in fstab.cipher

使用openssl完成单向加密

      2、 dgst子命令             

]#md5sum fstab]#openssl dgst -md5 fstab

blob.png

使用openssl生成用户加密

       生成随机数:

]#openssl rand -base64 6      #8进制随机数
]#openssl rand -hex 30        #16进制随机数
]#openssl passwd -1 -salt $(openssl rand -hex 6)

blob.png

使用openssl完成公钥加密

       加密解密

              支持的算法:RSA、ELGamal

              工具:openssl rsautl,gpg

       数字签名

              支持的算法:RSA、ELGamal、DSA

              工具:openssl rsautl,gpg

       密钥交换

              支持的算法:RSA、DH

       如何生成密钥对

              如何生成私钥:                   

]#(umask 077;openssl genrsa -out /root/mykey.private 2048)

blob.png

        注意:生成的私钥除了属主,其他任何用户都不应该有任何权限

        如何从公钥中提取私钥                    

]#openssl rsa -in /root/mykey.private -pubout -out /root/mykey.public

blob.png

CA

       公共权威CA

       私有CA

如何自建CA:

       openssl

       openCA:二次封装的openssl。

       配置文件:/etc/pki/tls/openssl.cnf

blob.png

如何构建私有CA:

在确认配置为CA的服务器上生成一个自签证书,并为CA提供所需要的目录及文件

        步骤:

              1、生成私钥:                    

]#(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

              2、生成自签证书:          

]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

              -new:生成证书签署请求

              -x509:生成自签格式证书,专用于创建私有CA

              -key:生成请求时用到的私钥文件路径

              -out:生成的请求文件路径,如果自签操作将直接生成签署过的证书

              -days:证书的有效时长,单位是day

 blob.png

             3、 为CA提供所需的目录及文件

 ]#mkdir -pv /etc/pki/CA/{certs,crl,newcerts} ]#touch /etc/pki/CA/{serial,index.txt} ]#echo 01 > /etc/pki/CA/serial

blob.png

要用到证书进行安全通信的服务器,需要向CA请求签署证书

步骤:

       1、在用到证书的主机上生成私钥            

~]# mkdir /etc/httpd/ssl~]# cd /etc/httpd/ssl~]# (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

blob.png

       2、生成证书签署请求       

]# openssl req -new -key httpd.key -out httpd.csr -days 365

blob.png

       3、将请求发送到CA服务器上            

]# scp httpd.csr root@10.1.154.97:/etc/pki/CA/certs

       4、在CA上签署证书请求            

]#openssl ca -in httpd.csr -out httpd.crt -days 365

blob.png

       5、签署证书之后,将证书拷贝给请求的主机             

]#scp httpd.crt root@10.1.154.94:/etc/httpd/ssl

blob.png

       6、查看证书中的信息              

]# openssl x509 -in httpd.crt -noout -serial -subject

              -serial:查看证书序列号

              -subject:查看证书主体信息

blob.png

       7、如何吊销证书,需要在CA上执行

              (1)客户端获取要吊销证书的serial            

]# openssl x509 -in httpd.crt -noout -serial -subject

              (2)CA吊销证书

              先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致,一致,则吊销           

]#openssl ca -revoke ./certs/httpd.crt

blob.png

              (3)生成证书吊销列表            

]#echo 01 > /etc/pki/CA/crlnumber

              (4)更新证书吊销列表             

]#openssl ca -gencrl -out ./certs/httpd.crt

 blob.png

原创文章,作者:M20-1钟明波,如若转载,请注明出处:http://www.178linux.com/48630

(4)
M20-1钟明波M20-1钟明波
上一篇 2016-09-23 09:06
下一篇 2016-09-23 09:44

相关推荐

  • linux用户管理(一)

    作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: useradd可以在系统中新建一个用户 用法如下: useradd [选项] 用户名 常用选项: -u 指定用户的UID -g 指定用户的初始组ID -G…

    Linux干货 2017-04-03
  • Openssl搭建私有CA认证

    概述 CA英文全称Certification Authority,即数字证书认机构。从广义上来说,CA是负责发放和管理数字证书的权威机构,并作为用户数字认证中受信任的第三方,承担公钥体系(PKI)中公钥的合法性检验的责任,在互联网上,实现用户与用户、用户与企业之间的数字身份认证。 本文通过使用openssl进行搭建私有CA认证体系,从而简单地了解CA的认证过…

    Linux干货 2016-09-22
  • Linux用户与权限管理

    由于Linux是多用户、多任务系统,出于一些需要,当我们创建的文件希望对一部分用户开放,对一部分用户隐藏的时候应该怎么办呢?这样的话,就需要涉及到Linux系统中对用户以及对文件权限的管理。 一、相关文件 在Linux中,一切配置文件都是以文本文档的方式来保存的,同样用户的信息也保存在系统的一些文件中,其位置为/etc/passwd。此文件只有root用户具…

    Linux干货 2016-08-05
  • 正则表达式和文本处理工具grep,egrep

    正则表达式(Regular Expression)是通过一些特殊字符的排列,来表示控制或者通配的功能,用于查找,替换,删除一行或者多行文字字符串,是用在字符处理上的一项表达式,有时候我们可通过表达式来筛选出我们所需要的信息。 正则表达式分为两类:基本正则表达式(BRE)和扩展的正则表达式(ERE) 正则表达式基本上是一种“表示法”,只要工具程序支持这种表示法…

    Linux干货 2016-12-20
  • 马哥教育网络班第21期+第一周课程作业

    一、 描述计算机的组成及其功能     计算机主机包括:运算器,控制器,存储器,输入设备,输出设备 1、运算器:功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 2、控制器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对从控制器取来…

    Linux干货 2016-07-12
  • Linux的用户组和权限(二)

      一、1.passwd 设置密码(类似usermod的用法)       passwd[OPTIONS] UserName:          修改指定用户的密码,仅root用户有权限       …

    Linux干货 2016-08-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-23 11:53

    总结的很详细,