openssl
什么是openssl:OpenSSL是套开放源代码的SSL套件,其函式库是以C语言所写成,实作了基本的传输层资料加密功能。此软件是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,SSLeay随着两人前往RSA公司任职而停止开发。其实openssl,就是是一个加密套件,可以实现各种加密。用的最多的应该就是https和CA认证。加密分类:1,对称加密: 常用算法:DES(56bits), 3DES, AES(128bits), Blowfish Twofish, IDEA, RC6, CAST5, Serpent 优点:加密速度快,保证数据私密性 缺点:不能实现身份认证,不能实现密钥交换,不能保证数据完整性有个特别的DH算法能实现密钥交换(有的说是非对称加密里的,原理
就是应用离散对数上的离散指数难计算。加密双方保留自己的指数,只传送结果,然后用各自 的指数进行运算,得到一个相同的密钥)2,非对称加密: 加密算法:RSA, EIGamal, DSA 优点:能进行身份认证,能实现密钥交换,保证数据私密性 缺点:加密速度慢,不能保证数据完整性3,单向加密: 加密算法:MD5, SHA1, SHA512, CRC-32 优点:保证数据完整性,速度快 缺点:不能保证私密性,不能进行身份认证具体用法:加密一个文件1.用opensssl对称加密一个文件加密:# openssl enc -rc4 -in /tmp/isolinux.cfg -out /tmp/isolinux.enc解密:# openssl enc -d -rc4 -in /tmp/isolinux.enc -out 123.txt enc:对称加密-rc4 :算法-in/-out:加密前后的文件2.单向加密(就是提取特码) # openssl dgst -md5 ./123.txt 这个很简单,和md5sum一样3.非对称加密应用:数字签名(私钥加密,公钥解密) 密钥交换,身份认证关于https 出自维基百科HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人***提供合理的保护。HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。因此,一个到某网站的HTTPS连接可被信任,当且仅当: 用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构; 用户相信证书颁发机构仅信任合法的网站; 被访问的网站提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告); 该证书正确地验证了被访问的网站(如,访问https://example时收到了给“Example Inc.”而不是其它组织的证书); 或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被窃听者破坏。-------------------------https的实现建立连接1,tcp三次握手2,服务端把自己的公钥给客户端(也就是证书)3,客户端拿着公钥去找CA,4,CA把自己的证书发给客户端5,客户端通过自己的证书表比对CA的证书,6,如果比对成功,继续连接,CA告诉客户端,服务端的证书是否可信7,如果可信客户端把自己的公钥给服务端()---数据传输传输1,数据提取特征码(单向加密,保证数据完整性)2,用自己的的私钥加密特征码(保证特征码是自己生成的,即这个数据就是我发的)3,用对称加密数据,会生成一个口令(保证数据私密性)4,用对方公钥加密口令(保证口令安全)接收1,用自己的私钥解密(拿到口令)2,用口令解密数据(得到明文)3,用对方的公钥解密特征码(保证数据是对方发的)4,用特征码校验数据的完整性---------用openssl建立私有CA配置文件:/etc/pki/tls/openssl.cnfCA的工作目录1,生成私钥 # openssl genrsa -out /etc/pki/CA/private/cakey.pem
genrsa:生成私钥
2,给自己发证书 # openssl req -new -x509 -key private/cakey.pem -out cacert.pemreq:证书申请
-x509:证书格式-new:就是新建 3,创建需要的文件: # touch index.txt serial crlnumber这几个文件是配置文件中写到的,配置文件有写用途3,给别人签证书
# openssl ca -in /tmp/http.crs -out http.crt 4,吊销证书# openssl ca -revoke http.crt----------------作为客户端申请证书1,生成私钥(公私钥成对出现的,公钥是从私钥提取的) # openssl genrsa -out http.key2,制作证书申请
# openssl req -new -key http.key -out http.crs填写好自己的信息发给CA
总结:genrsa:生成私钥req:证书申请ca:签证书/吊销证书-------------------------基于密钥认证的登录1,生成密钥 # ssh-keygen 默认是rsa2,把公钥拷贝到远端
# ssh-copy-id root@192.168.100.101
3,不用密码登录了
总结:如有错误,还请帮忙提出,谢谢。。。