zoukankan      html  css  js  c++  java
  • 创建用私钥签名的证书

    生成证书文件

    1.为服务器端和客户端准备公钥、私钥

    • 生成服务器端私钥

      openssl genrsa -des3 -out server.key 2048
      

      -des3代表加上了加密,后面的2048是代表生成的密钥的位数,1024已经不是很安全

    • 生成服务器端公钥

      openssl rsa -in server.key -pubout -out server.pem
      
    • 生成客户端私钥

      openssl genrsa -des3 -out client.key 2048
      
    • 生成客户端公钥

      openssl rsa -in client.key -pubout -out client.pem
      

    1.生成 CA 机构证书

    • 生成 CA 私钥

      openssl genrsa -des3 -out ca.key 2048
      
    • 生成证书请求

       # X.509 Certificate Signing Request (CSR) Management.
      openssl req -new -key ca.key -out ca.csr
      
    • 使用私钥为证书请求签名,生成给服务器签署的证书,格式是x509的PEM格式

      # X.509 Certificate Data Management.
      openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt -outform pem  -days 3650
      #-outform pem指定证书生成的格式,默认是pem,所以这个命令也可以写作成
      #-days 3650 指10年有效
      #也可以
      openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
      

    生成服务器端证书

    • 服务端向CA生成证书请求

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

      #使用openssl 进行转换
      openssl x509 -in server.crt -out server.cer -outform der
      

    简述 HTTPS 的运作

    HTTPS示意图

    主要过程:

    • 1.客户端生成一个随机数 random-client ,传到服务器端(Say Hello)
    • 2.服务器端生成一个随机数 random-server ,和着公钥,一起回馈给客户端(I got it)
    • 3.客户端收到的东西原封不动,加上 premaster secret (通过 random-client、 random-server 经过一定算法生成的东西),再一次送给服务器端,这次传过去的东西会使用公钥加密
    • 4.服务器端先使用私钥解密,拿到 premaster secret ,此时客户端和服务器端都拥有了三个要素: random-client 、 random-server 和 premaster secret
    • 5.安全通道已经建立,以后的交流都会校检上面的三个要素通过算法算出的session key

    参考:

  • 相关阅读:
    Linux显示文件内容常用命令
    Linux文件权限和更改权限
    数据存储及恢复的基本原理
    使用jemter发送HTTPS请求
    运行Jmeter时,出现java.util.prefs.WindowsPreferences <init>异常警告
    Server08AD域安装以及推送
    SVN服务器和客户端搭建
    selenium常见操作
    TestNG 入门教程
    ant+TestNG-xslt生成selenium测试报告
  • 原文地址:https://www.cnblogs.com/one-villager/p/8108987.html
Copyright © 2011-2022 走看看