在实际生产中实现公司内部的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服务器的加密访问了

基于OpenSSL实现C/S架构中的https会话的更多相关文章

  1. 分享一个CQRS/ES架构中基于写文件的EventStore的设计思路

    最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客 ...

  2. 分享我们项目中基于EF事务机制的架构

    写在前面: 1. 本文中单元测试用到的数据库,在执行测试之前,会被清空,即使用空数据库. 2. 本文中的单元测试都是正确通过的. 要理解EF的事务机制,首先要理解这2个类:TransactionSco ...

  3. 分享我们项目中基于EF事务机制的架构 【转载】

    http://www.cnblogs.com/leotsai/p/how-to-use-entity-framework-transaction-scope.html 写在前面: 1. 本文中单元测试 ...

  4. 基于AWS的云服务架构最佳实践

    ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...

  5. 大型 JavaScript 应用架构中的模式

    原文:Patterns For Large-Scale JavaScript Application Architecture by @Addy Osmani 今天我们要讨论大型 JavaScript ...

  6. [转]大型 JavaScript 应用架构中的模式

    目录 1.我是谁,以及我为什么写这个主题 2.可以用140个字概述这篇文章吗? 3.究竟什么是“大型”JavaScript应用程序? 4.让我们回顾一下当前的架构 5.想得长远一些 6.头脑风暴 7. ...

  7. 基于VPN搭建混合云架构需要考虑的网络因素

     Joy Qiao from MSFT Wed, Jan 21 2015 8:44 AM 很多用户在搭建混合云架构时,会使用到微软Azure虚拟网络中的 VPN功能,来实现Azure中的虚拟网络与用户 ...

  8. 基于laravel4.2的相关架构设计

    项目组不久前引进了laravel框架,本人参与了laravel的调研和项目架构设计.个人认为项目架构中基于laravel的有些设计还是比较实用和有借鉴性的,现将一些设计分享给大家,希望能和大家共同学习 ...

  9. 新项目架构从零开始(三)------基于简单ESB的服务架构

    这几个月一直在修改架构,所以迟迟没有更新博客. 新的架构是一个基于简单esb的服务架构,主要构成是esb服务注册,wcf服务,MVC项目构成. 首先,我门来看一看解决方案, 1.Common 在Com ...

随机推荐

  1. 从FineReport看开放式引擎API

    对于一款软件或产品,尤其是一些企业级应用的IT软件,是不可能满足所有需求的.尤其是针对业务化的产品需求,某些个性化的需求就要进行二次开发.二次开发需要API接口,无论是什么样的开发,开发人员都需要对开 ...

  2. [转]IPython Notebook简介1

    原文:http://hyry.dip.jp/tech/slice/slice.html/35 Python Notebook简介1 作者 : RY    标签: cython ipython-note ...

  3. SharePoint 2010 GridView/SPGridView完全应用系统样式

    自定义开发页面如果用到了GridView或SPGridView默认跟列表的样式是不一样的,如要要一样,需要: 1)aspx <asp:GridView DataKeyNames="ID ...

  4. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q131-Q134)

    Question  131 You are designing multiple SharePoint 2010 features. You have the following requiremen ...

  5. 简单的学习心得:网易云课堂Android开发第四章服务、广播与酷特性

    1.Service (1)含义:Service是在后台长时间运行的应用组件,所在线程是main线程. (2)使用方式:startService能够执行onStartCommand中操作,bindSer ...

  6. 使用AIDL调用远程服务设置系统时间

    在实际工作中,经常遇到客户需要用代码设置系统时间的需求,但是Android非系统应用是无法设置系统时间的.于是,我设计了一个使用系统签名的时间设置服务,客户通过bind调用服务里的方法就能达到设置时间 ...

  7. UITableView或UIScrollVIew上的UIButton的高亮效果

    UITableView或UIScrollVIew上的UIButton的高亮效果 原文地址:http://www.jianshu.com/p/b4331f06bd34 最近做项目的时候发现,UIScro ...

  8. Android 手机卫士--确认密码对话框编写

    本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. ...

  9. Android 窗体设置

    requestWindowFeature(Window.FEATURE_NO_TITLE);  getWindow().setFlags(WindowManager.LayoutParams.FLAG ...

  10. Linux下tar-rar-unrar解压/压缩缩命令大全

    转载请标明出处: http://www.cnblogs.com/why168888/p/5975559.html 本文出自:[Edwin博客园] RAR文件下载:http://www.rarlab.c ...