原文出自:http://www.joyios.com/?p=47
使用HTTP(超文本傳輸)協(xié)議訪問互聯(lián)網(wǎng)上的數(shù)據(jù)是沒有經(jīng)過加密的。也就是說,任何人都可以通過適當(dāng)?shù)墓ぞ邤r截或者監(jiān)聽到在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)流。但是有時候,我們需要在網(wǎng)絡(luò)上傳輸一些安全性或者私秘性的數(shù)據(jù),譬如:包含信用卡及商品信息的電子訂單。這個時候,如果仍然使用HTTP協(xié)議,勢必會面臨非常大的風(fēng)險!相信沒有人能接受自己的信用卡號在互聯(lián)網(wǎng)上裸奔。
HTTPS(超文本傳輸安全)協(xié)議無疑可以有效的解決這一問題。所謂HTTPS,其實就是HTTP和SSL/TLS的組合,用以提供加密通訊及對網(wǎng)絡(luò)服務(wù)器的身份鑒定。HTTPS的主要思想是在不安全的網(wǎng)絡(luò)上創(chuàng)建一安全信道,防止黑客的竊聽和攻擊。
SSL(安全套接層)可以用來對Web服務(wù)器和客戶端之間的數(shù)據(jù)流進行加密。
SSL利用非對稱密碼技術(shù)進行數(shù)據(jù)加密。加密過程中使用到兩個秘鑰:一個公鑰和一個與之對應(yīng)的私鑰。使用公鑰加密的數(shù)據(jù),只能用與之對應(yīng)的私鑰解密;而使用私鑰加密的數(shù)據(jù),也只能用與之對應(yīng)的公鑰解密。因此,如果在網(wǎng)絡(luò)上傳輸?shù)南⒒驍?shù)據(jù)流是被服務(wù)器的私鑰加密的,則只能使用與其對應(yīng)的公鑰解密,從而可以保證客戶端與與服務(wù)器之間的數(shù)據(jù)安全。
在HTTPS的傳輸過程中,有一個非常關(guān)鍵的角色——數(shù)字證書,那什么是數(shù)字證書?又有什么作用呢?
所謂數(shù)字證書,是一種用于電腦的身份識別機制。由數(shù)字證書頒發(fā)機構(gòu)(CA)對使用私鑰創(chuàng)建的簽名請求文件做的簽名(蓋章),表示CA結(jié)構(gòu)對證書持有者的認(rèn)可。數(shù)字證書擁有以下幾個優(yōu)點:
X.509證書包含三個文件:key,csr,crt。
備注:在密碼學(xué)中,X.509是一個標(biāo)準(zhǔn),規(guī)范了公開秘鑰認(rèn)證、證書吊銷列表、授權(quán)憑證、憑證路徑驗證算法等。
注意:以下步驟僅用于配置內(nèi)部使用或測試需要的SSL證書。
使用openssl工具生成一個RSA私鑰
$openssl genrsa -des3 -out server.key 2048
說明:生成rsa私鑰,des3算法,2048位強度,server.key是秘鑰文件名。
注意:生成私鑰,需要提供一個至少4位的密碼。
生成私鑰之后,便可以創(chuàng)建csr文件了。
此時可以有兩種選擇。理想情況下,可以將證書發(fā)送給證書頒發(fā)機構(gòu)(CA),CA驗證過請求者的身份之后,會出具簽名證書(很貴)。另外,如果只是內(nèi)部或者測試需求,也可以使用OpenSSL實現(xiàn)自簽名,具體操作如下:
$openssl req -new -key server.key -out server.csr
說明:需要依次輸入國家,地區(qū),城市,組織,組織單位,Common Name和Email。其中Common Name,可以寫自己的名字或者域名,如果要支持https,Common Name應(yīng)該與域名保持一致,否則會引起瀏覽器警告。
Country Name (2 letter code) [AU]:CNState or Province Name (full name) [Some–State]:BeijingLocality Name (eg, city) []:BeijingOrganization Name (eg, company) [Internet Widgits Pty Ltd]:joyiosOrganizational Unit Name (eg, section) []:info technologyCommon Name (e.g. server FQDN or YOUR name) []:demo.joyios.comEmail Address []:liufan@joyios.com
在第1步創(chuàng)建私鑰的過程中,由于必須要指定一個密碼。而這個密碼會帶來一個副作用,那就是在每次Apache啟動Web服務(wù)器時,都會要求輸入密碼,這顯然非常不方便。要刪除私鑰中的密碼,操作如下:
cp server.key server.key.orgopenssl rsa -in server.key.org -out server.key
如果你不想花錢讓CA簽名,或者只是測試SSL的具體實現(xiàn)。那么,現(xiàn)在便可以著手生成一個自簽名的證書了。
需要注意的是,在使用自簽名的臨時證書時,瀏覽器會提示證書的頒發(fā)機構(gòu)是未知的。
$openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
說明:crt上有證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息。當(dāng)用戶安裝了證書之后,便意味著信任了這份證書,同時擁有了其中的公鑰。證書上會說明用途,例如服務(wù)器認(rèn)證,客戶端認(rèn)證,或者簽署其他證書。當(dāng)系統(tǒng)收到一份新的證書的時候,證書會說明,是由誰簽署的。如果這個簽署者確實可以簽署其他證書,并且收到證書上的簽名和簽署者的公鑰可以對上的時候,系統(tǒng)就自動信任新的證書。
將私鑰和證書文件復(fù)制到nginx目錄下面。
listen 443 ssl;
ssl on;ssl_certificate /home/server.crt;ssl_certificate_key /home/server.key;ssl_session_timeout 5m;ssl_protocols SSLv2 SSLv3 TLSv1;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;ssl_prefer_server_ciphers on;
注意:ssl_certificate\ssl_certificate_key這兩個參數(shù)填寫證書文件server.crt\server.key的存放位置
分享名稱:nginx下安裝SSL證書,讓網(wǎng)頁通過https訪問
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article28/sdojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、自適應(yīng)網(wǎng)站、python
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)