zoukankan      html  css  js  c++  java
  • https协议 ssl协议以及证书生成

    一、https协议
    https是一安全为目标的httpt通道,简单讲师http的安全版。即http下加入ssl层,https的安全基础是ssl,因此加密的详细内容就需要ssl。
    http和https的区别
    超文本传输协议http协议被用于在浏览器和网站服务器之间传递信息。http协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了浏览器和网站服务器之间的传输报文,就可以直接读懂其中的消息,因此http协议不适合传输一些敏感信息,比如信用卡号、密码等。
    为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
    HTTPS和HTTP的区别主要为以下四点
    1、https协议需要到ca申请证书,一般免费证书很少,需要交费。
    2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证
    的网络协议,比http协议安全。

    二、ssl协议
    20151001_b347f684
    如上图所示,简述如下:
    1、客户端生成一个随机数random_client,并且和支持ssl协议版本、加密类型等发送给服务端;
    2、服务端生成一个随机数random_server,并且和证书发送给客户端(证书中包含着公钥)
    3、客户端验证server的证书,验证成功则认定其身份开始连接,否则断开连接。当验证成功后,客户端随机生成一个“对称密码”,使用公钥加密发送给服务端;
    4、服务端用自己的私钥解密,此时服务端和客户端都拥有了三个要素:random-client、random-server和对称密码,用这三个要素通过算法的出session key
    5、两者安全通道已经建立,以后的交流都会校验session key
    三 CA证书
    1、生成密钥、证书
    //生成服务器端私钥
    genrsa -out server.key 1024
    //生成服务器公钥
    rsa -in server.key -pubout -out server.pem

    //生成客户端端私钥
    genrsa -out client.key 1024
    //生成客户端公钥
    rsa -in client.key -pubout -out client.pem
    2、生成CA证书
    genrsa -out ca.key 1024
    req -new -key ca.key -out ca.csr
    x509 -req -in ca.csr -signkey -out ca.crt
    执行到第二步会让你 填写一些个人消息 比如公司 地址 名称等

    3、生成服务器端证书和客户端证书
    服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件
    req -new -key server.key -out server.csr
    //向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,
    //最终颁发一个带有 CA 签名的证书
    x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
    //client 端
    req -new -key client.key -out client.csr
    //client 端到 CA 签名
    x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt

    此时,我们就生成了证书了
    F9`CY6{A2SUYQ[WH{VB@4$O

    本地测试下
    0{ODK(8CVWAWSD]QAG__]30
    效果:
    LRXOB)4$G]LHU23}}IKA[QB

  • 相关阅读:
    我不写博客的原因就是cnblogs不好用
    使用KeePass愉快的来管理你的密码
    Visual studio常用的code snippets
    日常工作小贴士
    win10下面visual studio, sublime ctrl+shift+f快捷键失效的原因
    Markdown常用语法对应
    常见的Message Queue应用场景
    二分查找(binary search)
    在ROS中使用花生壳的域名服务
    排序算法 选择排序(selection sort)
  • 原文地址:https://www.cnblogs.com/jjffeng-/p/7511012.html
Copyright © 2011-2022 走看看