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

[经验分享] Open SSL

[复制链接]

尚未签到

发表于 2019-1-26 13:34:59 | 显示全部楼层 |阅读模式
  CA(签证机构)如何发挥作用?
1.通信双方互相交换证书;
2.双方验证证书的真伪;
3.双方协商加密算法;
4.用CA颁发的公钥解密证书的中CA的签名,能解密说明证书来源可靠;
5.用CA的加密算法加密证书,并取得特征值;与解密出来的特征值进行比较,如果相同,说明证书完整性有保证;
6.检查证书的有效期是否合法,如果在有效期内,则证书可用;
7.检查证书的主体名称和此次通信的目标是否能够对应;
8.检查证书是否被吊销;
  能够实现上述安全加密功能的协议:
SSL:Security Socket Layer,安全套接字层;
TLS:Transport Layer Security,传输层安全协议;
  SSL/TLS的handshake的四个阶段:
1.客户端向服务器索要证书并验证证书;
发送Client Hello的消息,此消息主要内容:
支持的协议的版本,如:SSL v3.0或TLS v1.2;
客户端生成一个随机数,稍后用于生成回话密钥;
支持的加密算法,如:DES,3DES,AES,RSA,....
支持的压缩算法,如:gzip,bzip2,deflate,...

    2.双方协商生成会话密钥:
发送Server Hello消息,此消息主要内容:
确认使用的协议的版本,如:TLS v1.2
服务器也生成一个随机数,稍后用于生成会话密钥;
确认加密算法和压缩算法;
服务器的证书;
3.双方采用以及生成的会话密钥进行安全加密的数据通信:
客户端验证服务器证书,在确认无误后,取出其中的服务器公钥;
验证服务器证书的步骤:
验证发证机构(CA);
验证证书的完整性;
验证证书的持有者信息;
验证证书的有效期;
验证CA的吊销列表中是否有此证书;
客户端发送信息给服务器端;
客户端再次生成一个随机数,用于公钥加密;
编码格式的变更通知,表示以后的信息都将采用双方已经协商好的加密算法和压缩算法;
客户端握手结束;
服务器收到客户端发送来的第三个随机数(Pre_Master_key),计算生成此次会话用到的会话密钥,向客户端发送相关信息;
编码格式的变更通知,表示以后的信息都将采用双方已经协商好的加密算法和压缩算法;
服务器端握手结束;
4.双方互相结束通信:
SSL/TLS的handshake的四个阶段:
1.Client Hello
2.Server Hello
3.通信双方采用已经生成的会话密钥进行安全加密的数据通信;
4.双方结束通信;
实现SSL/TLS协议的应用程序:OpenSSL
OpenSSL:开源的实现SSL/TLS协议的事实的标准;
主要有三部分组成:
1)libcrypto:实现加密和解密算法的库;
2)libssl:实现SSL协议/TLS协议功能的库;
3)openssl:多用途命令行工具;
openssl命令行工具:
众多的子命令实现各种安全加密功能;
标准命令:
enc, dgst, ca, req, genrsa, rand, rsa, x509, passwd, ...
对称加密命令:enc
提供对称加密算法,以进行数据或文件的手动加密;
格式:openssl enc -ciphername [-in filename] [-out filename] [-e] [-d] [-a/-base64] [-salt]
-ciphername:加密算法的名称
-in filename:openssl要读取的文件路径;
-out filename:加密或解密操作后用于保存结果的文件路径;
-e:加密操作
-d:解密操作
-a/-base64:用纯文本格式进行密文编码;
-salt:随机加盐;
  示例:# openssl enc -e -des3 -in ytc.txt -a -out ytc1.txt(加密)

cat ytc1.txt

       U2FsdGVkX1/PqNTpFQqp/nFppi3xdBEIIyaasE5rNwc=
# openssl enc -d -des3 -out ytc.txt -a -in ytc1.txt(解密)
单向解密命令:dgst
示例:
~]# openssl dgst -sha1 fstab
生成随机数命令:rand
openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num
示例:# openssl rand -base64 16
JFPWNuu5WzXqfIk7luSBWA==
生成带盐的密码:passwd
openssl passwd -1 -salt SALT_STRING
示例:
~]# openssl passwd -1 -salt 01234567
公钥加密算法:genrsa
生成rsa加密算法的私钥;
openssl genrsa [-out filename] [-des] [-des3] [-idea] [-f4] [-3] [numbits]
出于安全考虑,需要给创建的私钥赋予只有拥有者才能读写其他任何人都不能读写的权限;建议使用下列方法生成私钥:
~]# (umask 077 ; openssl genrsa -out /tmp/my.key 4096)
~]# (umask 077 ; openssl genrsa > /tmp/my.key 4096)
从以及生成的私钥文件中抽取公钥:rsa
openssl rsa [-in filename] [-out filename] [-pubout]
-pubout:抽取公钥
-in filename:私钥文件的路径
-out filename:公钥文件的路径
示例:
~]# openssl rsa -in my.key -out mykey.pub -pubout
利用openssl建立私有CA步骤:
1.创建CA的私钥文件:
(umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
2.生成自签证书:
openssl req命令:
openssl req [-out filename] [-new] [-key filename] [-x509] [-days n]
3.完善目录及文本文件结构:
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial
在CA上查看证书内容:
openssl x509 -in /etc/pki/CA/cacert.pem -noout -serial -subject
吊销证书:必须在CA上执行;
1.获取客户端证书对应的序列号:
openssl x509 -in /etc/pki/CA/certificate -noout -serial
2.吊销证书:
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
注意:上述命令中的"SERIAL"要换成准备吊销的证书的序列号;
3.生成吊销证书的吊销索引文件;仅需要第一次吊销证书时执行此操作:
echo "SERIAL" > /etc/pki/CA/crl/crlnumber
4.更新证书吊销列表:
openssl ca -genctl -out /etc/pki/CA/crl/ca.crl
5.查看CRL:
openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text



运维网声明 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-667851-1-1.html 上篇帖子: MVP Open Day 2011 下篇帖子: open ldap编译安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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