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服务相关推荐

  1. 基于Nginx的https服务(ssl证书制作)

    一.证书作用 SSL证书属于数字证书的一种,类似于驾驶证.护照.遵循SSL协议,由信任的数字证书颁发机构CA在验证服务器身份后颁发: SSL证书的好处:参考链接https://baijiahao.ba ...

  2. 基于openssl的https服务的配置

    openssl实现私有CA,并配置基于openssl的https服务的配置,原理如下图 在CA服务器上实现私有CA步骤如下: 1.生成一对密钥 2.生成自签证书 基本的配置如下代码; [root@CA ...

  3. 基于 Nginx 的 HTTPS 性能优化实践

    前言 分享一个卓见云的较多客户遇到HTTPS优化案例. 随着相关浏览器对HTTP协议的"不安全".红色页面警告等严格措施的出台,以及向 iOS 应用的 ATS 要求和微信.支付宝小 ...

  4. 基于 Nginx 的 HTTPS 性能优化

    前言 分享一个卓见云的较多客户遇到HTTPS优化案例. 随着相关浏览器对HTTP协议的"不安全".红色页面警告等严格措施的出台,以及向 iOS 应用的 ATS 要求和微信.支付宝小 ...

  5. 基于Docker + Consul + Nginx + Consul-template的服务负载均衡实现

    前言 上一篇文章使用 Consul 和 Registrator 在 docker 的容器环境中搭建了服务注册和发现集群.在服务发现和注册的基础上,本文将引入 Nginx反向代理服务器和 Consul- ...

  6. 架构设计(3)---基于Nginx和Zookeeper实现Dubbo的分布式服务

    基于Nginx和Zookeeper实现Dubbo的分布式服务 一.前言 公司的项目基于阿里的Dubbo 微服务框架开发.为了符合相关监管部门的安全要求,公司购买了华东1.华东2两套异地服务器,一套是业 ...

  7. 「微服务架构」基于NGINX的三种微服务参考架构

    作者注:本博文是系列文章的第一篇: Introducing the NGINX Microservices Reference Architecture (this post) MRA, Part 2 ...

  8. 基于Nginx模块搭建直播服务

    转载请标明出处: https://blog.csdn.net/u014214308/article/details/82698542 直播技术原理: 客户端(A:主播,推流)通过摄像头采集到视频数据, ...

  9. [Jeson]Nginx入门到实践1-4章 ,关闭iptables,nginx重启,nginx缓存, 跨站访问,Rewrite规则,Https服务优化

    第4章 Nginx 与 Lua nginx 与 Lua Https服务优化 激活keepalive长连接 设置ssl session 缓存 动静分离 Rewrite规则 nginx 常见正则匹配符号表 ...

最新文章

  1. mysql的count报错_mysql的floor()报错注入方法详细分析
  2. 洛谷 - P3391 【模板】文艺平衡树(Splay-区间反转)
  3. 太平洋大西洋水流问题如何解决?一文了解图在前端中的应用
  4. jzoj4016-圈地为王【状压,bfs,几何】
  5. 服务化改造的云上利器 | 阿里云 EDAS 重大升级发布
  6. QT5 QSqlQuery的SELECT INSERT UPDATE DELETE命令用法
  7. 对Linux命令od -tc -tx1的C语言程序实现myod-优化版
  8. 最简单的jQuery程序
  9. gff文件_根据gff/gtf等注释文件取负链上的序列:先反向互补染色体再截取?还是先截取区间再反向互补序列?...
  10. SpringCloud工作笔记069---The Hystrix timeout of 60000ms for the command sc-auth is set lower than the
  11. 【Oracle】Oracle GoldenGate简介及搭建过程
  12. Ubuntu之安装摄像头软件GTK_UVC_Viewer
  13. RV1109 Linux SDK入门指南
  14. Win10+Anaconda创建新环境安装pytorch
  15. c语言程序设计第五版李丽娟_c语言程序设计第五版习题答案解析
  16. 测试低频噪音软件,低频噪音检测
  17. 作为一名基层管理者如何利用情商管理自己和团队(一)
  18. wps下一步快捷键_WPS中快捷键有哪些
  19. unity warning CS0108: test4.name' hides inherited memberUnityEngine.Object.name’.
  20. 计算机硬盘改造u盘,iPhone扩容硬盘不要扔!变废为宝!手把手教你如何改装U盘...

热门文章

  1. python中数字是常量吗,【python】常量与变量
  2. mysql置疑原因_SQLSERVER数据库经常置疑的原因
  3. python struct模块_python struct 模块
  4. matlab充分利用性能,Matlab高性能编程——代码优化和并行计算
  5. axios vue 加载效果动画_在vue中通过axios异步使用echarts
  6. SparkSQL之DataFrame案例
  7. 弃用官方网站!Python 将所有 Bug 迁移到 GitHub 中
  8. 看麻了!35岁奥地利总理辞职当码农
  9. 拥有此神技,脚本调试从此与 echo、set、test 说分手
  10. 希尔伯特曲线 java_Java中空间填充Hilbert曲线的递推算法