【运维知识进阶篇】集群架构-HTTPS证书详解(上)

简介: 【运维知识进阶篇】集群架构-HTTPS证书详解

94 篇文章0 订阅

订阅专栏

HTTPS证书在企业中非常重要,因为HTTP不安全,采用HTTP协议容易受到劫持和篡改,如果是采用HTTPS,数据在传输过程中加密,可以避免报文信息被窃取篡改,避免网站传输时信息泄露。实现https,要了解SSL协议,现在我们使用的大多是TLS加密协议了,HTTPS运行在应用层,TLS应用在表示层,是SSL协议发挥作用的一层,使应用层的HTTP协议在没有感知的情况下实现了数据的加密传输。

HTTP加密传输流程

浏览器发起请求,服务端接收请求,返回给浏览器证书、证书中包含公钥,浏览器判断证书是否合法,如果不合法进行警告提示。如果合法,生成随机数,通过公钥加密随机数,把加密后的随机数传输给服务端,服务端通过私钥解密获得随机数,通过传入随机数的对称加密,对数据进行加密,将加密后的内容传输给浏览器,浏览器根据本地存储的随机数进行解密。

模拟网站被篡改

1、配置Nginx文件

1. [root@Web01 test]# cat /etc/nginx/conf.d/test.conf server {
2.  listen 80;
3.  server_name test.koten.com;
4.  root /code/test;
5.  index index.html;
6.  charset utf-8;
7. }

2、配置Nginx页面

1. [root@Web01 test]# cat /code/test/index.html 
2. <!DOCTYPE html>
3. <html lang="en">
4. <head>
5. <meta charset="UTF-8">
6. <title>我是title</title>
7. </head>
8. <body>
9. <article>
10. <header>
11. <h1>你好</h1>
12. </header>
13. <p>
14. <b>你</b>最近过的好嘛?
15. </p>
16. <footer>
17. <p><small>版权所有@koten</small></p>
18. </footer>
19. </article>
20. </body>
21. </html>
22. [root@Web01 test]#

3、查看Nginx页面

4、配置Nginx拦截服务器

1. [root@Web02 ~]# vim /etc/nginx/conf.d/jiechi_test.conf
2. upstream jiechi {
3.         server 10.0.0.7:80;
4. }
5. 
6. server {
7.         listen 80;
8.         server_name test.koten.com;
9. 
10. location / {
11.                 proxy_pass http://jiechi;
12.                 proxy_set_header Host $http_host;
13.                 sub_filter '<h1>你好' '<h1>我好';
14.                 sub_filter '<small>版权所有' ' <sma
15. ll>开源';
16.         }
17. }
18. <t.conf" [New] 15L, 360C written 
19. [root@Web02 ~]# systemctl restart nginx

5、查看篡改后的内容

6、添加篡改广告

1. [root@web02 conf.d]# vim jiechi_test.conf
2. upstream jiechi {
3.         server 10.0.0.7:80;
4. }
5. 
6. server {
7.         listen 80;
8.         server_name test.koten.com;
9. 
10. location / {
11.                 proxy_pass http://jiechi;
12.                 proxy_set_header Host $http_host;
13.                 sub_filter '<h1>你好' '<h1>花生瓜子烤鱼片';
14.                 sub_filter '<small>版权所有' ' <small><img src="https://p6.itc.cn/q_70/images03/20201226/f979021adb324417bb6dd3889698ee0b.jpeg">';
15.         }
16. }
17. <hi_test.conf" 15L, 459C written 
18. [root@Web02 ~]# systemctl restart nginx

7、查看篡改界面

证书类型介绍

  域名型DV 企业型OV 增强型EV
绿色地址栏 小锁标记+HTTPS 小锁标记+HTTPS 小锁标记+企业名称+HTTPS
一般用途 个人站点,简单的HTTPS加密需求 电子商务站点和应用,中小型企业站点 大型金融平台,大型企业和政府机构站点
审核内容 域名所有权验证 全面的企业身份验证,域名所有权验证 最高等级的企业身份验证,域名所有权验证
颁发时长 几分钟-24小时 3-5工作日 5-7工作日
单次申请年限 1年 1-2年 1-2年
赔付保障金 125-175万美金 150-175美金

证书购买选择及注意事项

可以选择保护 一个域名www

                      五个域名www、images、cdn、test、m

                      通配符域名*.koten.com

注意

1、证书不支持续费,证书到期需要重新申请并进行替换

2、不支持三级域名解析,如test.m.koten.com

3、显示绿色,说明整个网站的URL都是HTTPS,显示黄色,说明网站代码中包含HTTP的不安全链接,显示红色,说明证书是假的或者证书过期。

 

Nginx单台服务器实现证书

1、Nginx上需要有--with-http_ssl_module模块,创建存放ssl证书的路径

1. [root@Web01 test]# mkdir -p /etc/nginx/ssl_key
2. [root@Web01 test]# cd /etc/nginx/ssl_key/
3. [root@Web01 ssl_key]#

2、使用openssl命令充当CA权威机构创建证书(生产不使用此方式生成证书,这是不被互联网认可的黑户证书)

1. [root@Web01 ssl_key]# openssl genrsa -idea -out server.key 2048
2. Generating RSA private key, 2048 bit long modulus
3. ...............................+++
4. .....+++
5. e is 65537 (0x10001)
6. Enter pass phrase for server.key:    #输入密码6666
7. Verifying - Enter pass phrase for server.key:
8. [root@Web01 ssl_key]#

3、生成自签证书,同时去掉私钥的密码

1. [root@Web01 ssl_key]# openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
2. Generating a 2048 bit RSA private key
3. ..............................................................................+++
4. ...+++
5. writing new private key to 'server.key'
6. -----
7. You are about to be asked to enter information that will be incorporated
8. into your certificate request.
9. What you are about to enter is what is called a Distinguished Name or a DN.
10. There are quite a few fields but you can leave some blank
11. For some fields there will be a default value,
12. If you enter '.', the field will be left blank.
13. -----
14. Country Name (2 letter code) [XX]:CN
15. State or Province Name (full name) []:BeiJing
16. Locality Name (eg, city) [Default City]:BeiJing
17. Organization Name (eg, company) [Default Company Ltd]:BeiJing 
18. Organizational Unit Name (eg, section) []:BeiJing
19. Common Name (eg, your name or your server's hostname) []:koten.com
20. Email Address []:666666@qq.com   
21. [root@Web01 ssl_key]# 
22. 
23. 
24. # req  --> 用于创建新的证书
25. # new  --> 表示创建的是新证书    
26. # x509 --> 表示定义证书的格式为标准格式
27. # key  --> 表示调用的私钥文件信息
28. # out  --> 表示输出证书文件信息
29. # days --> 表示证书的有效期

4、修改Nginx配置文件

1. [root@Web01 ssl_key]# cat /etc/nginx/conf.d/test.conf 
2. server {
3.         listen 443 ssl;
4.         server_name test.koten.com;
5.         ssl_certificate   /etc/nginx/ssl_key/server.crt;
6.         ssl_certificate_key  /etc/nginx/ssl_key/server.key;
7. location / {
8.                 root /code/test;
9. index index.html;
10.         }
11. }
12. 
13. #配置将用户访问http请求强制跳转https
14. server {
15.         listen 80;
16.         server_name test.koten.com;
17. return 302 https://$server_name$request_uri;
18. }
19. [root@Web01 ssl_key]# systemctl restart nginx
20. [root@Web01 ssl_key]# echo '测试ssl' > /code/test/index.html

5、浏览器访问

目录
相关文章
|
8月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
6月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
684 0
|
4月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
求助!怎么上传第三方HTTPS证书?为什么我上传lets encrypt的证书显示私钥格式异常?
用户上传证书时遇到问题,提示格式异常,已尝试转换RSA格式仍未解决。
|
6月前
|
人工智能 安全 算法
HTTPS 的「秘钥交换 + 证书校验」全流程
HTTPS 通过“证书如身份证、密钥交换如临时暗号”的握手流程,实现身份认证与数据加密双重保障,确保通信安全可靠。
635 0
|
9月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
3月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
6月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
331 0