nginx搭建httpsserver

HTTPS简单介绍

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来讲就是HTTP的安全版。即HTTP下增加SSL层,HTTPS的安全基础是SSL。因此加密的具体内容就须要SSL。

它是一个URI scheme(抽象标识符体系),句法类同http:体系,用于安全的http传输数据。https使用的默认port是443.

ssl证书

证书类型简单介绍

要设置安全server,使用公共钥创建一对公私钥对。大多数情况下。发送证书请求(包含自己的公钥),你的公司证明材料以及费用到一个证书颁发机构(CA).CA验证证书请求及您的身份。然后将证书返回给您的安全server。

可是内网实现一个server端和client传输内容的加密,能够自己给自己颁发证书。仅仅须要忽略掉浏览器不信任的警报就可以!

由CA签署的证书为您的server提供两个重要的功能:

  • 浏览器会自己主动识别证书而且在不提示用户的情况下同意创建一个安全连接
  • 当一个CA生成一个签署过的证书,它为提供网页给浏览器的组织提供身份担保。
  • 多数支持ssl的webserver都有一个CA列表,它们的证书会被自己主动接受。当一个浏览器遇到一个其授权CA并不在列表中的证书,浏览器将询问用户是否接受或拒绝连接

生成ssl证书

Html代码  

  1. openssl genrsa -des3 -out wangzhengyi.key 2048

Html代码  

  1. openssl req -new -key wangzhengyi.key -out wangzhengyi.csr

创建一个自己签署的CA证书

Html代码  

  1. openssl req -new -x509 -days 3650 -key wangzhengyi_nopass.key -out wangzhengyi.crt

搭建https虚拟主机

虚拟主机配置文件

Html代码  

  1. upstream sslfpm {
  2. server 127.0.0.1:9000   weight=10   max_fails=3 fail_timeout=20s;
  3. }
  4. server {
  5. listen       192.168.1.*:443;
  6. server_name  192.168.1.*;
  7. #为一个server开启ssl支持
  8. ssl                  on;
  9. #为虚拟主机指定pem格式的证书文件
  10. ssl_certificate      /home/wangzhengyi/ssl/wangzhengyi.crt;
  11. #为虚拟主机指定私钥文件
  12. ssl_certificate_key  /home/wangzhengyi/ssl/wangzhengyi_nopass.key;
  13. #client可以反复使用存储在缓存中的会话參数时间
  14. ssl_session_timeout  5m;
  15. #指定使用的ssl协议
  16. ssl_protocols  SSLv3 TLSv1;
  17. #指定许可的password描写叙述
  18. ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
  19. #SSLv3和TLSv1协议的服务器password需求优先级高于clientpassword
  20. ssl_prefer_server_ciphers   on;
  21. location / {
  22. root   /home/wangzhengyi/ssl/;
  23. autoindex on;
  24. autoindex_exact_size    off;
  25. autoindex_localtime on;
  26. }
  27. # redirect server error pages to the static page /50x.html
  28. #
  29. error_page   500 502 503 504  /50x.html;
  30. error_page   404 /404.html;
  31. location = /50x.html {
  32. root   /usr/share/nginx/www;
  33. }
  34. location = /404.html {
  35. root   /usr/share/nginx/www;
  36. }
  37. # proxy the PHP scripts to fpm
  38. location ~ \.php$ {
  39. access_log  /var/log/nginx/ssl/ssl.access.log  main;
  40. error_log /var/log/nginx/ssl/ssl.error.log;
  41. root /home/wangzhengyi/ssl/;
  42. fastcgi_param   HTTPS   on;
  43. include /etc/nginx/fastcgi_params;
  44. fastcgi_pass    sslfpm;
  45. }
  46. }

HTTPSserver优化

方法

SSL操作须要消耗CPU资源。所以在多处理器的系统,须要启动多个工作进程,并且数量须要不少于可用CPU的个数。最消耗CPU资源的SSL操作是SSL握手。有两种方法能够将每一个client的握手操作数量降到最低:

  1. 保持client长连接。在一个SSL连接发送多个请求
  2. 在并发的连接或者兴许的连接中重用SSL会话參数,这样能够避免SSL握手操作。

会话缓存用于保存SSL会话,这些缓存在工作进程间共享,能够使用ssl_session_cache指令进行配置。

1M缓存能够存放约4000个会话。默认的缓存超时时间是5m。能够使用ssl_session_timeout加大它。

ssl_session_cache指令

Html代码  

  1. 语法:ssl_session_cache off|none|builtin:size|shared:name:size
  2. 使用环境:main,server
  3. 缓存类型:
  4. off -- 硬关闭,nginx明白告诉client这个会话不可重用
  5. none -- 软关闭,nginx告诉client会话可以被重用,可是nginx实际上不会重用它们
  6. bultin -- openssl内置缓存,仅可用于一个工作进程.可能导致内存碎片
  7. shared -- 全部工作进程的共享缓存。(1)缓存大小用字节数指定(2)每一个缓存必须拥有自己的名称(3)同名的缓存可用于多个虚拟主机

优化演示样例

Html代码  

  1. #优化ssl服务
  2. ssl_session_cache   shared:wzy:10m;
  3. #client可以反复使用存储在缓存中的会话參数时间
  4. ssl_session_timeout  10m;

參考链接

http://nginx.org/cn/docs/http/configuring_https_servers.html

时间: 2024-12-18 11:51:23

nginx搭建httpsserver的相关文章

nginx搭建https单向证书

一)默认情况下ssl模块并未被安装,如果使用该模块则需要在编译nginx的时指定--with-http_ssl_module参数. wget http://nginx.org/download/nginx-1.3.16.tar.gz tar -xf nginx-1.3.16.tar.gz -C /usr/local/ cd /usr/local/nginx-1.3.16/ ./configure --prefix=/usr/local/nginx --user=nginx --group=ngi

keepalived+nginx搭建高可用and负载均衡集群

keepalived+nginx搭建高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都由主进程发出,Slave(worke

Nginx搭建反向代理服务器过程详解 - Windows

本文主要是Nginx做一个简单的反向服务器代理和静态文件缓存. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器 我们就开始动手吧. 1. Vistudio 创建两个简单的 WebApplication (Web Forms),一个叫WebApplication1,一个叫 WebApplication2. 为了区别

nginx搭建支持http和rtmp协议的流媒体服务器之一

实验目的: 让Nginx支持flv和mp4格式文件,支持RTMP协议的直播和点播: 同时打开RTMP的HLS功能 ?资料: HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议. HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器. 它也很容易使用内容分发网络来传输媒体流. 使用ffmpeg来完成对flv.mp4.mp3等格式的转化(点播实验暂时不测试) 一.准备工作

nginx搭建的过程遇到的一些问题

在centos6.*中搭建nginx中遇到的一些问题. 安装nginx之前,要先确定是否安装gcc.OpenSSL-devel.pcre-devel和zlib-devel软件库. 安装好上边的这些库之后,继续安装nginx,在启动的时候出现了 error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or.... 由于操作的linux系统是64位的 通过 ldd

vsftpd+nginx搭建图片服务器的一些问题

前言 五月份做了一个项目,其中有一个vsftpd+nginx搭建图片服务器的部分,一直出现错误,在控制台上显示上传成功,可是访问相关图片页面却一直访问不了,想了几天也没解决,于是这个bug就一直放在那,直到今天才解决. 一.安装vsftpd+nginx 这里网上都是资料,不多阐述 二.vsftpd遇到的错误    1.启动systemctl start vsftpd 发生错误: 解决方法 1)按照网上说的,把vsftpd.conf配置文件下的#listen_ipv6=YES注释掉或者改为NO 2

[转]用jwplayer+Nginx搭建视频点播服务器,解决拖动加载慢的问题

flv视频可以采用两种方式发布: 一.普通的HTTP下载方式 二.基于Flash Media Server或Red5服务器的rtmp/rtmpt流媒体方式. 多数知名视频网站都采用的是前一种方式. 两种方式对比如下:Http :生成关键帧后可拖动播放. 下载完成后不再消耗服务器资源Rtmp/rtmpt: 任意拖动播放 .无缓存,每次播放都会消耗服务器资源 这里说一下怎么用nginx 搭建http 方式的视频点播服务器,主要分为三步: 一.      nginx安装及配置1.    下载nginx

nginx搭建图片服务器

http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用. 安装nginx wget http://nginx.org/download/nginx-1.7.3.tar.gz 安装gd yum install gd-devel 安装p

Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器

Nginx搭建部署Web服务器并与NFS结合搭建负载均衡服务器 一.搭建NginxWeb服务器     此种方式是用yum安装Nginx,为保证安装成功需在安装之前提前安装epel扩展源.     用yum安装Nginx     关闭系统防火墙           查看Nginx配置文件          安装完成后启动Nginx并查看其运行状态          然后在客户端浏览器里面输入Nginx服务器的IP地址即可验证Nginx工作正常      二.搭建NFS服务器     NFS:网络