httpd系列之三:https网络传输的实现

简介:
一、前言
1、http服务器安装方式
   这里主要讲的是https的实现,所以使用yum方式安装httpd,而不是编译安装
2、系统环境
   CentOS6.4
3、服务器环境
   私有CA和httpd服务器在同一台服务器上搭建

二、创建私有CA

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

   如果一个组织、一个机构想要通过最具性价比的方式实现https的功能,那么通过使用openssl来实现是一个不错的选择。而如果是大公司,大机构,那样的跨国公司就不需要使用此工具了,而是使用open CA来实现

1、使用openssl实现么有CA

   1)生成CA的密钥对

1
2
#cd /etc/pki/CA/
#(umask 077;openssl genrsa -out private/cakey.pem 2048)
   2)生成自签证书
1
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 36500

   3)创建需要的文件

1
2
#touch index.txt serial crlnumber
#echo 01 > serial

wKiom1M9P-axpG2JAACsfS-tzWs260.png

2、用openssl实现证书申请
   1)在主机上生成密钥,保存到应用此证书的服务的配置文件目录下
1
2
3
#mkdir /etc/httpd/ssl
#cd /etc/httpd/ssl
#(umask 077;openssl genrsa -out httpd.key 1024)
   2)生成证书签署请求
1
#openssl req -new -key httpd.key -out httpd.csr

wKioL1M9P-fwZ8LlAACej6BWZ-Q471.png

3、CA签署证书
1
#openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/httpd.cer -days 36500

wKiom1M9QCjAn23EAACVwd75Bmw907.png

4、导出httpd.cer到windows主机

   为了稍后用windows主机做ssl的测试,先把生成的证书传到windows客户端上去,我这里使用了xshell管理工具,所以就yum了一个lrzsz的工具,就可以直接和windows进行文件传输了,很方便

wKiom1M9QOPic75LAACaaT65FpQ294.png

5、安装证书

wKioL1M9QODxCmueAAIYYVe8l_4174.png

三、安装配置httpd服务器
1、安装httpd服务
1
#yum -y install httpd
2、基于mod_ssl模块实现对ssl的支持
   1) 安装mod_ssl模块
1
#yum -y install mod_ssl

   2)查看mod_ssl的安装位置

wKioL1M9QRjR90cVAAAxS_5f4QU914.png

   3)配置/etc/httpd/conf.d/ssl.conf

   ①、配置使用ssl的虚拟主机

wKiom1M9QVjQsSLpAAA5rkMB8nE381.png

   ②、配置证书和公钥

       这里必须要配置证书和公钥,因为你使用的是https,客户在访问你的网站时,是经过加密传输的,而刚才在客户机上装了证书就是为了让客户能够把加密过的数据发送给我们,再用我们服务器的私钥去解密,从而保证网络传输的安全

wKiom1M9QWmA5ZnxAABN7KnMkHs860.png

   4)启动httpd服务并查看端口是否监听成功

wKioL1M9QVCCYWmUAAA0v443MdY071.png

四、测试

   保证windows主机与linux主机在同一网段中,在浏览器中输入httpd的名称进行访问

wKioL1M9Qbyw3oWLAAClTUV3lRE031.png

因为是我们自建的CA,所以会提示证书不受信任,无所大碍,我们仍然继续

wKioL1M9QiLRAsCwAABMNzifiMs649.png

成功访问,实现https网络传输成功!










本文转自 nmshuishui 51CTO博客,原文链接:http://blog.51cto.com/nmshuishui/1390093,如需转载请自行联系原作者
目录
相关文章
|
Docker 容器
【registry】docker 私有仓库实现https 访问
【registry】docker 私有仓库实现https 访问
712 2
【registry】docker 私有仓库实现https 访问
|
应用服务中间件 Linux API
acme.sh 快速实现 https 证书颁发与自动续期
借助acem.sh来迅速实现 let's encrypt 的泛域名 ssl 证书颁发与续期,基本上五分钟就可以解决战斗
2142 0
|
应用服务中间件 网络安全 数据安全/隐私保护
使用 Nginx 实现 HTTPS 网站设置
HTTPS 其实是有两部分组成:HTTP + SSL/TLS,也就是在 HTTP 的基础上又加了一层处理加密信息的模块。服务端和客户端的信息传递都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。
559 0
使用 Nginx 实现 HTTPS 网站设置
|
存储 应用服务中间件 网络安全
实现tomcat的https单向认证及双向认证
实现tomcat的https单向认证及双向认证
511 0
实现tomcat的https单向认证及双向认证
|
Swift 数据安全/隐私保护 iOS开发
iOS开发 - swift通过Alamofire实现https通信
iOS开发 - swift通过Alamofire实现https通信
370 0
iOS开发 - swift通过Alamofire实现https通信
|
开发者 iOS开发
iOS开发 - 用AFNetworking实现https单向验证,双向验证
iOS开发 - 用AFNetworking实现https单向验证,双向验证
354 0
iOS开发 - 用AFNetworking实现https单向验证,双向验证
|
域名解析 网络协议 安全
nginx配置ssl证书实现https
nginx配置ssl证书实现https
437 0
nginx配置ssl证书实现https
|
域名解析 弹性计算 缓存
阿里云云计算ACP实验考试之使用负载均衡实现https与http的混合访问(下)
阿里云云计算ACP实验考试之使用负载均衡实现https与http的混合访问(下)
365 0
阿里云云计算ACP实验考试之使用负载均衡实现https与http的混合访问(下)
|
弹性计算 负载均衡 网络协议
阿里云云计算ACP实验考试之使用负载均衡实现https与http的混合访问(上)
阿里云云计算ACP实验考试之使用负载均衡实现https与http的混合访问(上)
323 0
阿里云云计算ACP实验考试之使用负载均衡实现https与http的混合访问(上)
|
存储 安全 网络协议
springboot 配置ssl 实现https访问
springboot 配置ssl 实现https访问
310 0
springboot 配置ssl 实现https访问