ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(32)

          我參與的團(tuán)隊(duì)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          一、什么是 SSL 證書,什么是 HTTPS

          SSL 證書是一種數(shù)字證書,它使用 Secure Socket Layer 協(xié)議在瀏覽器和 Web 服務(wù)器之間建立一條安全通道,從而實(shí)現(xiàn):
          1、數(shù)據(jù)信息在客戶端和服務(wù)器之間的加密傳輸,保證雙方傳遞信息的安全性,不可被第三方竊聽;
          2、用戶可以通過服務(wù)器證書驗(yàn)證他所訪問的網(wǎng)站是否真實(shí)可靠。
          (via百度百科

          HTTPS 是以安全為目標(biāo)的 HTTP 通道,即 HTTP 下加入 SSL 加密層。HTTPS 不同于 HTTP 的端口,HTTP默認(rèn)端口為80,HTTPS默認(rèn)端口為443.

          二、什么網(wǎng)站需要使用SSL證書

          1、購物交易類網(wǎng)站
          不用多說,網(wǎng)上銀行、支付寶、Paypal等肯定會(huì)全程加密以保護(hù)你的信息安全。

          2、注冊與登陸
          一些大的網(wǎng)站,比如電子郵箱,注冊會(huì)員或者登陸的時(shí)候,會(huì)專門通過SSL通道,保證密碼安全不被竊取。

          3、某些在線代理
          這個(gè)。。。嗯哼,就不說了。

          4、裝B
          比如我……

          三、自行頒發(fā)不受瀏覽器信任的SSL證書

          為曬曬IQ網(wǎng)頒發(fā)證書。ssh登陸到服務(wù)器上,終端輸入以下命令,使用openssl生成RSA密鑰及證書。

          # 生成一個(gè)RSA密鑰  $ openssl genrsa -des3 -out 33iq.key 1024   # 拷貝一個(gè)不需要輸入密碼的密鑰文件 $ openssl rsa -in 33iq.key -out 33iq_nopass.key   # 生成一個(gè)證書請求 $ openssl req -new -key 33iq.key -out 33iq.csr   # 自己簽發(fā)證書 $ openssl x509 -req -days 365 -in 33iq.csr -signkey 33iq.key -out 33iq.crt

          第3個(gè)命令是生成證書請求,會(huì)提示輸入省份、城市、域名信息等,重要的是,email一定要是你的域名后綴的。這樣就有一個(gè) csr 文件了,提交給 ssl 提供商的時(shí)候就是這個(gè) csr 文件。當(dāng)然我這里并沒有向證書提供商申請,而是在第4步自己簽發(fā)了證書。

          使用openssl生成密鑰和證書

          編輯配置文件nginx.conf,給站點(diǎn)加上HTTPS協(xié)議

          server {     server_name YOUR_DOMAINNAME_HERE;     listen 443;     ssl on;     ssl_certificate /usr/local/nginx/conf/33iq.crt;     ssl_certificate_key /usr/local/nginx/conf/33iq_nopass.key;     # 若ssl_certificate_key使用33iq.key,則每次啟動(dòng)Nginx服務(wù)器都要求輸入key的密碼。 }

          重啟Nginx后即可通過https訪問網(wǎng)站了。

          自行頒發(fā)的SSL證書能夠?qū)崿F(xiàn)加密傳輸功能,但瀏覽器并不信任,會(huì)出現(xiàn)以下提示:
          不信任的安全證書

          四、受瀏覽器信任的證書

          要獲取受瀏覽器信任的證書,則需要到證書提供商處申請。證書授證中心,又叫做CA機(jī)構(gòu),為每個(gè)使用公開密鑰的用戶發(fā)放一個(gè)數(shù)字證書。瀏覽器在默認(rèn)情況下內(nèi)置了一些CA機(jī)構(gòu)的證書,使得這些機(jī)構(gòu)頒發(fā)的證書受到信任。VeriSign即 是一個(gè)著名的國外CA機(jī)構(gòu),工行、建行、招行、支付寶、財(cái)付通等網(wǎng)站均使用VeriSign的證書,而網(wǎng)易郵箱等非金融網(wǎng)站采用的是中國互聯(lián)網(wǎng)信息中心 CNNIC頒發(fā)的SSL證書。一般來說,一個(gè)證書的價(jià)格不菲,以VeriSign的證書為例,價(jià)格在每年8000元人民幣左右。

          據(jù)說也有免費(fèi)的證書可以申請。和VeriSign一樣,StartSSL也 是一家CA機(jī)構(gòu),它的根證書很久之前就被一些具有開源背景的瀏覽器支持(Firefox瀏覽器、谷歌Chrome瀏覽器、蘋果Safari瀏覽器等)。后 來StartSSL竟然搞定了微軟:在升級(jí)補(bǔ)丁中,微軟更新了通過Windows根證書認(rèn)證(Windows Root Certificate Program)的廠商清單,并首次將StartCom公司列入了該認(rèn)證清單。現(xiàn)在,在Windows 7或安裝了升級(jí)補(bǔ)丁的Windows Vista或Windows XP操作系統(tǒng)中,系統(tǒng)會(huì)完全信任由StartCom這類免費(fèi)數(shù)字認(rèn)證機(jī)構(gòu)認(rèn)證的數(shù)字證書,從而使StartSSL也得到了IE瀏覽器的支持。(來源及申請步驟

          五、只針對注冊、登陸進(jìn)行https加密處理

          既然HTTPS能保證安全,為什么全世界大部分網(wǎng)站都仍舊在使用HTTP呢?使用HTTPS協(xié)議,對服務(wù)器來說是很大的負(fù)載開銷。從性能上考慮,我 們無法做到對于每個(gè)用戶的每個(gè)訪問請求都進(jìn)行安全加密(當(dāng)然,Google這種大神除外)。作為一個(gè)普通網(wǎng)站,我們所追求的只是在進(jìn)行交易、密碼登陸等操 作時(shí)的安全。通過配置Nginx服務(wù)器,可以使用rewrite來做到這一點(diǎn)。

          在https server下加入如下配置:

          if ($uri !~* "/logging.php$") {     rewrite ^/(.*)$ http://$host/$1 redirect; }

          在http server下加入如下配置:

          if ($uri ~* "/logging.php$") {     rewrite ^/(.*)$ https://$host/$1 redirect; }

          這樣一來,用戶會(huì)且只會(huì)在訪問logging.php的情況下,才會(huì)通過https訪問。

          更新:有一些開發(fā)框架會(huì)根據(jù) $_SERVER['HTTPS'] 這個(gè) PHP 變量是否為 on 來判斷當(dāng)前的訪問請求是否是使用 https。為此我們需要在 Nginx 配置文件中添加一句來設(shè)置這個(gè)變量。遇到 https 鏈接重定向后會(huì)自動(dòng)跳到 http 問題的同學(xué)可以參考一下。

          server {     ...     listen 443;     location \.php$ {         ...         include fastcgi_params;         fastcgi_param HTTPS on; # 多加這一句     } }   server {     ...     listen 80;     location \.php$ {         ...         include fastcgi_params;     } }

          參考鏈接:
          http://zou.lu/nginx-https-ssl-module
          http://blog.s135.com/startssl/
          http://www.baalchina.net/2008/08/nginx-https-rewrite/

          0
          posted on 2012-12-11 02:42 ivaneeo 閱讀(11391) 評論(0)  編輯  收藏 所屬分類: GNU牛力
          主站蜘蛛池模板: 普宁市| 从江县| 乡城县| 呼和浩特市| 利辛县| 昌平区| 都江堰市| 克东县| 雅安市| 荣成市| 南华县| 武清区| 金坛市| 宜阳县| 仁化县| 广汉市| 兴文县| 武鸣县| 华容县| 海阳市| 庐江县| 翁牛特旗| 保定市| 长白| 都江堰市| 桂东县| 密山市| 大邑县| 灵璧县| 宜宾县| 托克托县| 定安县| 华亭县| 菏泽市| 开江县| 东城区| 肇州县| 瑞金市| 钟祥市| 淮滨县| 东安县|