最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx配置并兼容HTTP實(shí)現(xiàn)代碼解析

 更新時(shí)間:2020年11月30日 14:45:35   作者:-零  
這篇文章主要介紹了Nginx配置并兼容HTTP實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

使用 OpenSSL 生成 SSL Key 和 CSR 文件

配置 HTTPS 要用到私鑰 example.key 文件和 example.crt 證書(shū)文件,申請(qǐng)證書(shū)文件的時(shí)候要用到 example.csr 文件,OpenSSL 命令可以生成 example.key 文件和 example.csr 證書(shū)文件。

CSR:Cerificate Signing Request,證書(shū)簽署請(qǐng)求文件,里面包含申請(qǐng)者的 DN(Distinguished Name,標(biāo)識(shí)名)和公鑰信息,在第三方證書(shū)頒發(fā)機(jī)構(gòu)簽署證書(shū)的時(shí)候需要提供。證書(shū)頒發(fā)機(jī)構(gòu)拿到 CSR 后使用其根證書(shū)私鑰對(duì)證書(shū)進(jìn)行加密并生成 CRT 證書(shū)文件,里面包含證書(shū)加密信息以及申請(qǐng)者的 DN 及公鑰信息

Key:證書(shū)申請(qǐng)者私鑰文件,和證書(shū)里面的公鑰配對(duì)使用,在 HTTPS 『握手』通訊過(guò)程需要使用私鑰去解密客戶端發(fā)來(lái)的經(jīng)過(guò)證書(shū)公鑰加密的隨機(jī)數(shù)信息,是 HTTPS 加密通訊過(guò)程非常重要的文件,在配置 HTTPS 的時(shí)候要用到

使用 OpenSSl命令可以在系統(tǒng)當(dāng)前目錄生成 example.key 和 example.csr 文件:

openssl req -new -newkey rsa:2048 -sha256 -nodes -out example_com.csr -keyout example_com.key -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=Example Inc./OU=Web Security/CN=example.com"

下面是上述命令相關(guān)字段含義:

  • C:Country ,單位所在國(guó)家,為兩位數(shù)的國(guó)家縮寫(xiě),如: CN 就是中國(guó)
  • ST 字段: State/Province ,單位所在州或省
  • L 字段: Locality ,單位所在城市 / 或縣區(qū)
  • O 字段: Organization ,此網(wǎng)站的單位名稱;
  • OU 字段: Organization Unit,下屬部門(mén)名稱;也常常用于顯示其他證書(shū)相關(guān)信息,如證書(shū)類(lèi)型,證書(shū)產(chǎn)品名稱或身份驗(yàn)證類(lèi)型或驗(yàn)證內(nèi)容等;
  • CN 字段: Common Name ,網(wǎng)站的域名;

生成 csr 文件后,提供給 CA 機(jī)構(gòu),簽署成功后,就會(huì)得到一個(gè) example.crt 證書(shū)文件,SSL 證書(shū)文件獲得后,就可以在 Nginx 配置文件里配置 HTTPS 了。

配置 HTTPS

基礎(chǔ)配置

要開(kāi)啟 HTTPS 服務(wù),在配置文件信息塊(server block),必須使用監(jiān)聽(tīng)命令 listen 的 ssl 參數(shù)和定義服務(wù)器證書(shū)文件和私鑰文件,如下所示:

	
server {
  #ssl參數(shù)
  listen       443 ssl;
  server_name     example.com;
  #證書(shū)文件
  ssl_certificate   example.com.crt;
  #私鑰文件
  ssl_certificate_key example.com.key;
  ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers     HIGH:!aNULL:!MD5;
  #...
}

證書(shū)文件會(huì)作為公用實(shí)體發(fā)送到每臺(tái)連接到服務(wù)器的客戶端,私鑰文件作為安全實(shí)體,應(yīng)該被存放在具有一定權(quán)限限制的目錄文件,并保證 Nginx 主進(jìn)程有存取權(quán)限。

私鑰文件也有可能會(huì)和證書(shū)文件同放在一個(gè)文件中,如下面情況:

ssl_certificate www.example.com.cert;
ssl_certificate_key www.example.com.cert;

這種情況下,證書(shū)文件的的讀取權(quán)限也應(yīng)該加以限制,僅管證書(shū)和私鑰存放在同一個(gè)文件里,但是只有證書(shū)會(huì)被發(fā)送到客戶端

命令 ssl_protocols 和 ssl_ciphers 可以用來(lái)限制連接只包含 SSL/TLS 的加強(qiáng)版本和算法,默認(rèn)值如下:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

由于這兩個(gè)命令的默認(rèn)值已經(jīng)好幾次發(fā)生了改變,因此不建議顯性定義,除非有需要額外定義的值,如定義 D-H 算法:

#使用DH文件
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#定義算法
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
#...

HTTP強(qiáng)制轉(zhuǎn)HTTPS

另外配置一個(gè)server塊,監(jiān)聽(tīng)80端口,再加上rewrite。

server { 
  listen 80;
  server_name 服務(wù)器ip;   
  rewrite ^(.*)$ https://$host$1 permanent; #http強(qiáng)制轉(zhuǎn)https
}

server配置參考

server { 
  listen 80;
  server_name 服務(wù)器ip;   
  rewrite ^(.*)$ https://$host$1 permanent; #http強(qiáng)制轉(zhuǎn)https
}
server {
  charset utf-8;       #服務(wù)器編碼
  listen 443 ssl;      #監(jiān)聽(tīng)地址
  server_name 服務(wù)器ip;  #證書(shū)綁定的網(wǎng)站域名
  server_tokens off;     #隱藏nginx版本號(hào)
  
  #ssl配置
  ssl_certificate  /etc/ssl/certs/nginx-selfsigned.crt; #證書(shū)公鑰
  ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;  #證書(shū)私鑰
  ssl_session_timeout 5m;
  ssl_ciphers SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers off;
  ssl_dhparam /etc/nginx/dhparams.pem;  

  #請(qǐng)求頭
  add_header Strict‐Transport‐Security max‐age=63072000;
  add_header X-Frame-Options SAMEORIGIN;
  add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
  add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block";
  add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
  add_header Set-Cookie "HttpOnly";
  add_header Set-Cookie "Secure";
  
  #請(qǐng)求方法限制
  ## Only allow these request methods ##
   if ($request_method !~ ^(GET|POST|DELETE|PUT|PATCH)$ ) {
     return 444;
   }
  
  #訪問(wèn)路徑匹配
  location / {
    root /usr/share/nginx/html; #站點(diǎn)目錄
      index index.html index.htm;
  }
  location /test/ {
     proxy_pass http://127.0.0.1:8100/; #轉(zhuǎn)發(fā)本地端口8100
  }
 
  #禁止訪問(wèn)路徑
  # location /dirdeny {
  #   deny all;
  #   return 403;
  #}

  #錯(cuò)誤頁(yè)面配置
  error_page  502 503 504 /error502.html;
    location = /error502.html{
    root /usr/share/nginx/html;
  }
  error_page  500 /error.html;
   location = /error.html{
      root /usr/share/nginx/html;
    }
  error_page  404 /notfind.html;
   location = /notfind.html{
      root /usr/share/nginx/html;
    }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Nginx反向代理在Web應(yīng)用中的實(shí)戰(zhàn)分享

    Nginx反向代理在Web應(yīng)用中的實(shí)戰(zhàn)分享

    本文將介紹Nginx反向代理的基本原理和配置,以及如何利用Nginx實(shí)現(xiàn)高可用性和故障轉(zhuǎn)移,最后,我們將探討如何監(jiān)控Nginx反向代理的性能并進(jìn)行日志分析,需要的朋友可以參考下
    2024-08-08
  • Nginx?Gunicorn?flask項(xiàng)目部署思路分析詳解

    Nginx?Gunicorn?flask項(xiàng)目部署思路分析詳解

    這篇文章主要為大家介紹了Nginx?Gunicorn?flask項(xiàng)目部署思路分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Linux下Nginx服務(wù)設(shè)置開(kāi)機(jī)自啟動(dòng)的命令詳解

    Linux下Nginx服務(wù)設(shè)置開(kāi)機(jī)自啟動(dòng)的命令詳解

    這篇文章主要介紹了Linux下Nginx服務(wù)設(shè)置開(kāi)機(jī)自啟動(dòng)的命令,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-09-09
  • Nginx反代Mogilefs分布式儲(chǔ)存示例詳解

    Nginx反代Mogilefs分布式儲(chǔ)存示例詳解

    這篇文章主要給大家介紹了關(guān)于Nginx反代Mogilefs分布式儲(chǔ)存的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Nginx中的用戶認(rèn)證配置及阻止用戶使用代理訪問(wèn)的方法

    Nginx中的用戶認(rèn)證配置及阻止用戶使用代理訪問(wèn)的方法

    這篇文章主要介紹了Nginx中的用戶認(rèn)證配置及阻止用戶使用代理訪問(wèn)的方法,用戶認(rèn)證部分用到了自帶的ngx_http_auth_basic_module模塊,需要的朋友可以參考下
    2016-01-01
  • Nginx由于反向代理導(dǎo)致502錯(cuò)誤的原因與解決

    Nginx由于反向代理導(dǎo)致502錯(cuò)誤的原因與解決

    這篇文章主要為大家詳細(xì)介紹了Nginx由于反向代理導(dǎo)致502錯(cuò)誤的原因和相關(guān)的解決方法,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2025-04-04
  • Nginx的c30k問(wèn)題解決方法

    Nginx的c30k問(wèn)題解決方法

    這篇文章主要介紹了Nginx的c30k問(wèn)題解決方法,本文同時(shí)探討了Nginx AIO的使用問(wèn)題,需要的朋友可以參考下
    2014-09-09
  • nginx代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法

    nginx代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法

    今天小編就為大家分享一篇關(guān)于nginx代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Django+Nginx+uwsgi服務(wù)器部署

    Django+Nginx+uwsgi服務(wù)器部署

    這篇文章介紹了Django+Nginx+uwsgi服務(wù)器部署的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • nginx將https協(xié)議反向代理到http協(xié)議請(qǐng)求上

    nginx將https協(xié)議反向代理到http協(xié)議請(qǐng)求上

    在項(xiàng)目正式上線時(shí),一般會(huì)申請(qǐng)域名和證書(shū)來(lái)實(shí)現(xiàn)https的服務(wù),本文主要介紹了nginx將https協(xié)議反向代理到http協(xié)議請(qǐng)求上,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05

最新評(píng)論

瑞丽市| 龙井市| 和平县| 桦川县| 旬阳县| 安多县| 雷波县| 湘潭市| 恩施市| 城固县| 陆河县| 天长市| 陈巴尔虎旗| 济阳县| 虹口区| 宕昌县| 竹北市| 象州县| 丰镇市| 永胜县| 兰溪市| 马公市| 囊谦县| 毕节市| 浦江县| 加查县| 柘荣县| 新绛县| 桑植县| 丽水市| 昭觉县| 景谷| 雅江县| 孙吴县| 平江县| 于都县| 明水县| 长垣县| 洱源县| 邢台县| 鄂伦春自治旗|