openssl生成证书

openssl ca(签署和自建CA)

北慕城南 提交于 2019-11-29 03:33:58
openssl ca(签署和自建CA) 自建CA总结: #建立数据库索引文件和序列文件 [root@linux5 ~]# touch /etc/pki/CA/index.txt [root@linux5 ~]# echo "01" > /etc/pki/CA/serial #生成私钥 [root@linux5 ~]# openssl genrsa -out /etc/pki/CA/private/cakey.pem #创建CA请求文件 [root@linux5 ~]# openssl req -new -key /etc/pki/CA/private/cakey.pem -out rootCA.csr #自签署 [root@linux5 ~]# openssl ca -selfsign -in rootCA.csr #把自签的证书放到/etc/pki/CA/下 [root@linux5 ~]# cp /etc/pki/CA/newcerts/01.pem /etc/pki/CA/cacert.pem 然后使用该CA给老王颁发证书总结 #老王生成私钥 [wang@linux5 ~]$ openssl genrsa -out wangkey.pem #老王生成请求文件 [wang@linux5 ~]$ openssl req -new -key wangkey.pem -out

CA证书和TLS介绍

拥有回忆 提交于 2019-11-28 21:01:46
数字签名 用自己的私钥给数据加密就叫数字签名 公钥传输威胁 在A和B的通信中,C可以把自己的公钥发给A,让A把C的公钥当成B的公钥,这样的话.B拿到加密数据反而无法解密,而C却可以解密出数据.从而实现C截获AB之间的数据 所以在两者的通信中必须要对公钥的来源进行确认 A和B如果想安全交换公钥,就必须通过CA(证书颁发机构) 证书的通信过程 A和B首先都内置了CA的公钥 根CA的证书是自己给自己签名的(自签名) CA和证书 PKI: Public Key Infrastructure 签证机构:CA(Certificate Authority) 注册机构:RA 证书吊销列表:CRL 证书存取库: X.509:定义了证书的结构以及认证协议标准 版本号 序列号 签名算法 颁发者 有效期限 主体名称 主体公钥 CRL分发点 扩展信息 发行者签名 SSL SSL(Secure Socket Layer)和TLS(Transport Layer Security )本身是一个东西 实现功能: 机密性 认证 完整性 重放保护(正确同样的数据不能重复发送) 两阶段协议,分为握手阶段和应用阶段 握手阶段(协商阶段): 客户端和服务器端认证对方身份(依赖于PKI体系,利用数字证书进行 身份认证),并协商通信中使用的安全参数、密码套件以及主密钥. 后续通信使用的所有密钥都是

MySQL 使用 SSL 登录

拈花ヽ惹草 提交于 2019-11-28 17:29:23
整个过程就是创建三张证书(包括私钥):自签根证书、服务器证书、客户端证书。然后配置服务器和客户端,开启 SSL 登录。 1、创建根证书 首先创建一张自签根证书(CA),先生成私钥。 openssl genrsa 2048 > ca-key.pem 然后生成公钥,根证书就制作完毕了。其中需要填写很多信息,直接回车就可以了,唯独要注意的是根证书的 Common Name 不能和后面签发的服务器、客户端证书相同,否则后面使用 SSL 登录的时候会出现错误 ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1) openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem 2、创建服务器证书 先生成签发请求 server-req.pem openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem 生成私钥 server-key.pem openssl rsa -in server-key.pem -out server-key.pem 最后从根证书根据签发请求生成服务器证书(公钥)

OpenSSL创建证书

二次信任 提交于 2019-11-28 15:17:49
使用OpenSSL创建证书。采用的OS为CentOS7. 1. 修改OpenSSL的配置文件 vim /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. #unique_subject = no # Set to 'no' to allow creation of # several ctificates with same subject. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/my-ca.crt # The CA certificate serial = $dir/serial # The current serial number crlnumber = $dir/crlnumber # the current crl number #

keytool和openssl生成的证书转换

本秂侑毒 提交于 2019-11-28 13:33:41
keytool和openssl生成的证书转换 keytool生成证书示例 生成私钥+证书: keytool -genkey -alias client -keysize 2048 -validity 3650 -keyalg RSA -dname "CN=localhost" -keypass $client_passwd -storepass $client_passwd -keystore ClientCert.jks 生成文件文件ClientCert.jks。 导出证书: ~/tmp/cert# keytool -export -alias client -keystore ClientCert.jks -storepass $client_passwd -file ClientCert.crt Certificate stored in file <ClientCert.crt> ~/tmp/cert# ll total 8 -rw-r--r-- 1 root root 715 Jun 14 20:24 ClientCert.crt -rw-r--r-- 1 root root 2066 Jun 14 20:21 ClientCert.jks keytool工具不支持导出私钥。 openssl生成证书示例 生成公钥私钥: ~/tmp/cert# openssl genrsa

EMQ X 服务器 SSL/TLS 安全连接配置指南

我的梦境 提交于 2019-11-28 08:07:41
目录 前言 自签 CA 并签发证书 创建证书 单向认证测试 双向认证测试 自签二级 CA 并签发证书 创建证书 单向认证测试 双向认证测试 前言 EMQ X 内置对 TLS/DTLS 的支持,包括支持单双向认证、X.509 证书等多种身份认证和 LB Proxy Protocol V1/2 等。你可以为 EMQ X 支持的所有协议启用 TLS/DTLS,也可以将 EMQ X 提供的 HTTP API 配置为使用 TLS。本文以自签证书的方式介绍如何在 EMQ X 中为 MQTT 启用 TLS。 自签 CA 并签发证书 创建证书 1.准备 $ docker pull centos:centos7 $ docker run -it --name centos7 centos:centos7 /bin/sh $ yum install openssl $ yum install vim $ mkdir /opt/ssl $ cd /opt/ssl/ $ cp /etc/pki/tls/openssl.cnf ./ $ rm -rf /etc/pki/CA/*.old ## 生成证书索引库数据库文件 $ touch /etc/pki/CA/index.txt ## 指定第一个颁发证书的序列号 $ echo 01 > /etc/pki/CA/serial $ rm -rf certs

利用openssl实现RSA加密

核能气质少年 提交于 2019-11-28 01:29:26
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密,RSA加密明文长度受到秘钥长度和加密填充方式的约束,RSA密钥长度随着保密级别提高,增加很快。 RSA秘钥位数主要有1024位和2048位两种长度,秘钥有两种格式:PKCS#1和PKCS#8 1、 PKCS#1和PKCS#8两种格式区别 PKCS#1: 定义了RSA公钥函数的基本格式标准,特别是数字签名。它定义了数字签名如何计算,包括待签名数据和签名本身的格式;它也定义了PSA公/私钥的语法。 PKCS#8: 私钥信息语法标准。PKCS#8定义了私钥信息语法和加密私钥语法,其中私钥加密使用了PKCS#5标准。生成RSA密钥对。现在一般都用PKCS#8 格式证书较多,PKCS#1格式证书转换为PKCS#8 可以通过工具进行转化。 公钥都是以“-----BEGIN PUBLIC KEY-----”开头,“-----END PUBLIC KEY-----”结尾, 格式如下: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCBpdpJ2YK4iYoB69iwZwgWHErh X15RyXRtpTMnN2jAtsbLed

Linux 从源码编译安装 OpenSSL

人盡茶涼 提交于 2019-11-27 14:30:55
OpenSSL 是一款开源的 SSL 软件包,采用 SSL 的公开密钥技术,用于实现传输层的通信加密功能。OpenSSL 支持 Linux、Windows、BSD、Mac 等平台,功能强大,包含丰富的密码算法库,SSL 协议库和应用程序。 一、SSL 基本常识 1.1、什么是 SSL? 安全套接层(Secure Sockets Layer,SSL), 最初由 netscape 公司设计,建立在传输层的安全通信协议,采用公开密钥体系的证书认证方式来确保客户端和 SSL 服务器之间的通信安全。 1.2、SSL 认证流程 SSL 客户端在 TCP 连接建立之后,发出一个消息(包含了客户端所支持的算法列表)给服务器端,然后服务器端返回一个数据包(确定了这次通信所需算法)和 SSL 服务器端的证书(包含了公钥)给客户端。客户端随后会用收到的公钥将消息加密再传送,该加密消息只能用 SSL 服务器端私钥解密,即便中途被截取也无法获知内容。 二、编译安装 OpenSSL 2.1、准备工作 系统版本: Ubuntu -10.10-Server-I386 更新源:apt-get update 升级软件:apt-get upgrade 更新系统:apt-get dist-upgrade 2.2、查看OpenSSL版本 部分 Linux 系统已默认安装了 OpenSSL 0.9.8,特别是 VPS

项目二. 网络安全传输系统

不羁岁月 提交于 2019-11-27 13:37:16
项目二. 网络安全传输系统 sprint0-产品规划与设计 第1课-产品功能展示与模型设计 1. 功能 在底层开发上,先进行驱动开发,再往后发展就是对应的系统开发。要成为系统开发的工程师不了解应用编程的话也是行不通的。 本项目的服务器运行在pc的虚拟机上,客户端则安排在开发板上。我们在虚拟机上可以运行客户端,接下来我们在开发板上进行登录。可以选择的选项有: update Files Download Files Exit 也就是客户端可以将文件进行上传和下载服务器上的内容。 2. 模型 服务器: 在账号管理子系统中我们可以使用直接的编程来完成,但是我们是无法处理更加深入的问题的。所以我们选择了嵌入式数据库的处理方法。 对于传输子系统,我们为了安全的特性,我们进行相应的加密传输机制--OpenSSl机制。在服务器上的设计上,我们选择并发,为了更好的优化,选择线程池技术。 客户端: 只有一个传输子系统--OpenSSl机制。 sprint1-传输子系统设计 第2课-系统程序框架搭建 为了完成我们的目的,我们采用化整为零的思想。即先搭建不带安全传输系统的程序,再把安全传输的知识应进去。 我们先编写下面两个程序: client.c #include <stdio.h> #include <sys/types.h> #include <netinet/in.h> #include <sys

什么是openssl

不羁岁月 提交于 2019-11-26 13:58:37
openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。要想了解openssl,有几个前置的概念需要先熟悉一下: SSL SSL的全名叫做secure socket layer(安全套接字层),最开始是由一家叫网景的互联网公司开发出来,主要是防止信息在互联网上传输的时候不被窃听或者篡改,后来网景公司提交SSL给ISOC组织做标准化,改名为TLS。 有些同学可能会好奇,说好好的数据怎么就被窃听以及修改呢?这个其实是很容易的,如果你上网连得的是wifi,那么你的数据一定会经过wifi路由器,通过对路由器做些手脚就可以拿到这些数据。 非对称加密 在数学上有这样一个现象:给两个质数,很容易算出他们的乘积,但是给你一个很大的数,你很难分解出两个质数,让他们的乘积正好等于这个很大的数。 非对称加密就是基于以上的现象产生的,用一个密钥对数据进行加密,然后可以使用另外一个不同的密钥对数据进行解密,这两个密钥就是:公钥和私钥。 公钥和私钥是可以相互推导的,根据私钥,你可以很容易的算出公钥,但是根据公钥,你却很难很难算出私钥,在互联网上,私钥一般由服务器掌握,公钥则由客户端使用。根据公钥,理论上需要花费地球上所有的计算机计算数万年才能算出私钥,所以认为是非常安全的。 数字签名 将报文使用一定的HASH算法算出一个固定位数的摘要信息,然后用私钥将摘要加密,连同原来的报文一起