https簡介
HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目标的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,是以加密的詳細内容就需要SSL。 它是一個URI scheme(抽象辨別符體系),句法類同http:體系。用于安全的HTTP資料傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的預設端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統的最初研發由網景公司進行,提供了身份驗證與加密通訊方法,現在它被廣泛用于網際網路上安全敏感的通訊,例如交易支付方面。
采用https的伺服器必須從CA (Certificate Authority)申請一個用于證明伺服器用途類型的證書。該證書隻有用于對應的伺服器的時候,用戶端才信任此主機。是以目前所有的銀行系統網站,關鍵部分應用都是https 的。客戶通過信任該證書,進而信任了該主機。其實這樣做效率很低,但是銀行更側重安全。這一點對我們沒有任何異議,我們的伺服器,采用的證書不管是自己釋出的還是從公衆的地方釋出的,其用戶端都是自己人,是以我們也就肯定信任該伺服器。
SSL協定的工作流程
伺服器認證階段:1)用戶端向伺服器發送一個開始資訊“Hello”以便開始一個新的會話連接配接;2)伺服器根據客戶的資訊确定是否需要生成新的主密鑰,如需要則伺服器在響應客戶的“Hello”資訊時将包含生成主密鑰所需的資訊;3)客戶根據收到的伺服器響應資訊,産生一個主密鑰,并用伺服器的公開密鑰加密後傳給伺服器;4)伺服器恢複該主密鑰,并傳回給客戶一個用主密鑰認證的資訊,以此讓客戶認證伺服器。
實作過程
1.安裝http服務
[root@uodekoaix Server]# yum install httpd-2.2.3-31.el5.i386.rpm
2.建立CA
[root@uodekoaix CA]# mkdir crl certs newcerts
[root@uodekoaix CA]# touch index.txt serial
[root@uodekoaix CA]# echo "01">serial
[root@uodekoaix CA]# ll
總計 24
drwxr-xr-x 2 root root 4096 08-20 11:40 certs
drwxr-xr-x 2 root root 4096 08-20 11:40 crl
-rw-r--r-- 1 root root 0 08-20 11:42 index.txt
drwxr-xr-x 2 root root 4096 08-20 11:40 newcerts
drwx------ 2 root root 4096 2009-06-30 private
-rw-r--r-- 1 root root 3 08-20 11:43 serial
[root@uodekoaix CA]# echo "welcome">>index.html
3.産生鑰匙鍊
[root@uodekoaix CA]# openssl genrsa 1024>private/cakey.pem
[root@uodekoaix CA]# chmod 600 private/*
4.産生CA憑證
[root@uodekoaix CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650
5.web伺服器擷取鑰匙
[root@uodekoaix CA]# mkdir -pv /etc/httpd/certs
[root@uodekoaix CA]# cd /etc/httpd/certs
[root@uodekoaix certs]# openssl genrsa 1024 >httpd.key
6.web伺服器産生證書
[root@uodekoaix certs]# openssl req -new -key httpd.key -out httpd.csr
7.web伺服器向CA請求證書
[root@uodekoaix certs]# openssl ca -in httpd.csr -out httpd.cert
8.安裝SSL子產品
[root@uodekoaix Server]# yum install mod_ssl
9.修改/etc/httpd/conf.d/ssl.conf
10.修改/etc/httpd/conf.d/ssl.conf 開啟證書鍊
11.關閉80端口
12.客戶機通路站點并安裝CA憑證
13.修改客戶機host檔案