加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜阳站长网 (https://www.0558zz.com/)- 科技、建站、内容创作、云计算、网络安全!
当前位置: 首页 > 综合聚焦 > CentOS > 正文

CentOS6.5下openssl加密解密及CA自签颁发证书详解

发布时间:2020-09-19 03:16:17 所属栏目:CentOS 来源:互联网
导读:正文 openssl是一个开源程序的套件、这个套件有三个部分组成、一是libcryto、这是一个具有通用功能的加密库、里面实现了众多的加密库、二是libssl、这个是实现ssl机制的、他是用于实现TLS/SSL的功能、三是openssl、是个多功能命令行工具、他可以实现加密解密

正文
openssl是一个开源程序的套件、这个套件有三个部分组成、一是libcryto、这是一个具有通用功能的加密库、里面实现了众多的加密库、二是libssl、这个是实现ssl机制的、他是用于实现TLS/SSL的功能、三是openssl、是个多功能命令行工具、他可以实现加密解密、甚至还可以当CA来用、可以让你创建证书、吊销证书、这里我们用opensslenc对一个文件进行加密看看:
# openssl enc -des3 -a -salt -in /etc/fstab -out /tmp/fstab.cipher 加密
# cat /tmp/fstab.cipher
# openssl enc -d -des3 -a -salt -in /tmp/fstab.cipher -out/path/to/fstab.cipher 解密

CentOS6.5下openssl加密解密及CA自签颁发证书详解


数字证书:
证书格式通常是x509的数字证书的格式、还有pkcs等其他的。
对于x509这种证书内容当中都包含哪些呢:
1、公钥和也就是有效期限。
2、持有者的个人合法身份信息、这个信息有可能是一个公司、也可能是个人、也可以是主机名。
3、证书的使用方式、比如用来进行主机之间的认证等。
4、CA(证书颁发机构)的信息
5、CA的数字签名、CA的证是自签证书

公钥加密、也叫非对称加密
公钥加密最大的特性就是密钥成对的、公钥称为public key(pkey)、私钥称为secret key(skey)、一般而言、公钥用来加密、私钥用来解密、如果要实现电子签名那就是私钥来用加密、公钥用来解密、而公钥是可以给任何人的、私钥就得自己保存;公钥加密一般不会加来对数据加密、因为他的加密速度很慢、比对称加密慢3个数量级(一个数量级是10倍、3个就是1000倍)、所以公钥加密通常用于密钥交换(IKE)和身份认证的。
他的常用算法有:RSA和EIGamal、目前RSA是比较广泛的加密算法、而DSA(DigitalSignature Algorithm)只能加来做签名、而无法加于加密的算法
他的工具通常用:gpg、opensslrsautl

CentOS6.5下openssl加密解密及CA自签颁发证书详解


单向加密、也叫hash算法:(One-Way加密)
用不生成数据指纹的、也叫数据摘要算法、输出是定长的、MD5是128位定长输出、SHA1定长输出160位、他的特性是不会出现碰撞的、每位数据只要有一位不一样就会产生巨大的变化、我们称这种为雪崩效应、常用的算法MD5、SHA1、SHA512、常用工具有sha2sum、md5sum、cksum、openssldgst。
# sha1sum fstab
# openssl dgst -sha1 fstab

CentOS6.5下openssl加密解密及CA自签颁发证书详解



信息摘要码:
MAC(Message Authentication Code):通常应用于实现在网络通信中保证所传输的数据完整性、他的基本方式就是基于MAC将要通信的数据使用单向加密的算法获取定长输出、而后将这定长输出安全可靠的送达到接收方的一种机制、简单来讲我们客气端发送数据给服务器时、客户端会计算这段数据的特征码、并而将这段特征码发送给服务器端、但是这种特征码不能简单的这样传送过去、他要基于MAC、调用单向加密计算这段特征码、而后将加密的结果发送给服务器端、保证特征码不会被人修改、这是单向加密的一种实现、一种延伸应用;
他的常用算法有:CBC-MAC、HMAC
对于openssl来讲、如果你是客户端、他可以帮我们生成密钥对、帮我们生成证书申请、如果是发证方、他可以帮发证方自签证书、还可以签署证书、还可以生成吊销列表、当然大范围内全球内使用openCA。
那接下来我们就用openssl完成证书生成、签署、颁发以及吊销等功能:

CentOS6.5下openssl加密解密及CA自签颁发证书详解

实现步骤:
首先自己得有一个证书、那就先自签一个证书、用openssl实现私有CA、CA的工作目录都是在/etc/pki/CA下、而CA的配置文件在/etc/pki/tls/openssl.cnf这个文件中。
生成CA私钥、这里要注意、公钥是按某种格式从私钥中提取出来的、公钥和私钥是成对的、生成私钥也就有了公钥:
# (umask 077; openssl genrsa -out private/cakey.pem 2048)

CentOS6.5下openssl加密解密及CA自签颁发证书详解


在当前shell中用()执行命令表示括号中的命令要在子shell中执行,2048表示密钥的长度、-out后面表示生成密钥文件保存的路径,生也的文件权限是666、而这个文件不能被别人访问、所在666-077就得到权限600:
查看公钥或提取公钥、这个并不是必要步骤:
# openssl rsa -in private/cakey.pem -pubout -text

CentOS6.5下openssl加密解密及CA自签颁发证书详解


生成自签证书、用openssl中req这个命令、叫证书请求:

# opensslreq -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

CentOS6.5下openssl加密解密及CA自签颁发证书详解


在CA的目录下创建两个文件:
# touch index.txt serial

CentOS6.5下openssl加密解密及CA自签颁发证书详解


OK、CA的证书有了、那接下来就是给客户签署证书了;我这里换另一台主机来做客户、向CA了起签署申请、如果要给服务器使用、那一定要跟你的服务器名保持一致、我们这里是以web服务器使用的、所以生成的私钥也要放在服务器的目录下、我这里以httpd为例:
生成密钥对、我们专门分建一个目录来存放:
# mkdir /etc/httpd/ssl
# (umask 077; openssl genrsa -out httpd.key 1024)

CentOS6.5下openssl加密解密及CA自签颁发证书详解


客户端生成证书签署请求:
# openssl req -new -key httpd.key -out httpd.csr

CentOS6.5下openssl加密解密及CA自签颁发证书详解


再把httpd.csr发给远程主机的CA签署
# scp httpd.csr 172.16.251.171:/tmp/

CentOS6.5下openssl加密解密及CA自签颁发证书详解


再切换到远程主机的/tmp看一下有没有一个叫httpd.csr的文件:

CentOS6.5下openssl加密解密及CA自签颁发证书详解


于是我们的CA检查信息完后就可以签署了:
# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3655

CentOS6.5下openssl加密解密及CA自签颁发证书详解


再把签署好的证书发送回去给客户端的主机:
# scp httpd.crt 172.16.251.127:/etc/httpd/ssl/

CentOS6.5下openssl加密解密及CA自签颁发证书详解


发送给客户端主机了我们就可以去查看一下了:
# ls -l /etc/httpd/ssl

CentOS6.5下openssl加密解密及CA自签颁发证书详解


于是我们的客户端主机就可以配置使用CA签署的证书了。
如果说证书过期了怎么吊销呢:(要在CA主机上吊销)
# openssl ca -revoke httpd.crt


这个证书制作好后我们就可以在windows下安装我们制作好的证书了:

第一步:

CentOS6.5下openssl加密解密及CA自签颁发证书详解


第二步:

CentOS6.5下openssl加密解密及CA自签颁发证书详解


第三步:

CentOS6.5下openssl加密解密及CA自签颁发证书详解


第四步:

CentOS6.5下openssl加密解密及CA自签颁发证书详解


第五步:

CentOS6.5下openssl加密解密及CA自签颁发证书详解


第六步:

CentOS6.5下openssl加密解密及CA自签颁发证书详解


CentOS6.5下openssl加密解密及CA自签颁发证书详解


CentOS6.5下openssl加密解密及CA自签颁发证书详解

(编辑:阜阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读