openssl  生成私有CA 及签署证书

openssl 配置文件: /etc/pki/tls/openssl.cnf

1. 在openssl CA 服务器端生成私钥

cd /etc/pki/CA/private/

(umask 077;openssl genrsa -out ./cakey.pem 4096)

(     )             : 表示在子shell中运行进程

umask 077   : 表示文件仅自己可读写

genrsa          :  使用rsa 加密方式生成密钥对

-out               :  密钥输出文件位置

4096             : 表示生成4096位密钥对

2. 在 CA 服务器端生成  CA 自签证书

cd /etc/pki/CA/

openssl req -x509 -new -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

-x509    : 仅在CA自签署证书时使用

-new     : 表示生成新的证书

-key       :   指向第一步生成的私钥文件  (会从私钥文件中提取私钥生成公钥)

-days     :   证书有效时长

-out       :   证书输出位置

3.  为CA 服务器端生成必要的目录和文件

mkdir /etc/pki/CA/{certs,crl,netcerts}       (如果目录已存在无需创建)

touch   /etc/pki/CA/{serial,index.txt}

echo 01 > /etc/pki/CA/serial

待签署客户端操作

1.  生成私钥

cd /etc/http/ssl/

(umask 077;openssl genrsa -out /etc/http/ssl/private.pem 4096)

2. 生成证书

openssl  req -new -key /etc/http/ssl/private.pem -out /etc/http/ssl/http.pem -day 365

3. 将生成的证书文件拷贝到CA服务器

scp /etc/http/ssl/http.pem root@x.x.x.x:/tmp/

4. 在CA 服务器签署证书

openssl ca -in /tmp/http.pem -out /etc/pki/CA/http.pem -days 365

提示相关确认请求输入 yes

至此证书以签署完毕 ,将  /etc/pki/CA/http.pem 拷贝至待签署客户端 即可

查看证书操作: openssl x509 -in /etc/pki/CA/http.pem -noout -serial -subject

openssl  加密解密基础知识

安全的目的: 保密性

完整性

可用性

常见加密算法:

对称加密算法: DES,3DES,AES,...

单向加密算法: md5,sha1,sha256,sha384,sha512 .....   (用于实现数据完整性)

公钥加密        :  和与之配对的私钥成对,用于数字签名,验证主体身份

密钥交换       : DH

httpS 协议的交互过程:

假设 A client  向 B server 发送页面访问请求

1. A 向 B 发送证书请求

包含内容:  A 当前http浏览器支持的加密算法与协议

支持的压缩算法

支持的协议类型 ssl  or   TLS 1.x

生成随机数  (用于与对端的随机数结合生成加密密钥,用于对端对称加密用)

2.  B 向A 发送自己的证书

包含内容:  确定通信加密算法与协议

确定通信协议版本  ssl   or  TLS 1.x

自己的证书

随机数

3.  A 验证B的证书

验证过程: 1. A使用CA的公钥解密B的证书

2. A使用单向加密算法对证书加密得到特征码,与证书特征码进行比对,确认证书完整性

3. 验证内容:

主体名称

证书有效期限

签发机构

证书是否被吊销

验证结束发送信息给B

发送内容:

一个随机数

编码变更通知 (表示随后的信息由双方协商的加密算法进行通信)

客户端握手结束

4.   B 受到 A 发来的第三个随机数 pre-master-key后,计算本次会话的密钥;

向客户端发送如下信息:

编码变更通知

服务端握手结束

openssl生成CA签署 及 加密解密基础的更多相关文章

  1. centos7.6使用openssl生成CA签署的证书个人实验笔记

    准备:客户端centos6.10  服务端Centos7.6 实验:客户端生成证书请求,服务端颁发证书,最后吊销其中一个证书 1.先在服务端上的/etc/pki/CA/目录生成rsa的私钥: 2.在服 ...

  2. 创建私有CA, 加密解密基础, PKI, SSL

    发现了一篇图文并茂的超棒的  加密解密, CA, PKI, SSL 的基础文章, 链接如下:https://blog.csdn.net/lifetragedy/article/details/5223 ...

  3. openssl pem密钥文件rsa加密解密例子

    准备工作 命令行加密解密,用与比对代码中的算法和命令行的算法是否一致 C:\openssl_test>openssl rsautl -encrypt -in data.txt -inkey pu ...

  4. OpenSSL生成CA证书及终端用户证书

    环境 OpenSSL 1.0.2k FireFox 60.0 64位 Chrome 66.0.3359.181 (正式版本)(32位) Internet Explorer 11.2248.14393. ...

  5. openssl与cryptoAPI交互AES加密解密

    继上次只有CryptoAPI的加密后,这次要实现openssl的了 动机:利用CryptoAPI制作windows的IE,火狐和chrome加密控件后,这次得加上与android的加密信息交互 先前有 ...

  6. 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间

    生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...

  7. RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密

    最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...

  8. PHP 生成公钥私钥,加密解密,签名验签

    test_encry.php <?php //创建私钥,公钥 //create_key(); //要加密内容 $str = "test_str"; //加密 $encrypt ...

  9. nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)

    前些天搭好了cas系统,这几天一致再搞nginx和cas的反向代理,一直不成功,但是走http还是测试通过的,最终确定是ssl认证证书这一块的问题,原本我在cas服务端里的tomcat已经配置了证书, ...

随机推荐

  1. java_3:JVM、JRE、JDK区别和联系

    首先 三者之间存在包含关系JVM + 核心类库 = JREJRE + java开发工具(javac.exe/jar.exe) = JDK 什么是JVM? 我们知道Java语言有一个独特的优点就是可以跨 ...

  2. Number()、parseInt()、parseFloat()、~~、~

    一.Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如 ...

  3. 46 求1+2+3+...+n 静态成员函数和静态变量

    题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 思路: 1)使用构造函数的方法,需要使用sta ...

  4. Rcnn/Faster Rcnn/Faster Rcnn的理解

    基于候选区域的目标检测器 1.  滑动窗口检测器 根据滑动窗口从图像中剪切图像块-->将剪切的图像块warp成固定大小-->cnn网络提取特征-->SVM和regressor进行分类 ...

  5. matlab练习程序(龙格库塔法)

    非刚性常微分方程的数值解法通常会用四阶龙格库塔算法,其matlab函数对应ode45. 对于dy/dx = f(x,y),y(0)=y0. 其四阶龙格库塔公式如下: 对于通常计算,四阶已经够用,四阶以 ...

  6. 若块级元素被设置为 display: table-cell 便无法设置宽度

    工作中,遇到表格的单元格中的 div 设置宽度无效,后来是发现 div 被设置为 display: table-cell ,后将其修改为 display: block 则设置的宽度生效.

  7. Python 基础之函数初识与函数参数

    一.函数初识 定义:满足某一个方法 满足某一个功能#(1)功能(包裹一部分代码 实现某一个功能 达成某一个目的)#(2)可以反复调用,提高代码的复用性,提高开发效率,便于维护管理#(3)函数的基本格式 ...

  8. ws2_32.dll的妙用与删除 (禁网)

    ws2_32.dll是Windows Sockets应用程序接口,用于支持Internet和网络应用程序.程序运行时会自动调用ws2_32.dll文件,ws2_32.dll是个动态链接库文件位于系统文 ...

  9. 【剑指Offer面试编程题】题目1352:和为S的两个数字--九度OJ

    题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输入: 每个测试案例包括两行: 第一行包含一个整数n和k, ...

  10. 如何使用Nexus搭建Maven私服

    如何使用Nexus搭建Maven私服 听语音 | 浏览:47 | 更新:2016-09-29 10:22 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅最快的到家服务,最优质的电脑清灰! ...