安全认证系列之-(三)成为数字认证机构CA
数字证书认证机构(英语:Certificate Authority,缩写为 CA),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA 机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。
想要从商业 CA 获取数字证书需要向其支付一定的金钱,不过我们不用那么破费,可以自己成为 root CA,为自己发布证书。
我们将成为 root CA,并为该 CA 生成证书。不像其他 CA 需要被另外的 CA 认证, root CA 的证书是自己为自己认证的,一般 Root CA 的证书都已事先加载在大多数操作系统,浏览器或者依赖 PKI 的软件之中了。Root CA 的证书是被无条件信任的。
我们先找到openssl.cnf文件,拷贝一份到我们自己的目录文件,版本以及查找文件路径命令如下:
[root@instance-n4r06itt lib]# openssl version -a
OpenSSL 1.0.2k-fips 26 Jan 2017
built on: reproducible build, date unspecified
platform: linux-x86_64
options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/pki/tls"
engines: rdrand dynamic
[root@instance-n4r06itt lib]# cd /etc/pki/tls
[root@instance-n4r06itt tls]# ll
total 24
lrwxrwxrwx. 1 root root 49 May 30 2018 cert.pem -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
drwxr-xr-x. 2 root root 4096 Nov 5 10:59 certs
drwxr-xr-x. 2 root root 4096 Nov 5 10:59 misc
-rw-r--r--. 1 root root 10923 Aug 6 21:44 openssl.cnf
drwxr-xr-x. 2 root root 4096 Aug 9 09:37 private
[root@instance-n4r06itt tls]# cp -a openssl.cnf /usr/src/
需要的文件夹和文件配置在 openssl.cnf 中都能找到:
在工作目录下我们需要创建如下这些文件夹和文件,这里给出文件目录树:
.
|-- demoCA
| |-- certs
| |-- crl
| |-- index.txt
| |-- newcerts
| `-- serial
`-- openssl.cnf
index.txt 只要创建空文件就行,至于 serial 文件,内容必须是字符串格式的数字(比如 1000)
mkdir demoCA
cd demoCA
mkdir certs crl newcerts
touch index.txt
echo '1000' > serial
cd ..
一旦你设置好 openssl.cnf 就可以创建和发布证书了。
数字证书认证机构(CA)
我们需要为自己的 CA 生成自签名证书。这意味着该机构是被信任的,而它的证书会作为 root 证书。你可以运行以下命令为 CA 生成自签名证书:
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
另外一种方式:
# 生成根证书私钥
openssl genrsa -out ca.key 2048 # 制作根证书
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
它要求你提供信息和密码,可千万别忘记密码了(我这里输入的密码是 123456),因为每次为别人签证书的时候你都需要用到密码。信息包括城市名,通用名等等。命令的输出存储在两个文件中:ca.key 与 ca.crt 中。文件 ca.key 包括 CA 的私钥,而 ca.crt 包含了公钥证书。
至此,我们是 root CA 了。
安全认证系列之-(三)成为数字认证机构CA相关推荐
- 密码学读书笔记系列(三):《商用密码应用与安全性评估》
密码学读书笔记系列(三):<商用密码应用与安全性评估> 思考/前言 第1章 密码基础知识 1.1 密码应用概述 1.2 密码应用安全性评估(密评)的基本原理 1.3 密码技术发展 1.4 ...
- 程序员之网络安全系列(三):数据加密之对称加密算法
系列目录: 程序员之网络安全系列(一):为什么要关注网络安全? 程序员之网络安全系列(二):如何安全保存用户密码及哈希算法 程序员之网络安全系列(三):数据加密之对称加密算法 程序员之网络安全系列(四 ...
- π130E31 3000Vrms 200Mbps高速率 超低功耗 三通道数字隔离器代替NSi8130N1
π130E31 3000Vrms 200Mbps高速率 超低功耗 三通道数字隔离器代替NSi8130N1,具有出色的性能特 征和可靠性,整体性能优于光耦和基于其他原理的数字隔离器 产品. 智能分压技术 ...
- Java 源码学习系列(三)——Integer
Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包含一个 int 类型的字段. 此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还 ...
- Cordova入门系列(三)Cordova插件调用 转发 https://www.cnblogs.com/lishuxue/p/6018416.html...
Cordova入门系列(三)Cordova插件调用 版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心内容 ...
- 新华三首发数字大脑计划;微软进军物联网领域?说好的三星折叠屏发布会,就这样不开了?Google 发布小型芯片 Jacquard...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- IDEA快捷键拆解系列(三):Edit篇
这是IDEA快捷键拆解系列的第三篇. 以下是关于Edit导航项及其每一子项的拆解,其中,加粗部分的选项是博主认为比较重要的. Edit Undo ( 撤销 ) Ctrl + Z Redo ( ...
- 微课系列(三):Python列表中存储的是元素的引用
技术要点:在Python中,变量不直接存储值,而是存储值的引用.同样,在列表.元组.字典.集合等容器类对象中也是存储的元素值的引用. 以列表为例,当列表与整数相乘进行元素重复时,是对引用进行重复.这样 ...
- Fastify 系列教程三 (验证、序列化和生命周期)
Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) Fastify ...
最新文章
- Kubernetes(7) Service Network (advanced)
- OAuth2基本概念和运作流程
- GraphPad Prism绘制时间轴图
- 硬件知识:USB3.0和USB2.0的区别,看完你就懂了!
- 基于按位与的 就散策略_比较散列策略
- 百度SEO最新小某云商城系统源码 免授权V1.61版
- C++ Templates之模板元编程
- (8)Node.js 模块介绍
- Android Studio安装Flutter
- Beta版本测试报告以及Beta版本发布说明
- SpringBoot 整合 MyCat 实现读写分离
- Mysql学习总结(39)——49条MySql语句优化技巧
- 物联网智慧校园建设系统源码
- MOS管烧毁,90%以上的硬件工程师都会遇到的问题!
- CANoe.Diva之cdd文件配置
- 人工神经网络预测血药浓度计算公式
- Android Support Library介绍
- 图形界面 I: 用于表单按钮的函数与删除界面元素 (第四章)
- 基于python的管理系统_基于ssm的管理系统_基于python管理系统
- php线下支付,Paypal线下支付模块,附下载地址_PHP教程
热门文章
- int, short, long ,long long 区别
- 硬件常用测试软件整理,方便大家下载
- 本科/研究生阶段--嵌入式学习路线(尤其适用于机械僧)
- Windows/MFC 如何区分鼠标双击和两次单击
- iOS冰与火之歌(番外篇) - 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权
- PIE.中国人口密度
- 结合具体案例说明PEid工具的具体使用方法、用途和含义。
- android 心形进度条,心形进度条
- MySQL limite用法
- 计算机如何获取目标ip,如何在自己的电脑查看别人电脑的ip地址?教你,马上成为电脑高手...