11. Nginx进阶-HTTPS

简介

基本概述

SSL

SSL是安全套接层。
主要用于认证用户和服务器,确保数据发送到正确的客户机和服务器上。
SSL可以加密数据,防止数据中途被窃取。
SSL也可以维护数据的完整性,确保数据在传输过程中不被改变。

HTTPS

HTTPS就是基于SSL来实现的安全通信。

证书

证书用于保证密钥的合法性。
证书的主体可以是用户、服务、计算机等。
证书的格式准信X.509标准。
数字证书包含如下信息:

  1. 使用者的公钥值;
  2. 使用者标识信息(如名称和电子邮件地址);
  3. 有效期(证书的有效时间);
  4. 颁发者表示信息;
  5. 颁发者的数字签名;
  6. 注意:数字证书由权威公正的第三方机构签发。

小知识

  1. HTTPS证书的选择
    1. 专业版OV型证书,不显示企业名称
    2. 高级版EV型证书,显示企业名称
  2. HTTPS证书购买选择
    1. 通配符域名,如:*.o-learn.cn
    2. 保护域名,如:www.baidu.com
  3. HTTPS注意事项
    1. HTTPS不支持三级域名解析;
    2. HTTPS不支持续费,证书到期后需要重新申请并进行替换;
    3. HTTPS显示绿色,表示整个网站的URL都是HTTPS的;
    4. HTTPS显示黄色,表示网站中包含HTTP的不安全连接;
    5. HTTPS显示红色,表示证书过期或者证书是假的;

配置场景

应用

申请证书

私有证书

  1. 检查OpenSSL工具
    1. 检查是否安装
openssl --version
  1. 如未安装,以下命令安装
yum install openssl openssl-devel
  1. 检查nginx的ssl模块
nginx -V 2>&1 | grep ssl
#with-http_ssl_module
  1. 生成密钥
    1. 创建密钥目录
mkdir -p /www/ssl_key
cd /www/ssl_key
  1. 生成密钥
openssl genrsa -des3 -out wang_mingqu_com.key 1024# Generating RSA private key, 1024 bit long modulus
# ...++++++
# ..................................................................++++++
# e is 65537 (0x10001)
# Enter pass phrase for https.key: 123456
# Verifying - Enter pass phrase for https.key: 123456
  1. 删除私钥的密码
openssl rsa -in wang_mingqu_com.key -out wang_mingqu_com.key# Enter pass phrase for https.key: 123456
# writing RSA key
  1. 生成证书
    1. 创建签名请求证书
openssl req -new -key wang_mingqu_com.key -out wang_mingqu_com.csr# 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) []:HeNan
# Locality Name (eg, city) [Default City]:ZhengZhou
# Organization Name (eg, company) [Default Company Ltd]:MingQuKeJi
# Organizational Unit Name (eg, section) []:YunWeiBu
# Common Name (eg, your name or your server's hostname) []:wang.mingqu.com
# Email Address []:15515190288@163.com# Please enter the following 'extra' attributes
# to be sent with your certificate request
# A challenge password []:
# An optional company name []:
  1. 生成SSL证书
openssl x509 -req -days 365 -in wang_mingqu_com.csr -signkey wang_mingqu_com.key -out wang_mingqu_com.crt# Signature ok
# subject=/C=CN/ST=HeNan/L=ZhengZhou/O=MingQuKeJi/OU=YunWeiBu/CN=wang.mingqu.com/emailAddress=15515190288@163.com
# Getting Private key
  1. 查看证书和密钥
ll /www/ssl_key/
total 28
-rw-r--r-- 1 root  root  981 Feb 26 16:36 wang_mingqu_com.crt
-rw-r--r-- 1 root  root   716 Feb 26 16:32 wang_mingqu_com.csr
-rw-r--r-- 1 root  root  887 Feb 26 16:30 wang_mingqu_com.key

公网证书

配置HTTPS

  1. 创建证书存放目录
mkdir -p /etc/nginx/ssl_key
cp /www/ssl_key/wang_mingqu_com.crt /etc/nginx/ssl_key/
cp /www/ssl_key/wang_mingqu_com.key /etc/nginx/ssl_key/
chown -R nginx:nginx /etc/nginx/ssl_key/
  1. 编辑nginx配置文件

路径:/etc/nginx/conf.d/wangmingqu.conf

server {listen 443 ssl;server_name wang.mingqu.com;charset utf-8;#配置https证书#ssl on; 新版本nginx中无需添加此行。#证书的存放路径ssl_certificate /etc/nginx/ssl_key/wang_mingqu_com.crt;ssl_certificate_key /etc/nginx/ssl_key/wang_mingqu_com.key;#证书的缓存有效期ssl_session_timeout 5m;#证书的加密算法ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#安全链接可选的加密协议ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#使用服务器端的首选算法ssl_prefer_server_ciphers on;location / {root /www/wangmingqu/html;index index.html index.htm;}
}#跳转HTTPS
server {listen 80;server_name wang.mingqu.com;charset utf-8;#server_name:表示访问的域名,也可以使用变量$host;#server_name,跟定义的配置文件的server_name有关;#host,则是用户输入的内容;#request_uri:表示访问时域名后所有内容。rewrite .* https://$server_name$request_uri redirect;##写法二:#rewrite .* https://$host$request_uri redirect;##写法三:#rewrite (.*)  https://$server_name$1 redirect;
}
  1. 检查配置
nginx -t
systemctl reload nginx
  1. 访问测试

image.png
image.png

负载均衡HTTPS跳转

主机规划

主机名称主机IP服务
k8s-master-1192.168.108.129Nginx Proxy
k8s-master-2192.168.108.130Nginx Web1
k8s-master-3192.168.108.131Nginx Web2

配置站点

注意

移除其他测试配置文件

cd /etc/nginx/conf.d/
rename .conf .bak *.conf

web01配置

  1. 测试数据
mkdir -p /www/html/
echo "主机:192.168.108.130" > /www/html/index.html
chown -R nginx:nginx /www/html
  1. 配置nginx
    1. 主配置文件

配置文件路径:/etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}
  1. 子配置文件

配置文件路径:/etc/nginx/conf.d/web01.conf

server {listen 443;server_name wang.mingqu.com;chartset utf-8;location / {root /www/html/;index index.html index.htm;}
}
  1. 验证nginx服务
    1. 重启服务
nginx -t
systemctl restart nginx
  1. 验证服务
curl -iv 127.0.0.1:443

web02配置

  1. 测试数据
mkdir -p /www/html/
echo "主机:192.168.108.131" > /www/html/index.html
chown -R nginx:nginx /www/html
  1. 配置nginx
    1. 主配置文件

配置文件路径:/etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}
  1. 子配置文件

配置文件路径:/etc/nginx/conf.d/web02.conf

server {listen 443;server_name wang.mingqu.com;charset utf-8;location / {root /www/html/;index index.html index.htm;}
}
  1. 验证nginx服务
    1. 重启服务
nginx -t
systemctl restart nginx
  1. 验证服务
curl -iv 127.0.0.1:443

配置负载

注意

移除其他测试配置文件

cd /etc/nginx/conf.d/
rename .conf .bak *.conf

测试数据

mkdir -p /www/html/localhost
echo "主机:192.168.108.129" > /www/html/localhost/index.html
chown -R nginx:nginx /www/html

主配置文件

配置文件路径:/etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;rewrite_log     on;keepalive_timeout  65;#gzip  on;include /etc/nginx/conf.d/*.conf;
}

子配置文件

配置文件路径:/etc/nginx/conf.d/proxy.conf

upstream web {server 192.168.108.130:443;server 192.168.108.131:443;
}server {listen 80;server_name wang.mingqu.com;charset utf-8;location / {proxy_pass http://web;}location /localhost {root /www/html/;index index.html index.htm;}
}

验证服务

  1. 重启nginx
nginx -t
systemctl restart nginx
  1. 验证nginx
    1. 负载均衡本地服务

image.png

  1. 负载均衡后端服务

image.png
image.png

HTTPS跳转配置

证书文件

mkdir -p /etc/nginx/ssl_key
cp /www/ssl_key/wang_mingqu_com.crt /etc/nginx/ssl_key/
cp /www/ssl_key/wang_mingqu_com.key /etc/nginx/ssl_key/
chown -R nginx:nginx /etc/nginx/ssl_key/

配置文件调整

upstream web {server 192.168.108.130:443;server 192.168.108.131:443;
}server {listen 443 ssl;server_name wang.mingqu.com;charset utf-8;#配置https证书#ssl on; 新版本nginx中无需添加此行。#证书的存放路径ssl_certificate /etc/nginx/ssl_key/wang_mingqu_com.crt;ssl_certificate_key /etc/nginx/ssl_key/wang_mingqu_com.key;#证书的缓存有效期ssl_session_timeout 5m;#证书的加密算法ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#安全链接可选的加密协议ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#使用服务器端的首选算法ssl_prefer_server_ciphers on;location / {proxy_pass http://web;include proxy_params;}
}#跳转HTTPS
server {listen 80;server_name wang.mingqu.com;charset utf-8;#server_name:表示访问的域名,也可以使用变量$host;#server_name,跟定义的配置文件的server_name有关;#host,则是用户输入的内容;#request_uri:表示访问时域名后所有内容。rewrite .* https://$server_name$request_uri redirect;##写法二:#rewrite .* https://$host$request_uri redirect;##写法三:#rewrite (.*)  https://$server_name$1 redirect;
}

测试HTTPS跳转

image.png
image.png
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity】Node.js安装与配置环境

引言 我们在使用unity开发的时候,有时候会使用一些辅助工具。 Node.js就是开发中,经常会遇到的一款软件。 1.下载Node.js 下载地址:https://nodejs.org/en 2.安装Node.js ①点击直接点击Next下一步 ②把协议勾上,继续点击…

【lua】lua内存优化记录

这边有一个Unity项目用的tolua, 游戏运行后手机上lua内存占用 基本要到 189M, 之前峰值有200多。 优化点1 加快gc频度: 用uwa抓取的lua内存, 和unity的mono很像,内存会先涨 然后突然gc一下,降下来。 这样…

java数据结构与算法刷题-----LeetCode687. 最长同值路径

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 深度优先,用下面的儿子判断2. 深度优先&#xff0…

UI 自动化测试实战(二)| 测试数据的数据驱动

数据驱动就是通过数据的改变驱动自动化测试的执行,最终引起测试结果的改变。简单来说,就是参数化在自动化测试中的应用。 测试过程中使用数据驱动的优势主要体现在以下几点: 1.提高代码复用率,相同的测试逻辑只需编写一条测试用例…

服务器后端是学习java还是php

没有绝对的"最好"语言,每种后端语言都有其适用的场景和特点。以下是几种常用的后端语言: 1. Java:Java是一种通用且强大的语言,广泛用于企业级应用和大型系统。它有很好的性能和可靠性,并且具有优秀的生态系…

光辐射测量(1)基本介绍+辐射度量、光辐射度量基础

基本情况:本门课就是对“三度学”进行学习。“三度学”包括辐射度学、光度学、色度学。主要掌握其基本概念、原理、物理量的互相转换关系、计算分析方法、测量仪器与测试计量方法等。 三者所覆盖的范围如图。 辐射度学: 辐射度学是一门研究电磁辐射能测…

自测-5 Shuffling Machine(python版本)

文章预览: 题目翻译算法python代码oj反馈结果 题目 翻译 shuffle是用于随机化一副扑克牌的过程。由于标准的洗牌技术被认为是薄弱的,并且为了避免员工通过不适当的洗牌与赌徒合作的“内部工作”,许多赌场使用了自动洗牌机。你的任务是模拟一…

H5小游戏,象棋

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的订阅后,私信本人,发源码,含60小游戏源码。如五子棋、象棋、植物大战僵尸、贪吃蛇、飞机大战、坦克大战、开心消消乐、扑鱼达人、扫雷…

C++:Vector的使用

一、vector的介绍 vector的文档介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以…

ABAP - 增强:一代增强User exit

一代增强是基于源代码的增强,一般是名字UserExit_开头空代码的子例程,所以一代增强的别称用户出口。需要修改SAP标准标准代码集中在名称倒数第二位为’Z‘的include程序里面。所有的全局数据可用那么该如何找到一代增强呢?以销售订单为例&…

《操作系统真相还原》读书笔记一:环境搭建 32位centos6.3+bochs

下载32位的centos6.3centos6.3 https://archive.kernel.org/centos-vault/6.3/isos/i386/

ubuntu22.04 成功编译llvm和clang 3.4.0,及 bitcode 函数名示例,备忘

1, 获取llvm 仓库 从github上获取: $ git clone --recursive https://github.com/llvm/llvm-project.git 2, 检出 llvmorg-3.4.0 tag 针对llvm 3.4.0版本,检出 $ cd llvm-project $ git tag $ git checkout llvmorg-3.4.0 3, 配置并编译llvm 使用 M…

EmoLLM(心理健康大模型)——探索心灵的深海,用智能的语言照亮情感的迷雾。

文章目录 介绍:应用地址:模型地址:Github地址:视频介绍:效果图: 介绍: EmoLLM是一个基于 InternLM 等模型微调的心理健康大模型,它涵盖了认知、情感、行为、社会环境、生理健康、心…

08 OpenCV 腐蚀和膨胀

文章目录 作用算子代码 作用 膨胀与腐蚀是数学形态学在图像处理中最基础的操作。其卷积操作非常简单,对于图像的每个像素,取其一定的邻域,计算最大值/最小值作为新图像对应像素位置的像素值。其中,取最大值就是膨胀,取最小值就是腐…

奇安信发布《2024人工智能安全报告》,AI深度伪造欺诈激增30倍

2024年2月29日,奇安信集团对外发布《2024人工智能安全报告》(以下简称《报告》)。《报告》认为,人工智能技术的恶意使用将快速增长,在政治安全、网络安全、物理安全和军事安全等方面构成严重威胁。 《报告》揭示了基于…

就业班 2401--3.4 Linux Day10--软件管理

一、软件管理 导语: 安装软件 rpm yum 源码安装 ​ 卸载软件 rpm介绍 rpm软件包名称: 软件名称 版本号(主版本、次版本、修订号) 操作系统 -----90%的规律 #有依赖关系,不能自动解决依赖关系。 举例:openssh-6.6.1p1-31.el7.x86_64.rpm 数字前面的是名…

【Web - 框架 - Vue】随笔 - Vue的简单使用 - 快速上手

【Web - 框架 - Vue】随笔 - Vue的简单使用 - 快速上手 Vue模板代码 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>模板</title> </head> <body> <div></div>…

VScode---php环境搭建

文章目录 1.下载php Dehug;php server2.下载php环境3.配置环境变量5.配置php.ini文件6.设置vscode6.测试遇到的问题 1.下载php Dehug;php server 2.下载php环境 下载地址&#xff1a;https://www.php.net/downloads.php 3.配置环境变量 C:\Users\hacker>php -v PHP 8.3.3 (…

[C#]winform部署yolov9的onnx模型

C# WinForms 部署 YOLOv9 ONNX 模型简介 在当今的计算机视觉领域&#xff0c;目标检测是不可或缺的一项技术。YOLO&#xff08;You Only Look Once&#xff09;系列模型以其高效和准确的特点受到了广泛关注。随着YOLOv9的发布&#xff0c;其性能进一步提升&#xff0c;为实际应…

ChatGPT数据分析应用——漏斗分析

ChatGPT数据分析应用——漏斗分析 ​ 漏斗分析在数据分析中也比较常用&#xff0c;主要是用于发现各个转化流程中哪个环节有问题。接下来我们让ChatGPT解释这个方法的概念并提供相应的案例。发送如下内容给ChatGPT。 ​ ChatGPT收到上述内容后&#xff0c;返回如下结果。 漏斗…