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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:
一、前言
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,如需转载请自行联系原作者
目录
相关文章
|
存储 缓存 网络协议
HTTP协议【网络基础/应用层】
HTTP协议【网络基础/应用层】
270 3
|
28天前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
133 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
5月前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
62 2
|
6月前
|
JSON 安全 网络协议
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
|
6月前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
42 0
|
6月前
|
网络协议 应用服务中间件 nginx
一、《图解HTTP》- WEB和网络基础
一、《图解HTTP》- WEB和网络基础
57 1
一、《图解HTTP》- WEB和网络基础
|
6月前
|
域名解析 网络协议 JavaScript
图解HTTP:了解Web及网络基础
图解HTTP:了解Web及网络基础
|
11月前
|
算法 安全 Linux
Linux网络-HTTPS协议
Linux网络-HTTPS协议