基于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配置文件添加一条对应关系就可以了

现在直接使用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服务器的加密访问了

本文出自 “邓俊阳的Blog” 博客,请务必保留此出处

海阔凭鱼跃,天高任鸟飞。我要加油,冲向我的理想。

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

相关文章:

你感兴趣的文章:

标签云: