当前位置: 首页 > news >正文

分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置

文章目录

      • 1. HTTPS 协议
      • 2. 生成 SSL 证书和私钥文件
      • 3. 配置 SSL 证书和私钥文件
      • 4. HTTPS 协议优化

1. HTTPS 协议

HTTPS 是一种通过计算机网络进行安全通信的协议。它是HTTP的安全版本,通过使用 SSL 或 TLS 协议来加密和保护数据传输。HTTPS的主要目的是确保在客户端和服务器之间传输的数据是加密的,以防止第三方窃听、篡改或伪装。它通过使用公钥加密和私钥解密的方式来实现数据的加密和解密过程。

2. 生成 SSL 证书和私钥文件

① 这个命令会生成一个2048位的 RSA 密钥对,并将私钥保存到名为 server.key 的文件中。

[root@nginx-dev home]# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
.........................+++
..............................................................................................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

② 使用 OpenSSL 工具生成证书签名请求(CSR)的命令,在执行此命令之前,您需要确保已经生成了一个私钥文件 server.key。

[root@nginx-dev home]#  openssl req -new -key server.key -out server.csr
Enter pass phrase for server.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) []:anhui
Locality Name (eg, city) [Default City]:huaibei
Organization Name (eg, company) [Default Company Ltd]:baishan
Organizational Unit Name (eg, section) []:liuzi
Common Name (eg, your name or your server's hostname) []:guozhuang
Email Address []:daokouPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:zhangsan
An optional company name []:shenxinfu

③ OpenSSL 命令用于生成自签名的 SSL/TLS 证书。

[root@nginx-dev home]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=cn/ST=anhui/L=huaibei/O=baishan/OU=liuzi/CN=guozhuang/emailAddress=daokou
Getting Private key
Enter pass phrase for server.key:

④ 查看生成的证书和证书的秘钥:

[root@nginx-dev home]# ls
server.crt  server.csr  server.key

3. 配置 SSL 证书和私钥文件

① Nginx 配置文件:在 /etc/nginx/conf.d文件夹下添加nginx配置文件:8004.conf

# 启动ruoyi-admin服务
[root@nginx-dev conf.d]# cd /home/apps
[root@nginx-dev apps]# java -jar ruoyi-admin.jar# 启动tomcat服务
[root@nginx-dev ~]# /home/apache-tomcat-8.5.81/bin/startup.sh[root@nginx-dev ~]# cd /etc/nginx/conf.d
[root@nginx-dev conf.d]# vi 8004.conf   

8004.conf 配置文件内容:

server {listen 8004 ssl;server_name ruoyi.https;ssl_certificate     /home/server.crt;ssl_certificate_key /home/server.key;ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers         HIGH:!aNULL:!MD5;location / {proxy_pass http://localhost:8088;}# 请求ie页面location = /html/ie.html {root  /some/path/static;}# 请求字体文件location ^~ /fonts/ {root  /some/path/static;}# css|js|png|jpg|gif|ico 页面location ~ \.(css|js|png|jpg|gif|ico) {root /some/path/static;}
}

Nginx服务器用于配置一个监听8004端口的HTTPS服务器:

  • listen 8004 ssl; 监听 8004 端口,并启用SSL加密。
  • ssl_certificate /home/server.crt; 指定SSL证书的路径和文件名。
  • ssl_certificate_key /home/server.key; 指定SSL证书的私钥文件的路径和文件名。
  • ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 指定支持的SSL/TLS协议版本。这里配置了TLSv1、TLSv1.1和TLSv1.2。
  • ssl_ciphers HIGH:!aNULL:!MD5; 指定SSL加密算法的优先级。这里配置了高级别的加密算法,并排除了不安全的算法,如NULL和MD5。

这段配置文件的作用是将通过HTTPS协议访问"ruoyi.https"域名的请求转发到本地的8088端口。同时,使用了SSL加密来保证通信的安全性。

② 重新加载Nginx服务:需要输入生成证书时配置的密码 zhangsan

[root@nginx-dev conf.d]# nginx -s reload
Enter PEM pass phrase:

③ 访问 https://192.168.1.9:8004

在这里插入图片描述

4. HTTPS 协议优化

SSL 操作会消耗额外的 CPU 资源。CPU 占用最多的操作是 SSL 握手。有两种方法可以最大程度地减少每个客户端的这些操作数:

  • 使保持活动连接能够通过一个连接发送多个请求
  • 重用 SSL 会话参数以避免并行连接和后续连接的 SSL 握手

会话存储在工作进程之间共享并由 ssl_session_cache 指令配置的 SSL 会话缓存中。一兆字节的缓存包含大约 4000 个会话。默认缓存超时为 5 分钟。可以使用 ssl_session_timeout 指令增加此超时。以下是针对具有 10 MB 共享会话缓存的多核系统优化的示例配置:

ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;
server {listen 8004 ssl;server_name ruoyi.https;ssl_certificate     /home/server.crt;ssl_certificate_key /home/server.key;ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers         HIGH:!aNULL:!MD5;ssl_session_cache   shared:SSL:10m;ssl_session_timeout 10m;location / {proxy_pass http://localhost:8088;}# 请求ie页面location = /html/ie.html {root  /some/path/static;}# 请求字体文件location ^~ /fonts/ {root  /some/path/static;}# css|js|png|jpg|gif|ico 页面location ~ \.(css|js|png|jpg|gif|ico) {root /some/path/static;}
}

相关文章:

分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置

文章目录 1. HTTPS 协议2. 生成 SSL 证书和私钥文件3. 配置 SSL 证书和私钥文件4. HTTPS 协议优化 1. HTTPS 协议 HTTPS 是一种通过计算机网络进行安全通信的协议。它是HTTP的安全版本,通过使用 SSL 或 TLS 协议来加密和保护数据传输。HTTPS的主要目的是确保在客户…...

探秘Linux系统性能监控神器!Linux和Python技术持续学习者必看!

引言 作为Linux运维工程师,我们经常需要对服务器的性能进行监控和调优。而Python作为一门强大的脚本语言,可以帮助我们轻松实现各种系统性能监控任务。本文将介绍几个实用的Python库和工具,帮助我们监控Linux系统的CPU、内存、磁盘和网络等性…...

文心一言续写太监小说《名侦探世界的巫师》

《名侦探世界的巫师》是我的童年回忆,总是想着续写一下,但是又没有时间和文笔,文心一言出了,由于目前大模型貌似可以联网,可以尝试搞一波~ 目录 文章1【前六个故事还能看,后面就是在重复】故事2【辣眼睛】…...

Solidity 合约安全,常见漏洞(第三篇)

Solidity 合约安全,常见漏洞(第三篇) ERC20 代币问题 如果你只处理受信任的 ERC20 代币,这些问题大多不适用。然而,当与任意的或部分不受信任的 ERC20 代币交互时,就有一些需要注意的地方。 ERC20&#…...

Linux安装Redis数据库,无需公网IP实现远程连接

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 Redis作为一款高速缓存的key value键值对的数据库,在…...

智慧政务,长远布局——AIGC引领,加速推进数字化政府建设

在人工智能、虚拟现实等领域迅猛发展且日益成熟的背景下,AI行业正迈向蓬勃发展的全新阶段,市场规模持续扩张。与此同时,数字服务也正在蓬勃兴起,新一代信息技术为数字政府构建了坚实支撑,重塑了政务信息化管理、业务架…...

中央处理器(CPU):组成、指令周期、数据通路、控制方式、控制器、指令流水线,补充(多处理器系统、硬件多线程)

中央处理器(CPU,Central Processing Unit),计算机控制和运算的核心,是信息处理和程序运行的执行单元。 CPU主要功能:处理指令、执行操作、控制时间、处理中断、处理数据。 其中,处理指令、执行…...

开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比

作者:刘军 不论您是一名开发者、架构师、CTO, 如果您曾深度参与在微服务开发中,那么相信您一定有过开源微服务框架或体系选型的疑问:Apache Dubbo、Spring Cloud、gRPC 以及 Service Mesh 体系产品如 Istio,到底应该选…...

Nginx的HTTPS部署与安全性能优化

Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛用于应用部署和负载均衡。在安全环保意识的逐渐提高下,HTTPS也成为现代Web应用中必不可少的一环。本篇文章将重点介绍Nginx的HTTPS部署和安全性能优化。 一、Nginx的HTTPS部署 证书申请 首先需要去…...

5.8. Trusted Board Boot

5.8. Trusted Board Boot启动 Trusted Board Boot(TBB) 功能通过验证所有固件镜像(包括正常世界引导加载程序)来防止恶意固件在平台上运行。它通过使用公钥加密标准 (PKCS) 建立信任链来实现这一点。 本文介绍了可信固件-A (TF-A) TBB 的设计,它是Trusted Board Boot(TBBR…...

微信小程序——van-field中的left-icon属性自定义

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

一文学会lua脚本

文章目录 0.前言背景应用 1. 学习大纲1. 学习基本语法:2. 理解函数和模块:3. 深入数据结构:4. 高级特性和技巧:5. 实践项目: 2. Lua脚本2.1 学习基本语法2.2 理解函数和模块2.3 深入数据结构2.4 高级特性和技巧 3. 高级…...

学习JAVA打卡第四十二天

正则表达式及字符串的替换与分解 ⑴正则表达式 正则表达式是string对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符。 注:由于“ ”代表任何一个字符,所以在正则表达式中如果想使用普…...

2023-8-25食物链

题目链接&#xff1a;食物链 #include <iostream>using namespace std;const int N 50010;int n, m; int p[N], d[N];int find(int x) {if(p[x] ! x){int t find(p[x]);d[x] d[p[x]];p[x] t;}return p[x]; }int main() {cin >> n >> m;for(int i 1; i…...

为什么要使用IP地址进行定位

IP地址定位是一种以互联网协议地址&#xff08;IP地址&#xff09;为基础的技术&#xff0c;它能够准确地确定一个设备在互联网上的位置。这种技术的应用范围非常广泛&#xff0c;从个人用户到企业机构甚至是国家安全和网络安全等领域都需要使用IP地址定位。 首先&#xff0c;I…...

CSS概念

1、CSS与HTML结合方式 1.1 第一种方式 内联/行内样式 就是在我们的HTML标签上通过style属性来引用CSS代码。 优点:简单方便 &#xff1b; 缺点:只能对一个标签进行修饰。 1.2 第二种方式 内部样式 我们通过<style>标签来声明我们的CSS. 通常<style>标签我们推荐写在…...

淘宝API技术解析,实现关键词搜索淘宝商品(商品详情接口等)

淘宝提供了开放平台接口&#xff08;API&#xff09;来实现按图搜索淘宝商品的功能。您可以通过以下步骤来实现&#xff1a; 获取开放平台的访问权限&#xff1a;首先&#xff0c;您需要在淘宝开放平台创建一个应用&#xff0c;获取访问淘宝API的权限。具体的申请步骤和要求可以…...

Redis 7 教程 数据类型 基础篇

🌹 引导 Commands | Redishttps://redis.io/commands/Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)Redis命令大全,显示全部已知的redis命令,redis集群相关命令,近期也会翻译过来,Redis命令参考,也可以直接输入命令进行命令检索。...

-bash: tree: command not found 的解决方法

在学习git操作时发现使用命令tree .git时显示错误 在网上查阅资料后&#xff0c;发现可能是没有安装生成tree的应用&#xff0c;所以我们使用命令安装应用即可 sudo yum install -y tree像这样就是安装成功了 我们再来试试 问题解决了&#xff0c;成功显示出树形结构...

SPI总线协议

简述 SPI协议是一种芯片与芯片之间的通讯&#xff0c;全称是Serial Peripheral Interface SPI通讯采用一主多从模式&#xff0c;产生时钟的一侧称为主机&#xff0c;另一侧称为从机。只有一个主机&#xff08;一般来说可以是微控制器/MCU&#xff09;&#xff0c;但是可以有一…...

AlwaysOnTop窗口置顶工具:3大突破性功能重塑你的多任务工作流

AlwaysOnTop窗口置顶工具&#xff1a;3大突破性功能重塑你的多任务工作流 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 在当今数字化工作环境中&#xff0c;我们每天平均需要切…...

Windows远程桌面多用户协作解决方案:从原理到实践

Windows远程桌面多用户协作解决方案&#xff1a;从原理到实践 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 问题溯源&#xff1a;远程协作的瓶颈与突破 当团队成员需要同…...

GPEN对戴口罩人脸的修复能力实测:遮挡场景适应性

GPEN对戴口罩人脸的修复能力实测&#xff1a;遮挡场景适应性 1. 引言&#xff1a;当人脸识别遇上口罩 最近几年&#xff0c;口罩成了我们生活中的常客。无论是进出公共场所&#xff0c;还是在一些特殊的工作环境中&#xff0c;遮住半张脸的情况越来越普遍。这带来了一个有趣的…...

论文AI率从80%降到10%以下的完整攻略:实测3款降AI率工具真实效果

论文AI率从80%降到10%以下的完整攻略&#xff1a;实测3款降AI率工具真实效果 上个月我同学发来一张知网检测报告&#xff0c;AI率87%&#xff0c;整个人都懵了。她用DeepSeek写了大部分初稿&#xff0c;没想到检测会这么高。当时距离论文提交截止不到两周&#xff0c;她问我有没…...

Element Plus表格滚动卡顿?试试这个Vue3封装方案,性能提升明显

Vue3Element Plus表格性能优化实战&#xff1a;平滑滚动与内存管理 Element Plus的el-table组件在企业级后台系统中广泛应用&#xff0c;但当数据量达到500行以上时&#xff0c;滚动卡顿、内存飙升的问题开始显现。本文将分享一套经过生产环境验证的优化方案&#xff0c;通过数…...

Windows 11 + VSCode + Conda:保姆级配置Depth-Anything-3环境,一次跑通不报错

Windows 11深度视觉开发环境搭建实战&#xff1a;从零配置Depth-Anything-3全流程指南 当我在深夜第三次面对满屏红色报错信息时&#xff0c;终于意识到AI视觉项目的环境配置从来不是简单的"复制粘贴命令"就能搞定。本文将带你完整走通Windows 11系统下使用VSCode和C…...

【YOLOv10多模态涨点改进】独家创新首发| TGRS 2026 |引入 CIFusion 通道交互融合模块,通过跨特征交互机制强化目标区域响应,适合多模态融合目标检测,小目标检测高效涨点

一、本文介绍 🔥这篇论文作者使用YOLO模型发SCI一区!喜提TGRS 2026顶刊!做遥感多模态小目标检测任务。 本文给大家介绍利用 CIFusion 通道交互融合模块 改进YOLOv10多模态目标检测模型,从而提高目标检测性能。CIF 通过对 RGB 与红外特征进行通道级自适应交互,根据全局上…...

从零开始:LabelImg图像标注工具的完整实战指南

从零开始&#xff1a;LabelImg图像标注工具的完整实战指南 【免费下载链接】labelImg LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Stu…...

基于Node.js构建HunyuanVideo-Foley模型调度与管理中间件

基于Node.js构建HunyuanVideo-Foley模型调度与管理中间件 1. 引言&#xff1a;音效生成服务的挑战与机遇 在视频制作和游戏开发领域&#xff0c;高质量的音效生成(HunyuanVideo-Foley)已成为提升作品沉浸感的关键要素。随着AI模型能力的提升&#xff0c;单个音效生成请求的处…...

Phi-3-Mini-128K高并发服务架构设计:负载均衡与自动扩缩容策略

Phi-3-Mini-128K高并发服务架构设计&#xff1a;负载均衡与自动扩缩容策略 你是不是也遇到过这种情况&#xff1f;自己部署的AI模型服务&#xff0c;平时用着挺好&#xff0c;一旦用户量稍微上来点&#xff0c;或者有人发了个长请求&#xff0c;服务就卡死甚至直接挂掉。然后就…...