nginx高級應用--------搭建https(SSL/TLS)

前言:HTTPS是什麼?
html

  超文本傳輸安全協議(縮寫:HTTPS,英語:Hypertext Transfer Protocol Secure)是超文本傳輸協議和SSL/TLS的組合,用以提供加密通信及對網絡服務器身份的鑑定。HTTPS鏈接常常被用於萬維網上的交易支付和企業信息系統中敏感信息的傳輸。HTTPS不該與在RFC 2660中定義的安全超文本傳輸協議(S-HTTP)相混。nginx

     HTTPS 目前已是全部注重隱私和安全的網站的首選,隨着技術的不斷髮展,HTTPS 網站已再也不是大型網站的專利,全部普通的我的站長和博客都可以本身動手搭建一個安全的加密的網站。web

     若是一個網站沒有加密,那麼你的全部賬號密碼都是明文傳輸。可想而知,若是涉及到隱私和金融問題,不加密的傳輸是多麼可怕的一件事。centos

1. 生成證書(可選, 有證書直接進入下一步)

能夠經過如下步驟生成一個簡單的證書:
首先,進入你想建立證書和私鑰的目錄,例如:安全

  1. $ cd /usr/local/nginx/conf服務器

建立服務器私鑰,命令會讓你輸入一個口令:網絡

  1. $ openssl genrsa -des3 -out server.key 1024session

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

  1. $ openssl req -new -key server.key -out server.csr測試

在加載SSL支持的Nginx並使用上述私鑰時除去必須的口令:

  1. $ cp server.key server.key.org

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


2. 配置nginx(測試域名lisea.cn)

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

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

修改Nginx配置文件,讓其包含新標記的證書和私鑰:

  1. server {

  2.    listen 443;

  3.    server_name lisea.cn;

  4.    index index.html index.htm;

  5.    root /mnt/wwwroot/fm

  6.   #ssl

  7.   ssl on;    

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

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

  10.    ssl_session_timeout 5m;   

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

  12.    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   

  13.    ssl_prefer_server_ciphers on;

  14. }


  15. #訪問永久重寫向至443端口

  16. server {       

  17.    listen       80;       

  18.    server_name  lisea.cn;       

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

  20. }

3.  重啓nginx

service nginx reload


4.  訪問測試(https://lisea.cn)

wKioL1hswh2jEs9hAASsUurnROw336.png


以需求驅動技術,技術自己沒有優略之分,只有業務之分。

相關文章
相關標籤/搜索