基于OpenSSL实现C/S架构中的https会话

在实际生产中实现公司内部的web服务器加密访问时,我们就需要实现公司内部的私钥CA,并且完成对web服务器的签署请求,这样我们就可以在自身的内部机构实现对数据的机密性、完整性、身份验证的访问与传输
实验的准备:实验是在vm9上完成的,一共用了两台虚拟机;一台在CA签署服务器(IP地址是172.16.51.18),另一台是web服务器(IP地址是172.16.51.17)
私有CA的实现包括有自身私钥的生成、生成自签证书、准备相关的文件
实现私有CA的准备
为CA提供私钥
 
生成自签证书
生成自签证书的时候,会让我们填写一些信息,例如国家,省,市,公司名称等这些信息可以直接在/etc/pki/tls/openssl.cnf配置文件中更改这些默认的信息。
修改/etc/pki/tls/openssl.cnf配置文件中关于证书存放位置,并查看CA证书所需要的文件及目录
手动创建certs crl newcerts目录并创建index.txt文件与serial文件(并指定起始号)
现在一个我们自签署的CA就可以使用了
web服务器端的准备
首先自己要准备好web服务,安装httpd软件包就可以了,要实现ssl功能需要安装ssl模块,所以模块要确保安装上
安装ssl模块
yum install mod_ssl
为web服务器的证书申请以及密钥文件存放创建一个特定的目录
mkdir /etc/httpd/conf/ssl
cd /etc/httpd/conf/ssl
把公钥包装成证书申请请求,向CA申请签署;首先要自己生成一个私钥(存放密钥的文件权限是600的)
重新启动httpd服务,加载新添加的模块
service httpd restart
签署请求申请前查看自己的FQDN,没有指定的可以直接更改/etc/hosts配置文件添加一条对应关系就可以了
生成证书签署请求把签署请求发送给CA服务器端(现实中为了确保其安全性,需要手动复制签署请求到CA认证机构去签署;避免在网络传输中数据泄露)
现在直接使用scp发送到CA服务器端
在CA服务器端完成签署
签署完成后查看CA机构的证书相关文件的变化
在web服务器端把签署的证书复制过来
scp 172.16.51.18:/tmp/httpd.crt /etc/httpd/conf/ssl/
证书签署后为了安全删除CA端的文件
rm -rf httpd.crt
rm -rf httpd.csr
更改web服务器的/etc/httpd/conf.d/ssl.conf配置文件
中心主机的设定
密钥及证书文件位置的指定
创建/var/www/html目录下的主页index.html,并且添加一些内容,方便后面的验证
一切都修改完成后检查一下语法错误并且重启一下httpd服务
httpd –t
service httpd restart
把CA的证书传递给物理主机一份,进行测试
复制/etc/pki/CA/cacert.pem到物理主机,复制到windows系统后把cacert.pem文件的名称更改成cacert.crt
点击安装证书按钮,将证书安装到受信任的节点中,然后就可以实现对web服务器的加密访问了
posted @ 2016-10-08 13:58  爱你爱自己  阅读(1896)  评论(0编辑  收藏  举报