nginx 配置https(Nginx下配置Https证书详细过程)
nginx 配置https
Nginx下配置Https证书详细过程一、Http与Https的区别
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
二、使用openssl生成证书
openssl是目前最流行的SSL密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS协议的实现。
比如生成到:/usr/local/ssl
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/ssl/nginx.key -out /usr/local/ssl/nginx.crt
生成过程:
# openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /u sr/local/ssl/nginx.key -out /usr/local/ssl/nginx.crt Generating a 2048 bit RSA private key ...............................................................................+ ++ ...............+++ writing new private key to '/usr/local/ssl/nginx.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:beijing Locality Name (eg, city) [Default City]:beijing Organization Name (eg, company) [Default Company Ltd]:xxxx Organizational Unit Name (eg, section) []:xxxx Common Name (eg, your name or your server's hostname) []:xxxx(一般是域名) Email Address []:xxxx@xxxx.com # ll total 8 -rw-r--r--. 1 root root 1391 Apr 21 13:29 nginx.crt -rw-r--r--. 1 root root 1704 Apr 21 13:29 nginx.key
三、Nginx安装http_ssl_module模块
Nginx如果未开启SSL模块,配置Https时提示错误。
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:xxx
nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了。
本场景是服务器已经安装过nginx,但是未安装http_ssl_module。
1.进入到源码包,如:
cd /app/download/nginx-1.12.2
2.configure:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #可能需要的依赖包 yum -y install pcre-devel openssl openssl-devel
3.make:
make
4.不需要执行make install,否则就覆盖安装了。
5.备份原有的nginx,如:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak
6.然后将刚刚编译好的nginx覆盖掉原有的nginx(nginx需要停止)
cp ./objs/nginx /usr/local/nginx/sbin/
7.查看安装情况:
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
四、nginx配置https
贴部分配置信息:
server { listen 80; server_name www.yourdomain.com; rewrite ^(.*) https://$server_name$1 permanent; #http 跳转 https }
server { listen 443 ssl; server_name www.yourdomain.com; ssl_certificate /usr/local/ssl/nginx.crt; ssl_certificate_key /usr/local/ssl/nginx.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; #禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击 server_tokens off; #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问 fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; access_log /usr/local/nginx/logs/httpsaccess.log; }
先检验配置的对不对:
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
重启nginx:
/usr/local/nginx/sbin/nginx -s reload
访问:
到此这篇关于Nginx下配置Https证书详细过程的文章就介绍到这了,更多相关Nginx配置Https证书内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- nginx集群技巧(Vmware部署Nginx+KeepAlived集群双主架构的问题及解决方法)
- nginx服务器有什么用(Nginx的作用详解,为什么在Web服务器中Nginx的比例越来越高?)
- nginx启动报错连接失败(宝塔面板Nginx环境中出现404 Not Found的解决方法)
- nginx https 域名配置(阿里云Nginx配置https实现域名访问项目图文教程)
- nginx 正向和反向代理(Nginx反向代理入门实战指南)
- 宝塔nginx配置修改(宝塔面板安装Tengine报错:nginx: [emerg] invalid IPv6 address in resolver)
- 新手nginx反向代理问题(详解Nginx proxy_pass的一个/斜杠引发的血案)
- nginx和lua哪个好(nginx+lua单机上万并发的实现)
- 如何提高nginx性能(提升Nginx性能的一些建议)
- centos7 离线安装nginx(centos8安装nginx1.9.1的详细过程)
- nginx如何配置多个域名访问(Nginx同一个域名配置多个项目的实现方法)
- nginx前后端跨域(Nginx解决前端访问资源跨域问题的方法详解)
- nginx http转https配置(Nginx配置并兼容HTTP实现代码解析)
- linuxnginx常用状态命令(nginx常用命令放入shell脚本详解)
- 如何认识服务器(关于Nginx、Apache、Tomcat三个WEB服务器的区别和认知)
- nginx中https配置(Nginx配置同一个域名同时支持http与https两种方式访问实现)
- 自制橡皮泥(自制橡皮泥)
- 还在卖 禁药西布曲明网上论斤卖(还在卖禁药西布曲明网上论斤卖)
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
热门推荐
- docker镜像内安装python包(如何使用Docker搭建pypi私有仓库)
- nginx proxypass配置(nginx location中多个if里面proxy_pass的方法)
- JavaScriptSerializer对Json对象的序列化和反序列化
- html5的新特性
- mysql权限收回(MySQL如何利用DCL管理用户和控制权限)
- python装饰器怎么编写(Python函数装饰器常见使用方法实例详解)
- python气温变化数据分析(基于python历史天气采集的分析)
- docker怎么设置参数(浅谈docker --privileged=true参数作用)
- extjs中treepanel属性和方法
- 404页面如何设置
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9