小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

nginx 配置 https 的雙向認(rèn)證

 dtl樂學(xué)館 2014-08-17

SSL 的雙向認(rèn)證就是,客戶端要獲取服務(wù)端的證書,檢查下服務(wù)端是不是我可以信任的主機,否則我就認(rèn)為那個站點的內(nèi)容不可信任,不應(yīng)該去訪問你(瀏覽器會告訴你),同時服務(wù)端也要檢查客戶端的證書,客戶端如果不是服務(wù)端所信任的,那服務(wù)端也會認(rèn)為,你不是我的合法用戶,我拒絕給你提供服務(wù)。所以,要讓 HTTPS 的雙向認(rèn)證順利完成,就要在服務(wù)端給定一個證書,這個證書是瀏覽器可信任的,同時客戶端(瀏覽器)也要發(fā)送給服務(wù)端一個證書,服務(wù)器端也要信任這個證書。

要想讓瀏覽器純自然地就去信任服務(wù)端的證書,那服務(wù)端所使用的證書就得是那幾大已經(jīng)被大家所信任的證書機構(gòu)給他簽名,不過一般要錢…不好

如果自己擔(dān)當(dāng)證書機構(gòu)(Certificate Authority, CA)的角色的話,可以這么搞。

1、準(zhǔn)備CA密鑰

通常是在 linux 用 openssl 命令來搞,不過 Windows 下也可以,裝個 Git 一般會帶上 windows 的編譯版本了。

openssl genrsa –out ca-key.pem 2048

2、生成CA證書請求

證書請求都是根據(jù)私鑰來生成的

openssl req –new –key ca-key.pem –out ca-req.csr –days 3650


3、簽名CA證書請求

使用自己的私鑰來給這個CA證書請求簽名

openssl x509 –req –in ca-req.csr –out ca-cert.pem –signkey ca-key.pem –days 3650

4、CA證書轉(zhuǎn)換為DER格式

DER 格式似乎更加通用,iOS 直接認(rèn)

openssl x509 –in ca-cert.pem –out ca.der –outform DER

現(xiàn)在,終于拿到了自己做 CA 需要的幾個文件了,密鑰 ca-key.pem,證書 ca-cert.pem,系統(tǒng)使用的 ca.der,接下來,要創(chuàng)建一個網(wǎng)站,就需要讓 CA 給他簽名一個證書了

6、準(zhǔn)備網(wǎng)站密鑰

網(wǎng)站自己也需要準(zhǔn)備一個密鑰,類似于 CA,假如這個網(wǎng)站的域名是 su.su

openssl genrsa –out su-key.pem 2048

7、生成網(wǎng)站證書請求

網(wǎng)站通過密鑰生成證書請求,當(dāng)然,這個請求一般是要提交給 CA,讓 CA 進行簽名的

openssl req –new –key su-key.pem –out su-req.csr –days 3650

8、CA簽名網(wǎng)站證書請求

不是拿到 CA 的證書了就可以說自己是 CA 的,最重要的是,簽名需要有 CA 密鑰

openssl x509 –req –in su-req.csr –out su-cert.pem –days 3650 –CA ca-cert.pem –CAkey ca-key.pem –CAcreateserial

如果客戶端(個人瀏覽器)信任 CA 的證書的話,那么他也就會信任由 CA 簽名的網(wǎng)站證書,因此讓瀏覽器信任 CA 的證書之后,客戶端就自然信任服務(wù)端了,只要做單向認(rèn)證的話,到這一步證書這一類材料就已經(jīng)準(zhǔn)備好了,但是雙向認(rèn)證就還要給客戶端(個人的瀏覽器)準(zhǔn)備一份證書,讓服務(wù)端可以知道客戶端也是合法的。假如讓服務(wù)端也信任 CA 的證書,那 CA 簽名的客戶端證書也就能被信任了。

9、準(zhǔn)備客戶端私鑰

不變的方法不需要解釋

openssl genrsa –out qiyi-key.pem 2048

10、生成客戶端證書請求

不變的方法不需要解釋

openssl req –new –key qiyi-key.pem –out qiyi-req.csr –days 3650

11、CA簽名客戶端證書請求

不變的方法不需要解釋

openssl x509 –req –in qiyi-req.csr –out qiyi-cert.pem –days 3650 –CA ca-cert.pem –CAkey ca-key.pem –CAcreateserial

12、客戶端證書轉(zhuǎn)換為DER格式

不變的方法不需要解釋

openssl x509 –in qiyi-cert.pem –out qiyi.der –outform DER

13、客戶端證書轉(zhuǎn)換為 PKCS #12格式

全稱應(yīng)該叫做 Personal Information Exchange,通常以 p12 作為后綴

openssl pkcs12 –export –clcerts –in qiyi-cert.pem –inkey qiyi-key.pem –out qiyi.p12

14、配置 nginx

比如,類似下面這樣一段

  1. server {
  2.     listen       443;
  3.     server_name  localhost su.su;
  4.     ssl                  on;
  5.     ssl_certificate      cert/su-cert.pem;
  6.     ssl_certificate_key  cert/su-key.pem;
  7.     ssl_client_certificate cert/ca-cert.pem;
  8.     ssl_session_timeout  5m;
  9.     ssl_verify_client on;
  10.     ssl_protocols  SSLv2 SSLv3 TLSv1;
  11.     ssl_ciphers  RC4:HIGH:!aNULL:!MD5;
  12.     ssl_prefer_server_ciphers   on;
  13.     location / {
  14.         root   html;
  15.         index  index.html index.htm;
  16.     }
  17. }

我沒有使用 ssl-sesion-cache 是因為遇到了錯誤…

15、配置瀏覽器證書

瀏覽器首先需要信任自簽名的 CA 證書,這樣他就可以直接信任服務(wù)端提供的證書了,為了雙向認(rèn)證成功,瀏覽器還需要提供一個傳送給服務(wù)端的證書,也就是上面制作的客戶端證書,對于 IE 來講,首先在 Internet Options 里選擇 Content 選項卡,然后點擊 Certificates,新窗口的 Trusted Root Certification Authorities 選項卡選擇導(dǎo)入,選擇制作好的 ca.cer;其次在 Personal 選項卡選擇導(dǎo)入 qiyi.p12,當(dāng)然,這里導(dǎo)入的時候還需要輸入密碼-.-

16、測試成果

當(dāng)將一切都設(shè)置好,將 nginx 啟動成功后,就可以打開 IE 來訪問了,第一次訪問,瀏覽器會詢問雙向認(rèn)證時使用的證書,類似下圖

sublime-crack-1

選擇客戶端證書

順利打開,瀏覽器沒有紅色的警告提示,正常顯示頁面內(nèi)容就大功告成了。

參考:

本文鏈接: http:///archives/347.html , 轉(zhuǎn)載請注明出處,此外還可以訂閱我。

相關(guān)日志 Relate Posts

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多