`
xitong
  • 浏览: 6208253 次
文章分类
社区版块
存档分类
最新评论

nginx搭建https服务器

 
阅读更多

HTTPS简介

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来讲就是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
它是一个URI scheme(抽象标识符体系),句法类同http:体系,用于安全的http数据传输。https使用的默认端口是443.

ssl证书

证书类型简介

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

但是内网实现一个服务器端和客户端传输内容的加密,可以自己给自己颁发证书,只需要忽略掉浏览器不信任的警报即可!

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

生成ssl证书

 openssl genrsa -des3 -out wangzhengyi.key 2048



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



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

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



搭建https虚拟主机

虚拟主机配置文件

upstream sslfpm {
	server 127.0.0.1:9000	weight=10	max_fails=3	fail_timeout=20s;
}

server { 
	listen       192.168.1.*:443; 
	server_name  192.168.1.*; 
	
	#为一个server开启ssl支持
	ssl                  on;
 	#为虚拟主机指定pem格式的证书文件
	ssl_certificate      /home/wangzhengyi/ssl/wangzhengyi.crt; 
	#为虚拟主机指定私钥文件
	ssl_certificate_key  /home/wangzhengyi/ssl/wangzhengyi_nopass.key; 
	#客户端能够重复使用存储在缓存中的会话参数时间
	ssl_session_timeout  5m;
	#指定使用的ssl协议 
	ssl_protocols  SSLv3 TLSv1; 
	#指定许可的密码描述
	ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; 
	#SSLv3和TLSv1协议的服务器密码需求优先级高于客户端密码
	ssl_prefer_server_ciphers   on; 

	location / { 
		root   /home/wangzhengyi/ssl/;
		autoindex on;
        	autoindex_exact_size    off;
        	autoindex_localtime on;
	} 
    	# redirect server error pages to the static page /50x.html
    	#
    	error_page   500 502 503 504  /50x.html;
    	error_page   404 /404.html;

	location = /50x.html {
        	root   /usr/share/nginx/www;
    	}
   	location = /404.html {
        	root   /usr/share/nginx/www;
    	}
    
    	# proxy the PHP scripts to fpm
    	location ~ \.php$ {
		access_log  /var/log/nginx/ssl/ssl.access.log  main;
		error_log /var/log/nginx/ssl/ssl.error.log;
		root /home/wangzhengyi/ssl/; 
		fastcgi_param	HTTPS 	on;
        	include /etc/nginx/fastcgi_params;  
        	fastcgi_pass    sslfpm;
    	}
}

HTTPS服务器优化

方法

SSL操作需要消耗CPU资源,所以在多处理器的系统,需要启动多个工作进程,而且数量需要不少于可用CPU的个数。最消耗CPU资源的SSL操作是SSL握手,有两种方法可以将每个客户端的握手操作数量降到最低:
  1. 保持客户端长连接,在一个SSL连接发送多个请求
  2. 在并发的连接或者后续的连接中重用SSL会话参数,这样可以避免SSL握手操作。

会话缓存用于保存SSL会话,这些缓存在工作进程间共享,可以使用ssl_session_cache指令进行配置。1M缓存可以存放约4000个会话。默认的缓存超时时间是5m,可以使用ssl_session_timeout加大它。

ssl_session_cache指令

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

优化示例

	#优化ssl服务
	ssl_session_cache	shared:wzy:10m; 
	#客户端能够重复使用存储在缓存中的会话参数时间
	ssl_session_timeout  10m;


参考链接


分享到:
评论
2 楼 langke93 2015-03-02  
wangzhengyi_nopass.key
这个怎么生成没写
1 楼 kun20031029 2013-06-25  
#优化ssl服务 
ssl_session_cache   shared:wzy:10m;  
#客户端能够重复使用存储在缓存中的会话参数时间 
ssl_session_timeout  10m; 

以上这个可以实现nginx的https的客户端请求过来的长连接吗?我配置了发现并不好使啊

相关推荐

    Nginx搭建https服务器1

    Nginx搭建https服务器1

    nginx搭建https服务器.docx编程资料

    nginx搭建https服务器.docx

    Nginx搭建https服务器教程

    主要为大家详细介绍了Nginx搭建https服务器教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法

    HTTPS简介 HTTPS(Hyper Text Transfer Protocol Secure),是一种基于SSL/TLS的HTTP,所有的HTTP数据都是在SSL/TLS...要设置安全服务器,使用公共钥创建一对公私钥对。大多数情况下,发送证书请求(包括自己的公钥),

    搭建nginx点播服务器

    Nginx是一款高性能的开源Web服务器,同时也可以用作点播(On-Demand)媒体服务器。点播服务器通常用于提供音频和视频文件的分发,以支持用户随时随地访问这些媒体内容。以下是Nginx作为点播服务器的一些特点和功能:...

    Linux下通过Nginx搭建RTMP流媒体服务器需要的一系列源码包

    压缩包里包含了: Linux下通Nginx搭建RTMP流媒体服务器需要的一系列源码包。 搭建方法可以参考博文: https://blog.csdn.net/xiaolong1126626497/article/details/105378894

    centos 6.3安装nginx 搭建文件服务器

    NULL 博文链接:https://ethanwooblog.iteye.com/blog/1611997

    nginx搭建自己的rtmp服务器

    nginx搭建自己的rtmp服务器,已配置好,可直接使用,附讲解文章https://blog.csdn.net/qq_39838728/article/details/135865780?spm=1001.2014.3001.5502

    nginx+ffmpeg流媒体服务器(java)

    基于java搭建的流媒体服务器(nginx+ffmpeg)可运行在linux上,具体文章说明:https://blog.csdn.net/weixin_40263855/article/details/87917484

    实战Nginx.取代Apache的高性能Web服务器

    11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心模块 12.1 主模块指令 12.2 主模块变量 12.3 事件模块指令 第13章 Nginx的标准HTTP模块 13.1 HTTP的核心模块 13.2 HTTP Upstream模块 ...

    Windows 下 Nginx+PHP+MySQL 服务器环境安装配置包

    包含 Nginx+PHP+MySQL 安装包,还有 OpenSSL 安装包和几个实用 bat 小脚本,涵盖了从搭建 Nginx,自签署 SSL 证书,配置 HTTPS ,部署和配置 Windows PHP 服务器环境,连接 MySQL 的全部所需软件。Linux 可能是搭建...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心模块 12.1 主模块指令 12.2 主模块变量 12.3 事件模块指令 第13章 Nginx的标准HTTP模块 13.1 HTTP的核心模块 13.2 HTTP Upstream模块 13.3 ...

    rk3399移植 nginx +rtmp实现流媒体服务器

    rk3399移植 nginx +rtmp实现流媒体服务器,实现rk3399推送网络视频流(rtmp、https),使用时在根目录下新建/home/build 文件夹,解压后进入/home/build/build/conf,打开nginx.conf 添加rtmp配置(网上很多根据自己...

    nginx-rtmp服务器搭建的教材及资源

    2,nginx依赖以下模块: 1,rewrite模块需要 pcre 库 官网:http://www.pcre.org/ 下载文件的链接:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.bz2 2,ssl 功能需要 openssl 库 ...

    教你搭建http php java服务器+ssl证书=https网站,Linux+Nginx-Apache PHP-Tomcat java+SSL证书.zip

    手把手教你搭建https服务器,部署ssl证书到php java服务器(Nginx-Apache PHP-Tomcat java+SSL证书) 1.购买免费的SSL证书 2.下载SSL证书 3.往nginx上新增ssl 4.往Apache上新增ssl 5.往Tomcat上新增ssl 6.解决警告 7....

    windows环境搭建的直播、点播服务器 nginx 1.7.11.3 Gryphon.rar

    搭建一个 ffmpeg+nginx的视频服务器: windows: 参考 https://blog.csdn.net/Contex_A17/article/details/82191050 注意点:1、要下载 nginx 1.7.11.3 Gryphon版本的nginx,因为windows不好加nginx模块,这...

    Nginx+SSL搭建 HTTPS 网站

    一、HTTPS 是什么?...HTTPS 目前已经是所有注重隐私和安全的网站的首选,随着技术的不断发展,HTTPS 网站已不再是大型网站的专利,所有普通的个人站长和博客均可以自己动手搭建一个安全的加密的网站。 如

    实战nginx-张宴

    11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心模块 12.1 主模块指令 12.2 主模块变量 12.3 事件模块指令 第13章 Nginx的标准HTTP模块 13.1 HTTP的核心模块 13.2 HTTP Upstream模块 13.3 ...

    利用nginx与ffmpeg搭建流媒体服务器过程详解

    本文介绍的是利用nginx和ffmpeg搭建流媒体服务器的过程。例如这种场景:公司内部需要同时观看在线直播时,如果每个人直接观看必然给出口带宽带来压力,影响正常访问外网的同事。所以可以在内网通过nginx+ffmpeg拉...

Global site tag (gtag.js) - Google Analytics