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服务器和apache服务器(Nginx vs Apache两大web服务器比较)
- nginx做图片服务器代理(使用nginx动态转换图片大小生成缩略图)
- nginx启动报错连接失败(宝塔面板Nginx环境中出现404 Not Found的解决方法)
- 静态web服务器nginx(WEB服务器该选择 Apache 还是 Nginx?)
- nginx配置ip端口访问(Nginx配置80端口访问8080及项目名地址方法解析)
- nginx流媒体服务搭建与应用(用nginx+FastDFS一步步搭建文件管理系统)
- nginx反向代理端口号(nginx 代理80端口转443端口的实现)
- nginx怎么支持http转https(Nginx域名转发https访问的实现)
- nginx的15种优化方案(Nginx开启Brotli压缩算法实现过程详解)
- nginx指令大全(Nginx常用技巧使用实例汇总)
- nginx proxy设置存放在哪里(nginx配置proxy_pass中url末尾带/与不带/的区别详解)
- nginx查看请求协议(Nginx之Http模块系列之autoindex模块的具体使用)
- dedecms标签调用原理(DEDECMS安全设置 执行php脚本限制设置方法apache+nginx)
- nginx反向代理流程详解(本地通过nginx配置反向代理的全过程记录)
- nginx 使用手册(nginx服务器的下载安装与使用详解)
- nginxpython编写模块(Python开发之Nginx+uWSGI+virtualenv多项目部署教程)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
热门推荐
- CentOS 7下安装配置proftpd搭建ftp服务器的详细教程(CentOS 7下安装配置proftpd搭建ftp服务器的详细教程)
- css特效边框流线动画(CSS 动画实现动态气泡背景的方法)
- wordpress如何在文章中自定义html(wordpress添加Html5的表单验证required方法小结)
- 怎么搭建apache服务器(Apache配置多个站点的方法)
- php中字符串反转的函数(php常用字符串查找函数strstr与strpos实例分析)
- 所有聚合函数mysql教程(Mysql 聚合函数嵌套使用操作)
- sql server建表语句带字段说明(SqlServer给表增加多个字段的语法)
- 如何利用python编写日期的程序(Python读取指定日期邮件的实例)
- python定义dataframe(对python dataframe逻辑取值的方法详解)
- IIS应用程序池中ApplicationPoolIdentity
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9