天天看點

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

<code>#cd /etc/pki/CA/</code>

<code>#(umask 077;openssl genrsa -out private/cakey.pem 2048)</code>

   2)生成自簽證書

<code>#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 36500</code>

   3)建立需要的檔案

<code>#touch index.txt serial crlnumber</code>

<code>#echo 01 &gt; serial</code>

<a href="http://s3.51cto.com/wyfs02/M00/23/A7/wKiom1M9P-axpG2JAACsfS-tzWs260.png" target="_blank"></a>

2、用openssl實作證書申請

   1)在主機上生成密鑰,儲存到應用此證書的服務的配置檔案目錄下

3

<code>#mkdir /etc/httpd/ssl</code>

<code>#cd /etc/httpd/ssl</code>

<code>#(umask 077;openssl genrsa -out httpd.key 1024)</code>

   2)生成證書簽署請求

<code>#openssl req -new -key httpd.key -out httpd.csr</code>

<a href="http://s3.51cto.com/wyfs02/M02/23/A8/wKioL1M9P-fwZ8LlAACej6BWZ-Q471.png" target="_blank"></a>

3、CA簽署證書

<code>#openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/httpd.cer -days 36500</code>

<a href="http://s3.51cto.com/wyfs02/M01/23/A7/wKiom1M9QCjAn23EAACVwd75Bmw907.png" target="_blank"></a>

4、導出httpd.cer到windows主機

   為了稍後用windows主機做ssl的測試,先把生成的證書傳到windows用戶端上去,我這裡使用了xshell管理工具,是以就yum了一個lrzsz的工具,就可以直接和windows進行檔案傳輸了,很友善

<a href="http://s3.51cto.com/wyfs02/M02/23/A7/wKiom1M9QOPic75LAACaaT65FpQ294.png" target="_blank"></a>

5、安裝證書

<a href="http://s3.51cto.com/wyfs02/M01/23/A8/wKioL1M9QODxCmueAAIYYVe8l_4174.png" target="_blank"></a>

三、安裝配置httpd伺服器

1、安裝httpd服務

<code>#yum -y install httpd</code>

2、基于mod_ssl子產品實作對ssl的支援

   1)安裝mod_ssl子產品

<code>#yum -y install mod_ssl</code>

   2)檢視mod_ssl的安裝位置

<a href="http://s3.51cto.com/wyfs02/M02/23/A8/wKioL1M9QRjR90cVAAAxS_5f4QU914.png" target="_blank"></a>

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

   ①、配置使用ssl的虛拟主機

<a href="http://s3.51cto.com/wyfs02/M01/23/A7/wKiom1M9QVjQsSLpAAA5rkMB8nE381.png" target="_blank"></a>

   ②、配置證書和公鑰

       這裡必須要配置證書和公鑰,因為你使用的是https,客戶在通路你的網站時,是經過加密傳輸的,而剛才在客戶機上裝了證書就是為了讓客戶能夠把加密過的資料發送給我們,再用我們伺服器的私鑰去解密,進而保證網絡傳輸的安全

<a href="http://s3.51cto.com/wyfs02/M02/23/A7/wKiom1M9QWmA5ZnxAABN7KnMkHs860.png" target="_blank"></a>

   4)啟動httpd服務并檢視端口是否監聽成功

<a href="http://s3.51cto.com/wyfs02/M01/23/A8/wKioL1M9QVCCYWmUAAA0v443MdY071.png" target="_blank"></a>

四、測試

   保證windows主機與linux主機在同一網段中,在浏覽器中輸入httpd的名稱進行通路

<a href="http://s3.51cto.com/wyfs02/M00/23/A8/wKioL1M9Qbyw3oWLAAClTUV3lRE031.png" target="_blank"></a>

因為是我們自建的CA,是以會提示證書不受信任,無所大礙,我們仍然繼續

成功通路,實作https網絡傳輸成功!

本文轉自 nmshuishui 51CTO部落格,原文連結:http://blog.51cto.com/nmshuishui/1390093,如需轉載請自行聯系原作者

繼續閱讀