麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB服務 > 正文

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

2020-03-22 19:11:29
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于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 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。

第二步 生成客戶端證書并簽證(腳本)

這個過程詳細描述的文章太多了,這里就不啰嗦介紹openssl和簽證過程了,本篇內容是快速生成雙向認證配置的證書,所以直接貼腳本就行了,命令都是參考互聯網上各種openssl雙向配置文檔,在此基礎之上進行了命令上的簡化與非交互式的支持。

整個目錄結構如圖:

# tree /etc/nginx/ssl_certs//etc/nginx/ssl_certs/├── create_ca_cert.sh├── create_client_cert.sh├── revoke_cert.sh0 directories, 3 files

自行創建/etc/nginx/ssl_certs/,放入三個腳本,分別用于生成CA證書以及CA目錄(create_ca_cert.sh腳本的作用,只有第一次需要運行),創建客戶端證書,并用CA證書簽證(create_client_cert.sh腳本的作用,必須先生成CA證書),revoke_cert.sh腳本用于吊銷證書,需要收回權限的時候可以使用。

每個腳本內容如下:

create_ca_cert.sh

#!/bin/bash -e# 創建CA根證書# 非交互式方式創建以下內容:# 國家名(2個字母的代號)ST=ShannxiL=Xian# 公司名O=My Company# 組織或部門名OU=技術部# 服務器FQDN或頒發者名CN=www.example.com# 郵箱地址[email protected] -p ./demoCA/{private,newcerts}touch ./demoCA/index.txt[ ! -f ./demoCA/seria ] echo 01 ./demoCA/serial[ ! -f ./demoCA/crlnumber ] echo 01 ./demoCA/crlnumber[ ! -f ./demoCA/cacert.pem ] openssl req -utf8 -new -x509 -days 36500 -newkey rsa:2048 -nodes -keyout ./demoCA/private/cakey.pem -out ./demoCA/cacert.pem -subj /C=${C}/ST=${ST}/L=${L}/O=${O}/OU=${OU}/CN=${CN}/emailAddress=${emailAddress} [ ! -f ./demoCA/private/ca.crl ] openssl ca -crldays 36500 -gencrl -out ./demoCA/private/ca.crl         

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国内精品久久久久久久星辰影视 | 久久草在线观看视频 | 91精品国产乱码久久久久久久久 | 成人毛片免费 | 九草在线视频 | 欧美成年视频 | 欧美日韩在线中文 | 亚洲一区二区三区高清 | 成人免费毛片一 | 中日无线码1区 | 精品一区二区亚洲 | 亚洲精品一区二区三区免 | 一本一本久久a久久精品综合小说 | 一本在线高清码电影 | 国产乱淫av片免费网站 | 久久精品中文字幕一区二区三区 | 一级α片免费看 | 欧美亚洲国产一区 | 综合97| 成人福利在线视频 | 日韩色视频在线观看 | 欧美四级在线观看 | 羞羞视频免费网站含羞草 | 男人的天堂色偷偷 | 成人毛片100免费观看 | 黄色高清av| 麻豆19禁国产青草精品 | 亚洲二区三区在线 | 日韩a毛片免费观看 | 精品国产成人 | 黄色特级视频 | h视频免费看 | 成人在线免费小视频 | 久久福利电影网 | 草b视频在线观看 | 欧美一区二区片 | 国产欧美精品综合一区 | 在线看免电影网站 | 国内精品久久久久久久影视红豆 | www.99re1.com | 视频一区二区三区中文字幕 |