基于Nginx的https服务
1、HTTPS协议的实现
1、为什么需要HTTPS?
原因:HTTP不安全
- 1、传输数据被中间人盗用、信息泄露
- 2、数据内容劫持、篡改
对传输内容进行加密以及身份验证
2、对称加密
非对称加密
3、HTTPS加密协议原理
4、中间人伪造客户端和服务端
证书是在客户端的,进行校验。
2、生成密钥和CA证书
#openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
#nginx-v
-with-http_ssl_module
步骤一、生成key密钥
[root@web-01 ssl_key]# openssl genrsa -idea -out lewen.key 1024
Generating RSA private key, 1024 bit long modulus
......................................++++++
..............................++++++
e is 65537 (0x10001)
Enter pass phrase for lewen.key: #密码要写.或者不写
Verifying - Enter pass phrase for lewen.key:
View Code
步骤二、生成证书签名请求文件(csr文件)
[root@web-01 ssl_key]# openssl req -new -key lewen.key -out lewen.csr
Enter pass phrase for lewen.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) []:SZ
Locality Name (eg, city) [Default City]:futian
Organization Name (eg, company) [Default Company Ltd]:fadewalk
Organizational Unit Name (eg, section) []:fadewalk.com
Common Name (eg, your name or your server's hostname) []:fadewalk.com
Email Address []:fadewalk@163.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: #没有要求就为空
An optional company name []:
[root@web-01 ssl_key]# ls
lewen.csr lewen.key
View Code
步骤三、生成证书签名文件(CA文件)
[root@web-01 ssl_key]# openssl x509 -req -days 3650 -in lewen.csr -signkey lewen.key -out lewen.crt
Signature ok
subject=/C=CN/ST=SZ/L=futian/O=fadewalk/OU=fadewalk.com/CN=fadewalk.com/emailAddress=fadewalk@163.com
Getting Private key
Enter pass phrase for lewen.key:
[root@web-01 ssl_key]# ls
lewen.crt lewen.csr lewen.key
View Code
3、Nginx的HTTPS语法配置
例子server {listen 443 ssl;keepalive_timeout 70;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;ssl_certificate /usr/local/nginx/conf/cert.pem;ssl_certificate_key /usr/local/nginx/conf/cert.key;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;...}[root@web-01 ~]# nginx -s reloadnginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/conf.d/cp4/test_https.conf:4key设置了密码,每次重启都要输入密码很麻烦
4、场景-配置苹果要求的证书
a、服务器所有的连接使用TLS1.2以上版本(openssl 1.0.2)
b、HTTPS证书必须使用SHA 256以上哈希算法签名
C、HTTPS证书必须使用RSA 2048位或ECC256位以上公钥算法
d、使用前向加密技术
查看证书信息
[root@web-01 ssl_key]# openssl x509 -noout -text -in ./lewen_apple.crt
一键生成证书
[root@web-01 ssl_key]# openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout lewen.key -out lewen_apple.crt
Generating a 2048 bit RSA private key
......................................................................................+++
..+++
writing new private key to 'lewen.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) []:guangdong
Locality Name (eg, city) [Default City]:sz
Organization Name (eg, company) [Default Company Ltd]:fadewlak
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
[root@web-01 ssl_key]# ls
lewen_apple.crt lewen.key
View Code
nginx 1.15 以后开启ssl的正确姿势
2019/06/17 17:06:54 [warn] 36807#36807: the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/conf.d/cp4/test_https.conf:4
不推荐使用“ssl”指令,而是在/etc/nginx/conf.d/cp4/test_https中使用“listen ... ssl”指令。CONF:4
ssl on 这种方式开启ssl已经不行了
listen 443 ssl 采用这种
测试网页自己生成的证书,会被提示不安全
去掉之前分步生成输入的保护码
openssl rsa -in ./lewen.key -out ./lewen_nopassword.key
5、HTTPS服务优化
方法一、激活keepalive长连接
方法二、设置ssl session缓存
server {listen 443 ssl;server_name web01.fadewalk.com;# ssl on; nginx 1.15之后这样配置无效keepalive_timeout 100;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;ssl_certificate /etc/nginx/ssl_key/lewen_apple.crt;ssl_certificate_key /etc/nginx/ssl_key/lewen.key;#ssl_certificate_key /etc/nginx/ssl_key/lewen_nopass.key;location / {root /opt/app/code/cp4/code;index lewen.html lewen.htm;}
}
基于Nginx的https服务相关推荐
- 基于Nginx的https服务(ssl证书制作)
一.证书作用 SSL证书属于数字证书的一种,类似于驾驶证.护照.遵循SSL协议,由信任的数字证书颁发机构CA在验证服务器身份后颁发: SSL证书的好处:参考链接https://baijiahao.ba ...
- 基于openssl的https服务的配置
openssl实现私有CA,并配置基于openssl的https服务的配置,原理如下图 在CA服务器上实现私有CA步骤如下: 1.生成一对密钥 2.生成自签证书 基本的配置如下代码; [root@CA ...
- 基于 Nginx 的 HTTPS 性能优化实践
前言 分享一个卓见云的较多客户遇到HTTPS优化案例. 随着相关浏览器对HTTP协议的"不安全".红色页面警告等严格措施的出台,以及向 iOS 应用的 ATS 要求和微信.支付宝小 ...
- 基于 Nginx 的 HTTPS 性能优化
前言 分享一个卓见云的较多客户遇到HTTPS优化案例. 随着相关浏览器对HTTP协议的"不安全".红色页面警告等严格措施的出台,以及向 iOS 应用的 ATS 要求和微信.支付宝小 ...
- 基于Docker + Consul + Nginx + Consul-template的服务负载均衡实现
前言 上一篇文章使用 Consul 和 Registrator 在 docker 的容器环境中搭建了服务注册和发现集群.在服务发现和注册的基础上,本文将引入 Nginx反向代理服务器和 Consul- ...
- 架构设计(3)---基于Nginx和Zookeeper实现Dubbo的分布式服务
基于Nginx和Zookeeper实现Dubbo的分布式服务 一.前言 公司的项目基于阿里的Dubbo 微服务框架开发.为了符合相关监管部门的安全要求,公司购买了华东1.华东2两套异地服务器,一套是业 ...
- 「微服务架构」基于NGINX的三种微服务参考架构
作者注:本博文是系列文章的第一篇: Introducing the NGINX Microservices Reference Architecture (this post) MRA, Part 2 ...
- 基于Nginx模块搭建直播服务
转载请标明出处: https://blog.csdn.net/u014214308/article/details/82698542 直播技术原理: 客户端(A:主播,推流)通过摄像头采集到视频数据, ...
- [Jeson]Nginx入门到实践1-4章 ,关闭iptables,nginx重启,nginx缓存, 跨站访问,Rewrite规则,Https服务优化
第4章 Nginx 与 Lua nginx 与 Lua Https服务优化 激活keepalive长连接 设置ssl session 缓存 动静分离 Rewrite规则 nginx 常见正则匹配符号表 ...
最新文章
- mysql的count报错_mysql的floor()报错注入方法详细分析
- 洛谷 - P3391 【模板】文艺平衡树(Splay-区间反转)
- 太平洋大西洋水流问题如何解决?一文了解图在前端中的应用
- jzoj4016-圈地为王【状压,bfs,几何】
- 服务化改造的云上利器 | 阿里云 EDAS 重大升级发布
- QT5 QSqlQuery的SELECT INSERT UPDATE DELETE命令用法
- 对Linux命令od -tc -tx1的C语言程序实现myod-优化版
- 最简单的jQuery程序
- gff文件_根据gff/gtf等注释文件取负链上的序列:先反向互补染色体再截取?还是先截取区间再反向互补序列?...
- SpringCloud工作笔记069---The Hystrix timeout of 60000ms for the command sc-auth is set lower than the
- 【Oracle】Oracle GoldenGate简介及搭建过程
- Ubuntu之安装摄像头软件GTK_UVC_Viewer
- RV1109 Linux SDK入门指南
- Win10+Anaconda创建新环境安装pytorch
- c语言程序设计第五版李丽娟_c语言程序设计第五版习题答案解析
- 测试低频噪音软件,低频噪音检测
- 作为一名基层管理者如何利用情商管理自己和团队(一)
- wps下一步快捷键_WPS中快捷键有哪些
- unity warning CS0108: test4.name' hides inherited memberUnityEngine.Object.name’.
- 计算机硬盘改造u盘,iPhone扩容硬盘不要扔!变废为宝!手把手教你如何改装U盘...
热门文章
- python中数字是常量吗,【python】常量与变量
- mysql置疑原因_SQLSERVER数据库经常置疑的原因
- python struct模块_python struct 模块
- matlab充分利用性能,Matlab高性能编程——代码优化和并行计算
- axios vue 加载效果动画_在vue中通过axios异步使用echarts
- SparkSQL之DataFrame案例
- 弃用官方网站!Python 将所有 Bug 迁移到 GitHub 中
- 看麻了!35岁奥地利总理辞职当码农
- 拥有此神技,脚本调试从此与 echo、set、test 说分手
- 希尔伯特曲线 java_Java中空间填充Hilbert曲线的递推算法