nginx ssl配置
来源:互联网 发布:higo出租软件 编辑:程序博客网 时间:2024/05/01 09:43
1. 全站ssl
全站做ssl是最常见的一个使用场景,默认端口443,而且一般是单向认证。
server { listen 443; server_name example.com; root /apps/www; index index.html index.htm; ssl on; ssl_certificate ../SSL/ittest.pem; ssl_certificate_key ../SSL/ittest.key;# ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;# ssl_prefer_server_ciphers on;}
如果想把http的请求强制转到https的话:
server { listen 80; server_name example.me; rewrite ^ https://$server_name$request_uri? permanent;### 使用return的效率会更高 # return 301 https://$server_name$request_uri;}
ssl_certificate
证书其实是个公钥,它会被发送到连接服务器的每个客户端,ssl_certificate_key
私钥是用来解密的,所以它的权限要得到保护但nginx的主进程能够读取。当然私钥和证书可以放在一个证书文件中,这种方式也只有公钥证书才发送到client。
ssl_protocols
指令用于启动特定的加密协议,nginx在1.1.13和1.0.12版本后默认是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2
,TLSv1.1与TLSv1.2要确保OpenSSL >= 1.0.1 ,SSLv3 现在还有很多地方在用但有不少被攻击的漏洞。
ssl_ciphers
选择加密套件,不同的浏览器所支持的套件(和顺序)可能会不同。这里指定的是OpenSSL库能够识别的写法,你可以通过 openssl -v cipher 'RC4:HIGH:!aNULL:!MD5'
(后面是你所指定的套件加密算法) 来看所支持算法。
ssl_prefer_server_ciphers on
设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件。
https优化参数
ssl_session_cache shared:SSL:10m;
: 设置ssl/tls会话缓存的类型和大小。如果设置了这个参数一般是shared
,buildin
可能会参数内存碎片,默认是none
,和off
差不多,停用缓存。如shared:SSL:10m
表示我所有的nginx工作进程共享ssl会话缓存,官网介绍说1M可以存放约4000个sessions。 详细参考serverfault上的问答ssl_session_cache。ssl_session_timeout
: 客户端可以重用会话缓存中ssl参数的过期时间,内网系统默认5分钟太短了,可以设成30m
即30分钟甚至4h
。
设置较长的keepalive_timeout
也可以减少请求ssl会话协商的开销,但同时得考虑线程的并发数了。
提示:在生成证书请求csr文件时,如果输入了密码,nginx每次启动时都会提示输入这个密码,可以使用私钥来生成解密后的key来代替,效果是一样的,达到免密码重启的效果:
HTTPS服务器优化
SSL操作需要消耗CPU资源,所以在多处理器的系统,需要启动多个工作进程,而且数量需要不少于可用CPU的个数。最消耗CPU资源的SSL操作是SSL握手,有两种方法可以将每个客户端的握手操作数量降到最低:第一种是保持客户端长连接,在一个SSL连接发送多个请求,第二种是在并发的连接或者后续的连接中重用SSL会话参数,这样可以避免SSL握手的操作。会话缓存用于保存SSL会话,这些缓存在工作进程间共享,可以使用ssl_session_cache指令进行配置。1M缓存可以存放大约4000个会话。默认的缓存超时是5分钟,可以使用ssl_session_timeout加大它。下面是一个针对4核系统的配置优化的例子,使用10M的共享会话缓存:
worker_processes 4;http { ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; server { listen 443; server_name www.example.com; keepalive_timeout 70; ssl on; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ...
- nginx ssl 登陆配置
- nginx ssl 配置
- nginx中配置SSL
- nginx配置赛门铁克ssl
- Nginx 配置SSL访问
- CentOS配置Nginx SSL
- nginx配置ssl
- nginx配置ssl
- nginx ssl配置
- nginx配置SSL(https)
- nginx 配置ssl
- nginx配置ssl证书
- nginx配置ssl
- nginx ssl配置
- Nginx配置SSL协议
- nginx 配置ssl加密
- Apache&Nginx开启SSL配置
- Nginx的SSL配置优化
- 第十一天:制定进度计划、错题整理、进度压缩、资源平衡和资源平滑、关键路径和关键链对比
- 205. Isomorphic Strings
- 275. H-Index II
- 人的潜力和极限
- Python中maxint与系统位数(32/64)的关系
- nginx ssl配置
- 使用ImageNet在faster-rcnn上训练自己的分类网络
- 条件编译
- Codeforces 358 . B Alyona and Mex
- C#基础(2)
- Linux内核驱动之DDR3(一)寻址
- Python 资源大全中文版
- C/C++框架和库
- mac vim IDE插件安装