【简单自我介绍】简单介绍OpenSSL用法详解

更新时间:2020-11-18    来源:组件控件开发    手机版     字体:

【www.bbyears.com--组件控件开发】

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

本文来源:http://www.bbyears.com/asp/111304.html