Nginx高級模塊
- secure_link_module模塊
- 制定 並允許檢查請求的鏈接的真實性以及保護資源免遭未經授權的訪問
- 限制鏈接生效週期
md5:加密驗證 expires:過期校驗
safe_down.conf 配置
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
root /opt/app/code;
location / {
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri baidu";#baidu爲自定義字符串
if ($secure_link = "") {
return 403;
}
if ($secure_link = "0") {
return 410;
}
}
}
-
geoip_module模塊:國內(浙江訪問浙江,江蘇訪問江蘇)用戶訪問國內服務器,國外用戶訪問國外服務器
- 基於IP地址匹配MaxMind GeoIP二進制文件,讀取IP所在地域信息
- yum install nginx-module-geoip
geo.conf 配置
geoip_country /etc/nginx/geoip/GeoIP.dat; geoip_city /etc/nginx/geoip/GeoLiteCity.dat; server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { if ($geoip_country_code != CN) { return 403; } root /usr/share/nginx/html; index index.html index.htm; } location /myip { default_type text/plain; return 200 "$remote_addr $geoip_country_name $geoip_country_code $geoip_city"; } ...... }
HTTPS服務
- CA簽名證書可以防止中間人劫持
- 生成密鑰和CA證書
服務器上自己配置HTTPS證書生成流程:
-
openssl version 查看openssl的版本屬性(雙重檢查:rpm -qa|grep open)
-
cd /etc/nginx/ 下mkdir ssl_key文件夾
-
在ssl_key文件夾下面生成密鑰文件:openssl genrsa -idea -out cyj.key 1024
-
填寫完密碼後再根據key文件生成csr文件:openssl req -new -key cyj.key -out cyj.csr
-
根據信息填寫完之後,再把csr和key文件打包生成crt文件,有效期10年:
openssl x509 -req -days 3650 -in cyj.csr -signkey cyj.key -out cyj.crt
-
ssl.conf配置文件
server { listen 443 ssl;#nginx1.15版本之後開啓https server_name ip crt內寫的hostname; ssl on; #nginx1.15版本之後就可以去掉這個,才用listen..ssl ssl_certificate /etc/nginx/ssl_key/jesonc.crt; ssl_certificate_key /etc/nginx/ssl_key/jesonc.key; #ssl_certificate_key /etc/nginx/ssl_key/jesonc_nopass.key; index index.html index.htm; location / { root /opt/app/code; } }
-
nginx -s stop -c /etc/nginx/nginx.conf,需要輸入你設置的key密碼
-
nginx -c /etc/nginx/nginx.conf 啓動nginx
-
查看端口號:netstat -luntp|grep 443
配置蘋果要求的證書
- 服務器所有的連接使用TLS1.2以上版本
- HTTPS證書必須使用SHA256以上哈希算法前簽名
- HTTPS證書必須使用RSA 2048位或ECC 256位以上公鑰算法
- 使用前向加密技術
開始配置
- 查看openssl版本號:openssl version 1.0.2k以上
- 查看證書算法類型:openssl x509 -noout -text -in ./cyj.crt
- 根據key文件直接生成crt文件:openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout(重啓nginx不用輸入密碼) cyj.key -out cyj_apple.crt
- 其他配置都跟上面相同
HTTPS服務優化
-
激活keepalive長連接
-
設置ssl session緩存
server { listen 443 ssl; server_name localhost; keepalive_timeout 100; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_certificate /etc/nginx/ssl_key/cyj.crt; ssl_certificate_key /etc/nginx/ssl_key/cyj.key; index index.html index.htm; location / { root /opt/app/code; } }