实验:建立私有CA,并实现颁发证书(20190123 下午第一节)

证书的申请过程:
centos6是需要证书服务的主机 centos7为服务器
1、建立CA
1、[[email protected] ~]# tree /etc/pki/CA
/etc/pki/CA
├── certs
├── crl
├── newcerts
├── private
[[email protected] ~]# cd /etc/pki/CA
[[email protected] CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048 ) :用umask 077/066权限来保证安全,此时已生成私钥文件
[[email protected] ~]# tree
|── certs
├── crl
├── newcerts
├── private
│?? └── cakey.pem
此时cakey.pem 文件生成,权限为066
2、[[email protected] CA]# openssl req -new -x509 -key privavte/cakey.pem -out cacert.pem -days 3650

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:devops
Common Name (eg, your name or your server‘s hostname) []:www.magedu.com
Email Address []:[email protected]
此处需要填写登记信息,1;2;4项需要和后面的一样
[[email protected] CA]# cat cacert.pem 此处生成了cacert.pem文件 可以用openssl x509 -incacert.pem -noout -text 以文本方式展示,也可以sz到windows中 更改为crt后缀,即可在桌面查看
2、申请证书
将软件中用到的证书和私钥存放在某个目录中
A、先生成私钥:[[email protected] data]# (umask 066;openssl genrsa -out /test/app.key 1024)
B、然后生成证书申请:[[email protected] data]# openssl req -new -key /test/app.key -out /test/app.csr

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:magedu
Organizational Unit Name (eg, section) []:devops
Common Name (eg, your name or your server‘s hostname) []:www.magedu.com
Email Address []:[email protected]
此处需要填写登记信息,1;2;4项需要和前面的一样 此处生成了文件app.csr
C、然后把app.csr传到centos7上审核 若通过就能颁发证书:scp app.csr 192.168.93.253:/etc/pki/CA 输入centos7的密码即可完成 (放此目录中比较方便)
此时去颁发证书会报错,如下:
[[email protected] CA]# openssl ca -in app.csr -out certs/app.crt -days 100
/etc/pki/CA/index.txt: No such file or directory
/index.txt:是存放证书的编号,主题,状态等的文件
D、[[email protected] CA]# > index.txt 将此文件建立起来,会利用该文件自动填充证书的信息
此时去颁发证书会报错,如下:
[[email protected] CA]# openssl ca -in app.csr -out certs/app.crt -days 100
因为缺少编号 系统不知该从哪号开始
[[email protected] CA]# echo 09 > serial 设置编号从09开始,顺便将文件建立起来
Cat serial --> 09
E、[[email protected] CA]# openssl ca -in app.csr -out certs/app.crt -days 100
Certificate is to be certified until May 4 02:59:37 2019 GMT (100 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
此处有两次确认信息,是否要颁发证书
F、[[email protected] CA]# tree 此为生成证书效果图
.
├── app.csr
├── cacert.pem
├── certs
│?? └── app.crt
├── crl
├── index.txt
├── index.txt.attr
├── index.txt.old
├── newcerts
│?? └── 09.pem
├── private
│?? └── cakey.pem
├── privkey.pem
├── serial
└── serial.old
G、[[email protected] CA]# cat index.txt
V 190504025937Z 09 unknown /C=CN/ST=beijing/O=magedu/OU=beiguo/CN=www.magedu.com/[email protected] 表明此证书文件有效
[[email protected] CA]# cat serial ---> 0A 此处为09后的下一个数
Certs/app.crt 与 newcerts/09.pem 一样 后者为自动生成
此时,将证书文件,私钥文件,CA的证书文件传给用户centos6,用户即可使用。
H、[[email protected] CA]# scp certs/app.crt 192.168.93.253:/data
[email protected]‘s password:
app.crt 100% 3883 4.0MB/s 00:00
J、 [[email protected] data]# ll
total 28
-rw-r--r-- 1 root root 3883 Jan 24 11:22 app.crt
-rw-r--r-- 1 root root 704 Jan 24 10:24 app.csr
-rw------- 1 root root 891 Jan 24 10:22 app.key
此处app.key 为原来的私钥,app.crt 为生成的证书,app.csr 文件就没用了,申请完就没用了。所以 app.key,app.crt 就能给需要加密的软件使用了
K、将centos7上/CA文件中的:-rw-r--r-- 1 root root 1436 Jan 24 10:14 cacert.pem 该证书文件也拷贝到centos6中,因为某些软件会用到
到此证书已申请完成
L、[[email protected] CA]# sz certs/app.crt 可以将之sz到windows桌面查看,因为是crt后缀,即可双击打开,因为证书无法验证,所以我们要导入到进去,双击按照步骤即可完成。

吊销证书:
可以先查看证书状态:
Openssl x509 -in certs/app3.crt -noout -subject/-issuer/-dates等等
[[email protected] CA]# Openssl ca -revoke newcerts/0B.pem
Openssl ca -status 0B ---> 0B=revoke 标明0B证书已被吊销 此时证书只有自己知道吊销,别人不知道,所以要生成吊销列表,
Openssl ca -gencrl -out crl.pem
将报错,找不到/etc/pki/CA/crlnumber 该文件存放吊销编号
Echo 09 > crlnumber
Openssl ca -gencrl -out crl.pem 此时已生成吊销列表,
Tree --> 会显示新的crl.pem的列表, 此时可将crl.pem传出windows 修改格式后即可查看
最后要传到互联网,让用户知道该证书已吊销。
若吊销错误,取消吊销,方法:
Mv index.txt index.txt.bak
Mv index.txt.old index.txt
Openssl ca -statys 0B ---> 0B =Valid 标明 0B证书成功恢复

Openssl verify - CAfile cacert.pem certs/app.crt
该命令是查看该证书app.crt是否是我颁发的,检验证书的有效性,若是,即可显示OK,

总结步骤:
cd /etc/pki/CA
(umask 077;openssl genrsa -out private/cakey.pem 2048 )
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

index.txt
echo 09 > serial
2 申请证书
(umask 066;openssl genrsa -out /test/app.key 1024)
openssl req -new -key /test/app.key -out /test/app.csr
3 颁发证书
openssl ca -in /test/app.csr -out /etc/pki/CA/certs/app.crt -days 100
此时,将证书文件,私钥文件,CA的证书文件传给用户centos6,用户即可使用。
4 吊销证书
openssl ca -revoke newcerts/0B.pem
openssl ca -status 0B
echo 09 > crlnumber
openssl ca -gencrl -out /etc/pki/CA/crl.pem

若前文中的1,2,4,三项不一致,出现的问题分析,(在同一计算机就可实验)如下:
1、先生成新的私钥文件: (umask 066;openssl genrsa -out /data/app2.key 1024)
2、然后生成证书申请:openssl req -new -key /data/app2.key -out /data/app2.csr
将登记信息故意填的不一样,此时,/data/下生成了两个文件,app2.csr app2.key
3、颁发证书: openssl ca -in /data/app2.csr -out certs/app2.crt -days 200
此时,报错信息为,组织机构是不一样的,
解救方法:
修改配置文件,vim /etc/pki/tls/openssl.cnf 将1,2,4,三项改为不一样即可。将证书从新写一遍即可,打开tree ---> 会显示:cat serial 变为0B ; cat index.txt 将显示两行 表明该文件生成了第二个数据,即新的证书申请成功!

注意:若提交一个证书申请,不能够颁发多次,因为在/CA中,cat index.txt.attr 中会显示 “unique_subject -yes” 标明主题必须唯一,所以不可颁发多次。 将“yes” 改为“no”即可,颁发多次。因为他是工作目录,优先级比配置文件的高,所以只有修改此处的文件,vim index.txt.attr 将yes改为no,才可做到颁发多次的目的。

原文地址:http://blog.51cto.com/14128387/2346208

时间: 2024-10-12 17:05:12

实验:建立私有CA,并实现颁发证书(20190123 下午第一节)的相关文章

加密、解密,以及OpenSSL建立私有CA

概述: 理论部分主要介绍了: 对称加密.非对称加密.单向加密.密钥交换.CA.PKI 操作部分主要有: 对称加密.非对称加密.单向加密的实现,已经openssl常用功能,生成密码.生成随机数已经使用openssl创建私有CA 系统环境说明: [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.6 (Final) [[email protected] ~]# uname -rm 2.6.32-504.el6.x86_64

OpenSSL建立私有CA

yum安装OpenSSL: 提示已经安装过了. openssl的主配置文件:/etc/pki/tls/openssl.cnf [CA_default] dir:CA的主目录 certs:已颁发证书的存储位置 crl_dir:已吊销证书的存储位置 database:证书索引文件 new_certs_dir:新颁发证书的存储位置 certificate:CA证书文件 serial:证书颁发时的当前序列号 crlnumber:吊销证书的当前序列号 crl:当前使用的CRL private_key:CA

建立私有CA

CA:Cerieificate Authority证书颁发机构主要负责证书的颁发.管理以及归档和吊销.证书内包含了拥有证书者的姓名.地址.电子邮件帐号.公钥.证书有效期.发放证书的CA.CA的数字签名等信息.证书主要有三大功能:加密.签名.身份验证. 由于向国际根CA注册证书是要钱的,所以通常在公司内部我们需要用到证书进行安全通信时,可以自己搭建一个公司内部的CA,来满足公司内网的安全传输需求. 现在我们就来建立一个私有CA,并申请证书. openssl的配置文件:/etc/pki/tls/op

OpenSLL之建立私有CA

一.CA证书的格式 数字证书的格式(x.509 v3): 版本号(version) 序列号(serial number):CA用于惟一标识此证书: 签名算法标志(Signature algorithm identifier) 发行者的名称:即CA自己的名称: 有效期:两个日期,起始日期和终止日期: 证书主体名称:证书拥有者自己的名字 证书主体公钥信息:证书拥有者自己的公钥: 发行商的惟一标识: 证书主体的惟一标识: 扩展信息: 签名:CA对此证书的数字签名: 二.建立自己的CA 使用OpenSS

加密、解密   以及OpenSSL建立私有CA

加密.解密,以及OpenSSL建立私有CA 加密技术是互联网最常用的安全保密手段,其利用技术手段把重要的数据加密后传送,到达目的地后再用相同或不同的手段进行解密. 加密技术包括两个元素:算法和密钥 常用的加密技术:对称加密.非对称加密.单向加密 以上几种加密技术各有千秋,经常组合起来使用 1.对称加密 加密和解密使用同一个密钥,将明文分隔成固定大小的块,逐个进行加密: 常见算法:DES  3DES  Twofish  IDEA  IDEA  CAST5  RC6 Blowfish 2.非对称加密

加密、解密以及OpenSSL建立私有CA

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用.大多数开源程序,商业软件加密核心都是基于openssl实现的. 数据安全性的基本法则: (1)数据的保密性:信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密.加密的过程需要用到密钥来加密数据然后再解密.没有了密钥,就无法解开加密的数据.数据加密之后,只有密钥要用一个安全的方法传送.加密过的数据可以公开地传送. (2)完整性:

linux学习之路之创建私钥CA及使用CA为客户端颁发证书

创建CA(Certificate Authority) CA的储存格式主要有2种:x509和pkcs12 x509是目前最主流的CA储存格式,在x509格式的证书中,储存的内容主要有: 证书的公钥和使用期限 证书的合法拥有着 证书该如何被使用 CA的信息 CA签名的校验码 默认情况下,TCP/IP模型和OSI模型,并没有实现数据的加密,而要实现数据的加密需要使用TLS/SSL协议,TLS和SSL在有些Linux版本上实现的机制是相同的,因此在这里我们之介绍SSL协议 SSL(Secure Soc

基于ssl协议和openssl工具建立私有CA

前言 要自建CA需先了解openssl工具和ssl协议还有各加密类型 ssl(Secure Socket Layer)安全套接字层当前版本为3.0,浏览器与Web服务器之间的身份认证和加密数据传输,它工作在传输层和各应用层之间,用户可以选择是否使用ssl进行传输,选择ssl协议将调用ssl函数库,端口也会发生变化. 加密类型 对称加密:任意加密数据块和流的内容,加密和解密用同一个密码, 通常明文通过算法和密钥生成密文,再由接受者用相同的密钥和算法解密获取明文. 算法:(DES.3DES.AES现

使用 OpenSSL 创建私有 CA:3 用户证书

OpenSSL 创建私有 CA 三部曲:使用 OpenSSL 创建私有 CA:1 根证书使用 OpenSSL 创建私有 CA:2 中间证书使用 OpenSSL 创建私有 CA:3 用户证书 在前文<使用 OpenSSL 创建私有 CA:2 中间证书>中我们介绍了如何创建中间证书,并生成证书链.本文我们将介绍如何为应用生成用户证书(web 站点的 ssl 证书),并把证书部署到应用服务器上和客户端上.说明:本系列文章的演示环境为 Ubuntu 18.04,OpenSSL 的版本为 1.1.0g.