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证书内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- docker启动nginx容器命令(Docker安装Nginx教程实现图例讲解)
- nginx和apache(为什么 Nginx 比 Apache 更牛逼)
- docker nginx 配置详解(Docker 如何安装 Nginx)
- 如何设置nginx使用ip访问(nginx基于域名,端口,不同IP的虚拟主机设置的实现)
- linux nginx部署前端项目(nginx部署多前端项目的几种方法)
- linux下安装nginx常见问题(Linux安装Nginx步骤详解)
- nginx+ssl配置详解(nginx配置ssl实现https的方法示例)
- nginx与tomcat长连接(Windows下使用Nginx+Tomcat做负载均衡的完整步骤)
- thinkphp静态怎么设置(浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法)
- nginx http转https配置(Nginx配置并兼容HTTP实现代码解析)
- linux nginx搭建(Ubuntu使用nginx搭建webdav文件服务器的详细过程)
- nginx事件模型有几种(Python实现监控Nginx配置文件的不同并发送邮件报警功能示例)
- nginxdocker界面(Docker部署nginx实现过程图文详解)
- nginx 配置https(Nginx下配置Https证书详细过程)
- nginx怎么实现反向代理(nginx反向代理时如何保持长连接)
- nginx文件夹限制ip访问(基于Nginx实现限制某IP短时间访问次数)
- 贾怀胤唱《白龙马》 炸场 了 没想到京剧还能这么玩(贾怀胤唱白龙马)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
- 朱鹤松被不断认可,凤凰传奇玲花喊话岳云鹏,索要老朱演出门票(朱鹤松被不断认可)
- 元宵晚会槽点多,芒果台上来就假唱,岳云鹏不说相声改评书了(元宵晚会槽点多)
- 岳云鹏跟凤凰传奇谈心,说出了人生中最重要的三个人,这才成功(岳云鹏跟凤凰传奇谈心)
热门推荐
- js的三种使用方法(JS带你深入领略Proxy的世界)
- iphone h5调试(H5页面适配iPhoneX就是那么简单)
- python数据表教程(详解Python sys.argv使用方法)
- css中有几种样式表(深入浅出学习层叠样式表--css推荐)
- sqlserver 存储过程参数类型(详解SQL Server表和索引存储结构)
- 云主机异常状态(如何维护好云主机?减少云主机的故障率)
- python 从入门到实践笔记(python基础梳理一推荐)
- docker容器端口和内部进程(Docker动态给容器Container暴露端口操作)
- mysql数据备份的几种方式(MySQL数据库备份过程的注意事项)
- php读取远程的txt文件(php 根据URL下载远程图片、压缩包、pdf等文件到本地)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9