ssl介紹:shell
SSL(Secure Sockets Layer,SSL)是一種安全協議,在網景公司(Netscape)推出首版Web瀏覽器的同時提出,目的是爲網絡通訊提供安全及數據完整性保障,SSL在傳輸層中對網絡通訊進行加密。
apache
SSL採用公開密鑰技術,保證兩個應用間通訊的保密性和可靠性,使客戶與服務器應用之間的通訊不被攻擊者竊聽。它在服務器和客戶機兩端可同時被支持,目前已成爲互聯網上保密通信的工業標準。現行的Web瀏覽器亦廣泛將HTTP和SSL相結合,從而實現安全通訊。此協議其繼任者是TLSubuntu
HTTPS介紹:
vim
超文本傳輸安全協議(縮寫:HTTPS,英語:Hypertext Transfer Protocol Secure)是超文本傳輸協議和SSL/TLS的組合,用以提供加密通信及對網絡服務器身份的鑑定。HTTPS鏈接常常被用於萬維網上的交易支付和企業信息系統中敏感信息的傳輸。 HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全爲目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,所以加密的詳細內容就須要SSL。 HTTPS存在不一樣於HTTP的默認端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統的最初研發由網景公司進行,提供了身份驗證與加密通信方法,如今它被普遍用於萬維網上安全敏感的通信,例如交易支付方面centos
HTTPS和HTTP的區別:
瀏覽器
1、https協議須要到ca申請證書,通常免費證書不多,須要交費。安全
2、http是超文本傳輸協議,信息是明文傳輸,https 則是具備安全性的ssl加密傳輸協議。服務器
3、http和https使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。網絡
4、http的鏈接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。測試
//環境說明:
#首先確保你的apache服務器已經成功運行,再進行下面步驟 A:正規的網站應該向第三方CA頒發機構註冊,用戶瀏覽是向CA機構詢問此網站證書的有效性 B:centos6.4上自建CA,來向客戶端頒發證書,這個自建的CA僅供測試使用 C:apache服務器做爲客戶向剛纔自建的CA機構註冊證書
//建立CA來向客戶端頒發證書
#建立證書的文件夾能夠隨便選擇,之後在/etc/httpd/conf.d/ssl.conf文件中指定這個證書位置便可 1.首先創建一個CA的根私鑰文件,使用RSA格式,1024位 shell> mkdir /etc/httpd/ssl_ca shell> cd /etc/httpd/ssl_ca shell> openssl genrsa -des3 -out ca.key 1024 2.利用創建的RSA私鑰,爲CA本身創建一個自簽名的證書文件 shell> openssl req -new -x509 -days 7300 -key ca.key -out ca.crt 3.CA已經創建完畢,生成的ca.key 和ca.crt向客戶端頒發證書
//apache服務器向CA申請證書
1.客戶端生成客戶證書的私鑰文件 shell> openssl genrsa -des3 -out apache_client.key 1024 2.openssl 生成客戶端證書的時候,不能直接生成證書,而是必須經過證書請求文件來生成,如今必須先創建客戶端的證書請求文件 shell> openssl req -new -key client.key -out client.csr 3.有了證書請求文件(client.csr),就可使用CA的根證書和根私鑰(ca.crt,ca.key)來對請求文件進行簽名,生成客戶端證書client.pem shell> openssl x509 -req -in client.csr -out client.pem -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
//添加apache對openssl模塊的支持
1.下載mod_ssl shell> yum install mod_ssl.x86_64 2.驗證apache主配置文件有下面這條 shell> vim /etc/httpd/conf/httpd.conf Include conf.d/*.conf #能夠加載ssl的配置文件 3.編譯ssl.conf ------------------- LoadModule ssl_module modules/mod_ssl.so Listen 443 #驗證上面這兩條的存在 SSLCertificateFile /etc/httpd/ssl_ca/client.pem #路徑改成剛纔生成客戶端證書文件的路徑 SSLCertificateKeyFile /etc/httpd/ssl_ca/client.key ------------------- 4.重啓apache服務 //在ubuntu客戶機登陸測試