码迷,mamicode.com
首页 > Web开发 > 详细

基于openssl搭建https服务

时间:2015-10-20 19:36:54      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:https实现

多种应用层协议,例如http,ftp,smtp等都是明文协议,而这些服务在互联网通信中是不可或缺的,而有时安全显得特别重要,例如网购的时候,所以出现了ssl/tls的技术,那么现在就来实现以下基于ssl搭建https服务

  1. 查看当前httpd服务器是否安装了mod_ssl模块

      httpd -M

    一般在使用rpm包安装的时候,不会安装该模块,在编译安装httpd的时候,在./configure --enable-ssl编译该模块

  2. 如果单独使用rpm安装mod_ssl,可以看到安装这个模块生成的文件

     技术分享

    首先 ,会在/etc/httpd/conf.d目录下生成一个ssl.conf,这就是用于配置ssl的配置文件,还会生成一个动态加载模块,用于实现该功能。

  3. 使用另一台虚拟机创建成为一个私有CA(过程不再赘述),本地切换至/etc/httpd目录下创建一个ssl目录,用于存放自己的私钥,以及由CA签署后等到的证书技术分享

    可以看到,私钥已经创建完毕,并生成了签署请求apache.csr,我们假设已经被CA 签署,并其人证书就保存在该目录下,名为apache.crt

    https的会话建立过程于http不同,因为https会话在tcp的三次握手之后要建立ssl会话,由于ssl会话是基于ip地址的,所以单个ip地址之上只能有一个https服务,如果使用了基于域名的虚拟主机,那么就只有其中一台,该台主机名应在生成证书签署请求的时候指定

  4. 编辑/etc/httpd/conf.d/ssl.conf文件

    该文件中需要特别注意的:

    <VirtualHost _default_:443>,这一项应该修改为我们提供https服务的主机名,例如

                       <VirtualHost www.abc.com:443>

  5.  
技术分享

   启用这两项,DocumentRoot,应该和使用http访问相同网站时一致

           ServerName,定义主机名

   技术分享

  注意,https的错误日志定义与http一致,访问日志是使用Transferlog指令,然后定义访问日志格式时仍使用Customlog定义

   技术分享

   要使用ssl功能,SSLEngine 必须为on

   技术分享

  将证书以及私钥文件的路径修改为正在使用的,一般放在服务的配置文件目录下就可以,例如此处就是/etc/httpd/ssl目录下的两个文件

同时注意主配置文件中使用http访问该主机时的目录访问配置<Directory>,如果只是提供https服务,可在该文件中直接定义

启动httpd服务,查看443端口是否已经监听,可将CA自签署证书导入浏览器进行测试。

本文出自 “zxcvbnm玄烨” 博客,请务必保留此出处http://10764546.blog.51cto.com/10754546/1704634

基于openssl搭建https服务

标签:https实现

原文地址:http://10764546.blog.51cto.com/10754546/1704634

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!