小沨的天空

  • 首页
  • 网盘
  • 图床
  • 赞助
  • 关于本站
私人小天地
谈天说地,学习笔记
  1. 首页
  2. Linux
  3. 正文

Nginx SSL配置/优化方案(转)

2016年1月21日 2591点热度 1人点赞 0条评论

Nginx SSL配置/优化方案 ,晚上一个群里的朋友分享的很详细,我就转到博客留备用。
该配置方案是本站自用的配置方案,在SSL Labs测试中可以获得A+的最佳评级。
Nginx站点配置文件一般位置:/usr/local/nginx/conf/vhost

server {
listen 443 ssl http2;

#开启HTTP严格安全传输(HSTS),非已经决定长期使用SSL的站长慎用!
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

#SSL证书文件位置
ssl_certificate /root/SSL/ECC/Seryo.net.crt;
ssl_certificate_key /root/SSL/ECC/Seryo.net.key;

#SSL优化配置
ssl_session_timeout 10m;    #SSL session过期时间
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    #只允许TLS协议
ssl_prefer_server_ciphers on;    #由服务器协商最佳的加密算法
ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:AES128+EECDH:AES128+EDH:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;    #OCPS开启
ssl_stapling_verify on;    #OCPS验证开启
resolver 8.8.8.8 8.8.4.4 valid=300s;    #用于查询OCPS服务器的DNS
resolver_timeout 5s;

#一般站点配置
server_name seryo.net www.seryo.net;
access_log /data/wwwlogs/seryo.net_nginx.log combined;
index index.html index.htm index.php;
include /usr/local/nginx/conf/typecho.conf;
root /data/wwwroot/seryo.net;

#重定向www到根域名
if ($host != seryo.net) {
    rewrite ^/(.*)$ $scheme://seryo.net/$1 permanent;
    }

location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    access_log off;
    }
location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
}
server {
listen 80;
server_name seryo.net;

#将HTTP请求重写到HTTPS
rewrite ^/(.*) https://$server_name/$1 permanent;
}

适用于一般RSA证书的Nginx SSL优化配置

之前的文章中已经提供了一份拥有较强安全性的SSL配置,但是如果你不想更换证书也不希望太过复杂的配置,则只需要更新一下两项,就可以获得足够高的安全性

一般网站评级较低的原因都是这两个:

1、使用的证书密钥交换密钥过弱

2、使用过时且不安全的加密算法:RC4

那么我们就将解决这两个问题

证书密钥交换密钥过弱
一般网站使用的SSL证书都是RSA证书,这种证书基本都是2048位的密钥,但是证书密钥交换密钥必须要比证书密钥更长才能安全,而默认的只有1024位,所以我们需要手动生成一个更强的密钥。

安装screen

(防止密钥生成过程中SSH连接中断)
CentOS/RHEL

yum -y install screen

Debian/Ubuntu

apt-get -y install screen

生成4096位的DH-Key(证书密钥交换密钥)

最好和SSL证书放在一起,方便管理

screen -S DH

openssl dhparam -out dhparam.pem 4096

然后就是漫长的等待。。。


在Nginx中配置DH-Key

在你的站点配置文件中(一般在/usr/local/nginx/conf/vhost),SSL证书位置的下方加入一行:

ssl_dhparam /文件位置/dhparam.pem;

将文件位置替换为你的DH-Key所在目录的【绝对路径】即可。

解决密钥套件过弱

在你的站点配置文件中(一般在/usr/local/nginx/conf/vhost)中SSL配置信息中加入(如果有则直接替换):

ssl_prefer_server_ciphers on;    #由服务器协商最佳的加密算法
ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:AES128+EECDH:AES128+EDH:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_session_cache builtin:1000 shared:SSL:10m;    #使用了CHACHA20算法,能够提升网站在移动设备上的打开速度,需要在Nginx中编译LibreSSL库,你也可以使用Seryo Network提供的Nginx一键编译脚本。

意:如果你的Nginx不支持CHACHA20算法,则删除ECDHE-ECDSA-CHACHA20-POLY1305:即可。
让你的Nginx支持最潮流最快捷的CHACHA20算法:

Nginx一键更新脚本
这个也是本站自用的Nginx编译配置,采用最新的Nginx1.9.9版本,增加了LibreSSL的支持(可以使用CHACHA20算法),并且添加了一些有用的模块,具体可以在下方找到说明。
采用了的编译参数:

./configure \
 --prefix=/usr/local/nginx \
 --user=www \
 --group=www \
 --http-client-body-temp-path=/var/tmp/nginx/client \
 --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
 --http-proxy-temp-path=/var/tmp/nginx/proxy \
 --http-scgi-temp-path=/var/tmp/nginx/scgi \
 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
 --with-http_ssl_module \
 --with-http_gzip_static_module \
 --with-ipv6 \
 --with-http_sub_module \
 --with-http_stub_status_module \
 --with-http_v2_module \
 --with-http_flv_module \
 --with-http_realip_module \
 --with-ld-opt="-ljemalloc -lrt" \
 --add-module=ngx_http_google_filter_module \
 --add-module=ngx_http_substitutions_filter_module \
 --with-openssl=libressl-${LIBRESSL_VERSION} \
 --with-http_gunzip_module
使用方法:

1、下载脚本

wget -P /root https://www.seryo.moe/nginx.sh

2、赋予执行权限

chmod +x nginx.sh

3、运行,然后等待安装

yum -y install screen && screen -S nginx && ./nginx.sh

双核CPU的服务器请下载以下版本:

wget -P /root https://www.seryo.moe/nginx_core2.sh

以上内容来源:
https://seryo.net/7.Seryo
https://seryo.net/17.Seryo
https://seryo.net/8.Seryo
https://wiki.phoenixlzx.com/page/NGINX/
https://doc.ssl.do/page/install-nginx/

标签: nginx ssl 优化
最后更新:2018年12月10日

mikj

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
站内搜索
最新 热点 随机
最新 热点 随机
东莞凤岗Urcove逸扉酒店—一次愉快的入住体验 满5美元提现,每天签到和购物返现的网站 Win10蓝牙链接wifi热点网络和Win10使用蓝牙共享网络分享 Gravatar头像的镜像使用Cloudflare Workers反代自建 如何在论文中使用证据 acme申请google Public Certificate 免费ssl 证书应用LNMP Ubuntu的远程桌面环境使用Docker与Xfce Azure100美金使用开源的Azure 管理面板 网站Cloudflare使用CDN后如何获取前端真实客户IP Win10 共享文件夹(设置账户密码与终止所有连接)
东莞凤岗Urcove逸扉酒店—一次愉快的入住体验
Nginx + https + 免费SSL证书配置指南 CentOS5 升级php和mysql到最新版本转 twitter host 最新IP 通过Teredo快速设置Windows ipv6,连接只有ipv6 ip的VPS BackLinks卖链接赚美元 Linode VPS PPTP VPN 安装配置教程 cloudflare 简单的防火墙规则(Firewall Rules) QQ网购1分钱充值1元手机话费 日本conoha vps ubuntu安装锐速,更换内核 小技巧
标签聚合
月捐 免费 域名 安装 wordpress 升级 vps Cloudflare centos linux php 插件 DirectAdmin debian 服务器 ubuntu 系统 代码 网盘 LNMP
分类
  • Linux
  • VPS服务器
  • windows
  • wordpress
  • 域名相关
  • 建站分享
  • 教程学习
  • 数据库类
  • 旅行
  • 未分类
  • 资源分享
友情链接
  • 2.int.ru
  • 小沨记事本
  • 怪鸟博客
  • semnew
  • 豆博
  • 陈否否
  • 午夜客
  • 寥寥后花园
  • 傻子-跸西的blog
  • 夜狐
  • QQPCC
  • 回到未来博客
  • 我的图库
  • 爱购啦
  • 娃娃博客
  • 轨迹博客
  • 撸羊毛
  • 朱志瑞
  • Shucheng Li
  • QQTM论坛
  • vzone
  • 死老鬼
  • 天下无鱼
  • 麦麦同学
  • 我喔喔喔
  • 李子博客
AD

COPYRIGHT © 2023 Xinai.De. ALL RIGHTS RESERVED.@ 网站运行:@ 服务器运行状态

Theme Kratos Made By Seaton Jiang