一步步实现Linux中的CA认证
原创
©著作权归作者所有:来自51CTO博客作者d5533630的原创作品,请联系作者获取转载授权,否则将追究法律责任
我们知道,当客户端与服务器端建立会话之前,首先是客户端发送请求,然后进行TPC/IP的三次握手,接着客户端与服务器端建立ssl会话。
会话过程:
A --> 服务器端
B --> 客户端
第一步:AB双方商量使用什么加密算法,怎么加密等等。 第二步:A发送证书给B,为了使B相信他。 第三步:B相信了,就生成对称密钥,将请求页面发送给A。 最后,A使用B发送的密钥加密后,将请求回应给B。
由于B要验证A的身份,因此,这里引入了第三方权威颁发机构,即CA,可以给A发证书。而B是相信CA的,因此,B拥有CA的证书。
则,A生成一对公钥,发送给CA进行签署(可以理解为盖章)得到证书,然后返回给自己,并且配置服务器,使之能使用证书。而B收到A的证书后,使用保存在主机上的CA证书去验证。
接下来,我们就将实现私有CA的认证。
准备工作:
两台主机,一个做CA(172.16.13.1),一个做web服务器端(172.16.13.2)。
[注--172.16.13.2主机必须配置完成web服务器]
步骤:
一、CA证书的制作(CA的主机上)
1、查看是否安装了openssl软件
# rpm -qa openssl
2、生成自签证书
【在/etc/pki/CA目录下完成】
(1)生成私钥
(2)生成自签证书
//由于生成证书是需要填写一些国家,省份等信息。这里将这些信息直接写入其默认配置文件中,以后就不用再填写了。
【编辑/etc/pki/tls/openssl.cnf,】找到大约136行左右:
【生成自签证书】
//要想将CA作为私有CA使用,则还需要在/etc/pki/tls/openssl.cnf文件中修改默认路径:
并且将CA工作时所需的目录创建出来。
由此,CA证书便创建完成
二、配置web服务器为CA客户端(在172.16.13.2主机上)
1、在/etc/httpd目录下,创建一个ssl目录
2、在ssl目录下生成一个私钥以及证书颁发请求。
3、将证书颁发请求复制到CA服务器上
三、签署证书(CA服务器上)
使用下边一条命令进行签署:
# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3650
四、验证(CA主机上)
查看/etc/pki/CA目录下的index.txt以及serial,生成了证书索引
五、将证书发送给客户端(172.16.13.2)
六、配置服务器能使用此证书
在/etc/httpd/conf.d目录下的ssl的配置文件ssl.conf
【在大概31行左右,修改其内容】
【在大约114行左右,修改其内容】
七、重启web服务器
# service httpd restart
八、在浏览器验证
1、使用u盘或者远程连接等工具将CA服务器上/etc/pki/CA/cacert.pem文件拷贝到自己的window桌面。
2、将cacert.pem的后缀名修改为.crt,打开后安装证书
3、安装后即可在浏览器打开我们之前请求证书的页面。
好啦!一个完整的CA自签证书认证已经完成了,是不是觉得很神奇呢?那么就动手制作吧!
上一篇:帮你实现虚拟主机的配置
下一篇:LAMP - 功能强大的平台
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
一步一步教你写kubernetes sidecar
边车模式通过给应用服务加装一个“边车”来达到控制和逻辑的分离的目的。
scala HTTP kubernetes 边车模式 -
一步步gradle的使用
1、到gradle的官网下载二进制完整版,例如2、将bin目录配置到环境变量中,使得系统
gradle 官网 目录配置 环境变量 -
教你一步步建立自己的迷你-linux(一)
手动建立可登陆的迷你精简linux &
linux 职场 休闲 建立自己的迷你linux -
一步步实现看图工具(二)
1. 控件在对话框中的适配。2. 图像和显示控件的适配。3. 以鼠标点为中心, 滚轮缩放图片(类似于手机图库
控件 缩放 2d scala git