zoukankan      html  css  js  c++  java
  • 基于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服务器的加密访问了
  • 相关阅读:
    Mybatis 延迟加载策略
    Mybatis中的多表查询 多对多
    Mybatis中的多表查询 多对一,一对多
    Mybatis 的动态 SQL 语句
    Mybatis中的连接池
    判断一个对象是否为数组
    包装对象概念 (做好事不留名的雷锋)
    javascript 继承之拷贝,原型,类式
    ajax参数
    面向对象小实例之 选项卡
  • 原文地址:https://www.cnblogs.com/grimm/p/5938505.html
Copyright © 2011-2022 走看看