天天看點

nginx進階應用--------搭建https(SSL/TLS)

前言:HTTPS是什麼?

  超文本傳輸安全協定(縮寫:HTTPS,英語:Hypertext Transfer Protocol Secure)是超文本傳輸協定和SSL/TLS的組合,用以提供加密通訊及對網絡伺服器身份的鑒定。HTTPS連接配接經常被用于網際網路上的交易支付和企業資訊系統中敏感資訊的傳輸。HTTPS不應與在RFC 2660中定義的安全超文本傳輸協定(S-HTTP)相混。

     HTTPS 目前已經是所有注重隐私和安全的網站的首選,随着技術的不斷發展,HTTPS 網站已不再是大型網站的專利,所有普通的個人站長和部落格均可以自己動手搭建一個安全的加密的網站。

     如果一個網站沒有加密,那麼你的所有帳号密碼都是明文傳輸。可想而知,如果涉及到隐私和金融問題,不加密的傳輸是多麼可怕的一件事。

可以通過以下步驟生成一個簡單的證書:

首先,進入你想建立證書和私鑰的目錄,例如:

$ cd /usr/local/nginx/conf

建立伺服器私鑰,指令會讓你輸入一個密碼:

$ openssl genrsa -des3 -out server.key 1024

建立簽名請求的證書(CSR):

$ openssl req -new -key server.key -out server.csr

$ cp server.key server.key.org

$ openssl rsa -in server.key.org -out server.key

最後标記證書使用上述私鑰和CSR:

$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

修改Nginx配置檔案,讓其包含新标記的證書和私鑰:

server {

   listen 443;

   server_name lisea.cn;

   index index.html index.htm;

   root /mnt/wwwroot/fm

  #ssl

  ssl on;    

   ssl_certificate /usr/local/nginx/conf/server.crt;   

   ssl_certificate_key /usr/local/nginx/conf/server.key;   

   ssl_session_timeout 5m;   

   ssl_ciphers ECDHE-RSA-AES128-GCM- SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;   

   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   

   ssl_prefer_server_ciphers on;

}

#通路永久重寫向至443端口

server {       

   listen       80;       

   server_name  lisea.cn;       

   rewrite ^(.*) https://$server_name$1 permanent;

service nginx reload

<a href="http://s2.51cto.com/wyfs02/M01/8C/70/wKioL1hswh2jEs9hAASsUurnROw336.png" target="_blank"></a>

以需求驅動技術,技術本身沒有優略之分,隻有業務之分。

      本文轉自asd1123509133 51CTO部落格,原文連結:http://blog.51cto.com/lisea/1889021,如需轉載請自行聯系原作者

繼續閱讀