国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

詳解Nginx SSL快速雙向認證配置(腳本)

2024-08-30 12:23:28
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了詳解Nginx SSL快速雙向認證配置(腳本),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

目前遇到一個項目有安全性要求,要求只有個別用戶有權限訪問。本著能用配置解決就絕不用代碼解決的原則,在Nginx上做一下限制和修改即可。

這種需求其實實現方式很多,經過綜合評估考慮,覺得SSL雙向認證方案對用戶使用最簡單,遂決定用此方案。

注: 本方案在Ubuntu Server 16.04 LTS實施,其他操作系統請酌情修改

SSL雙向認證

絕大多數SSL應用都以單向認證為主,即客戶端只要信任服務端,就可以使用服務端的公鑰加密后向服務端發起請求,由服務端的私鑰解密之后獲得請求數據。

如果這個過程反過來,讓服務端信任客戶端,服務端使用客戶端的公鑰加密之后將數據返回給客戶端,其實也是可以做到的,原理和實現跟單向認證都差不多。

服務端信任客戶端的操作往往也會伴隨著客戶端認證服務端的過程,所以讓服務端信任客戶端的SSL認證方式往往也被稱為SSL雙向認證,并且要配置SSL雙向認證必須先開啟服務端SSL,先配置客戶端信任服務端。

Nginx的SSL雙向認證配置

第一步 開啟https訪問

根據理論知識,我們必須先開啟Nginx的SSL配置,即啟用https。這個過程較為簡單,目前有let's encrypt這種免費的證書方案,再也不用發愁自己搭建CA自簽了。申請免費證書的過程略過,直接貼啟用https的配置:

server { listen 80; listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # 只有Nginx >= 1.13.0 版本才支持TLSv1.3協議 # ssl_protocols TLSv1.3; # Nginx低于1.13.0版本用這個配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;  ssl_dhparam dhparam.pem; # openssl dhparam -out /etc/nginx/dhparam.pem 4096 ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0 ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; # Requires nginx >= 1.5.9 ssl_stapling on; # Requires nginx >= 1.3.7 ssl_stapling_verify on; # Requires nginx => 1.3.7 resolver 223.5.5.5 114.114.114.114 valid=300s; resolver_timeout 5s;  # 啟用HSTS的配置,如果你的域名下還有非標準端口訪問的http應用,請勿啟用HSTS # add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; # 下面這個配置會拒絕Frame標簽內容,請確認你的網站沒有frame / iframe add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; # 為了let's encrypt續期用,不用let's encrypt不需要這個location location /.well-known {  root /usr/share/nginx/html; }  ... SNIP ... # 強制http跳轉為https if ($scheme != "https") {  return 301 https://$http_host$request_uri; }}

以上那一大堆ssl的配置參考來自于: https://cipherli.st/ 加強SSL的安全性配置

特別注意最后的強制https跳轉,我們的目的是SSL雙向認證,不走https無任何意義,所以必須強制跳轉https。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴城市| 晋中市| 西平县| 历史| 兴业县| 忻州市| 于都县| 团风县| 富顺县| 阿合奇县| 周宁县| 呼玛县| 凌海市| 顺义区| 新源县| 绥宁县| 临漳县| 耒阳市| 玛纳斯县| 连江县| 保山市| 肃北| 霞浦县| 浦江县| 滨州市| 无极县| 瑞金市| 醴陵市| 永福县| 龙州县| 宜宾市| 隆昌县| 永寿县| 儋州市| 荥阳市| 岳池县| 华池县| 万载县| 龙门县| 泽库县| 保山市|