创建私有CA及证书颁布详解
一、CA证书简介
CA 也拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。 <摘自:百度>
二、建立私有CA
1、 建立私有CA方式:
小范围测试使用openssl
大范围维护大量证书企业使用OpenCA(对openssl进行了二次封装,更加方便使用)
2、基于openssl创建CA证书
(1)配置文件
/etc/pki/ tls/openssl.conf
(2)创建步骤
以CentOS6作为CA主机,IP地址为192.168.159.138和CentOS7作为证书请求主机,IP为192.168.159.139。
在CentOS6
(a)创建所需要的文件
[root@centos6/etc/pki/CA]#touch index.txt
#数据库索引文件
[root@centos6/etc/pki/CA]#echo 01 >serial
[root@centos6/etc/pki/CA]#cat serial
01
(b)创建私有密钥
[root@centos6/etc/pki/CA]#(umask 077;openssl genrsa -out private/cakey.pem 2048)
#生成密钥文件,加密长度为2048
[root@centos6/etc/pki/CA]#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 666
#生成CA自签证书
-new 生成新证书签署请求
-x509 专用于CA生成自签证书
-key 生成请求用到的私钥文件
-days # 证书的有效期限
-out /PATH/TO/SOMEFILE 证书保存路径
注意:上述划红线的地方必须与请求主机的信息相对应,必须是一个签证机构的信息。
在请求证书的主机上
为了使http加密传输步骤如下:
(a)创建存放密钥和CA证书的目录
[root@centos7~]#cd /etc/httpd/
[root@centos7/etc/httpd]#mkdir ssl
[root@centos7/etc/httpd]#cd ssl
(b)生成密钥文件
[root@centos7/etc/httpd/ssl]#openssl genrsa -out http.key 2048
(c)生成证书请求文件
[root@centos7/etc/httpd/ssl]#openssl req -new -key http.key -out http.csr -days 365
图中画圆圈的必须与上述图中的相对应,否则签证不成功。
(d)将生成请求的证书文件发送到CA主机上签署
[root@centos7/etc/httpd/ssl]#scp http.csr root@192.168.159.138:/etc/pki/CA/certs/
在CentOS6 CA主机中签署证书
[root@centos6/etc/pki/CA]#ls certs/
#查看是否成功传送到指定目录下
http.csr
[root@centos6/etc/pki/CA]#openssl ca -in certs/http.csr -out certs/http.crt
#对证书进行签署
[root@centos6/etc/pki/CA]#scp certs/http.crt root@192.168.159.139:/etc/httpd/ssl/
#将签署证书回传至证书请求主机中
在CentOS 7 请求主机上查看是否回传成功
[root@centos7/etc/httpd/ssl]#ls
http.crt http.csr http.key
[root@centos7/etc/httpd/ssl]#rm -rf http.key
#为了安全,可以删除此文件
如果我们想对此证书吊销如何操作呢?
在CentOS 6 CA主机上
(a)获取吊销证书的serial
[root@centos6/etc/pki/CA]#openssl x509 -in certs/http.crt -noout -serial -subject
-in 输入证书文件
-noout 证书不输出
-serial 打印serial值
-subject 打印证书拥有者名字
(b)先根据客户提交的serial与subject信息对比检验是否与index.txt文件信息是否一致。如果一致吊销证书。
[root@centos6/etc/pki/CA]#openssl ca -revoke newcerts/01.pem
(c)生成吊销证书标号
注意:只有第一次吊销证书时才执行此命令。
[root@centos6/etc/pki/CA]#echo 01 >crlnumber
(d)更新证书吊销列表
[root@centos6/etc/pki/CA]#openssl ca -gencrl -out thisca.crl
(e)查看证书吊销列表文件
[root@centos6/etc/pki/CA]#openssl crl -in thisca.crl -noout -text
如何给子CA颁发证书?
在上述过程中,CentOS7 给子CA颁发证书步骤如下:
(a)在CentOS 7中创建秘钥
[root@centos7~]#cd /etc/pki/CA/
[root@centos7/etc/pki/CA]#openssl genrsa -out private/cakey.pem 2048
(b)生成CA请求
[root@centos7/etc/pki/CA]#openssl req -new -key private/cakey.pem -out subca.csr
(c)将CA请求复制到主 CA上
[root@centos7/etc/pki/CA]#scp subca.csr 192.168.159.138:/etc/pki/CA/certs/
(d)在CnetOS 6上签署
[root@centos6/etc/pki/CA]#openssl ca -in certs/subca.csr -out certs/subca.crt -days 100
(e)将签署过的返回给CentOS 7
[root@centos6/etc/pki/CA]#scp certs/subca.crt 192.168.159.139:/etc/pki/CA/cacert.pem
(f)在CentOS 7.2主机上向CentOS 7申请CA
[root@localhost/app/ftp]#openssl genrsa -out ftp.key 2048
[root@localhost/app/ftp]#chmod 600 ftp.key
[root@localhost/app/ftp]#scp ftp.csr 192.168.1.109:/etc/pki/CA/certs/
(g)在CentOS 7上签署并返还
[root@centos7/etc/pki/CA]#openssl ca -in certs/ftp.csr -out ftp.crt -days 20
[root@centos7/etc/pki/CA]#scp certs/ftp.csr 192.168.1.106:/app/ftp
这样就完成了证书的签发,就可以安装证书并且使用了。
创建私有CA及证书颁布详解相关推荐
- Openssl加密文件及创建私有CA及证书
# cat /etc/redhat-release CentOS release 6.6 (Final) # uname -r 2.6.32-504.el6.x86_64 首先我们先演示加密文件的方式 ...
- 网络通信中的加密解密及openssl和创建私有CA详解
本文大纲: 1.为什么网络通信要进行数据加密? 2.数据加密方式有哪些?它们是如何进行加密的? 3.通信中是如何进行数据加密传输的? 4.https方式进行数据传输的具体流程 5.SSL 的实现工具O ...
- 自建ca根证书_如何创建私有 CA 并签发证书
为什么需要自己的 CA? 因为公共 CA (比如排名前几的这几家:Comodo, Symantec, GlobalSign, DigiCert, StartCom)颁发证书要收费,而且价格很贵.当然现 ...
- https证书互信解决方案—创建私有CA并申请证书
前言 https相较于http而言有很大的安全性,当我们一个服务开启https并与之通信时,往往需要证书的认证,如果是浏览器访问服务,只要在浏览器内设置信任证书即可,而如果是程序内访问服务(如java ...
- 自签名证书和私有CA签名的证书的区别 创建自签名证书 创建私有CA 证书类型 证书扩展名
自签名的证书无法被吊销,CA签名的证书可以被吊销 能不能吊销证书的区别在于,如果你的私钥被黑客获取,如果证书不能被吊销,则黑客可以伪装成你与用户进行通信 如果你的规划需要创建多个证书,那么使用私有CA ...
- 加密和解密技术基础、PKI及创建私有CA
一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保 ...
- openssl 创建私有CA
创建私有CA: openssl的配置文件:/etc/pki/tls/openssl.cnf 1.创建所需要的文件 #touch index.txt #echo 01 > serial # 2.给 ...
- 创建私有CA及私有CA的使用
CA分为公共信任CA和私有CA,若想使用公共信任的CA需要很多的money,如果想要在有限范围内使用CA认证方式,可以自己创建一个.下面了解一下CA及其创建方法: CA的配置文件为 /etc/pki/ ...
- linux加密解密基础、PKI及SSL、创建私有CA
linux加密解密基础.PKI及SSL.创建私有CA 1.加密解密基础: 数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡 ...
最新文章
- proxool+spring 数据池连接相关注意点
- datagridview cell字体大小自适应_CELL:肿瘤为何“饿不死”?神经元为饥饿胰腺癌提供营养支持...
- CodeForces - 632E Thief in a Shop 完全背包
- 组态王怎么做超级曲线_鱼怎么做才好吃?试试这个方法,吃着过瘾,还超级下饭!(收藏)...
- javaWeb中的Model1和Model2
- Logstash实践: 分布式系统的日志监控
- Graylog日志管理系统---搜索查询方法使用简介
- 阿里架构师的工作总结:Spring Cloud在架构演进中起到的作用
- Linux ext2, ext3, ext4 文件系统解读[4]
- 如何恢复按下Shift + DELETE键永久删除的文件和资料夹?
- 第十六周项目3电子词典
- C++实现超简单的文件加密
- vue_drf之视频接口
- C++语言的基本符号与词汇
- sau交流学习社区第三方登陆github--oauth来实现用户登录
- [转]开源协议MIT、GPL、LPGL、BSD、MIT的区别
- 浮点数存储方式理解,浮点数和整数之间的转换
- 计算机教学设计与反思,[信客教案及反思] 信息技术教案课后反思
- 传输层协议之TCP协议详解
- CSAPP - LAB 1 datalab