linux学习lesson52

linux系统添加根证书 linux证书信任列表 linux访问https证书问题 linux系统添加根证书 linux证书信任列表 阅读详情


1 nginx负载均衡

编辑配置文件:

[root@linux01 ~]# vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容
upstream qq_com
{
ip_hash;
server 111.161.64.40:80;
server 111.161.64.48:80;
}
server
{
listen 80;
server_name www.qq.com;
location /
{
proxy_pass http://qq_com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

重新加载配置文件:

[root@linux01 ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@linux01 ~]# /usr/local/nginx/sbin/nginx -s reload

curl测试:

[root@linux01 ~]# curl -x127.0.0.1:80 www.qq.com -I
HTTP/1.1 200 OK
Server: nginx/1.15.5
Date: Sun, 25 Nov 2018 01:54:21 GMT
Content-Type: text/html; charset=GB2312
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding
Expires: Sun, 25 Nov 2018 01:55:23 GMT
Cache-Control: max-age=60
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Cache: MISS from shenzhen.qq.com

状态码返回200,成功访问

nginx默认不支持代理https服务,https的服务端口是443

upstream来指定多个web server


2 ssl原理

SSL工作流程

浏览器发送一个https的请求给服务器;

服务器要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出>提示页面,这套证书其实就是一对公钥和私钥;

服务器会把公钥传输给客户端;

客户端(浏览器)收到公钥后,会验证其是否合法有效,无效会有警告提醒,有效则会生成一串随机数,并用收到的公钥加密;

客户端把加密后的随机字符串传输给服务器;

服务器收到加密随机字符串后,先用私钥解密(公钥加密,私钥解密),获取到这一串随机数后,再用这串随机字符串加密传输的数据(该加密为对称加密,所谓对称加密,就是将数据和私钥也就是这个随机字符串>通过某种算法混合在一起,这样除非知道私钥,否则无法获取数据内容);
服务器把加密后的数据传输给客户端;

客户端收到数据后,再用自己的私钥也就是那个随机字符串解密;
在这里插入图片描述


3 生产ssl密钥对(yum install -y openssl)

生成密钥:

[root@linux01 ~]# cd /usr/local/nginx/conf
[root@linux01 conf]# openssl genrsa -des3 -out tmp.key 2048 //key文件为私钥,genrsa表示生成rsa格式的密钥,名字为tmp.key,长度为2048
Generating RSA private key, 2048 bit long modulus
...................+++
...................+++
e is 65537 (0x10001)
Enter pass phrase for tmp.key:
Verifying - Enter pass phrase for tmp.key:

如果直接使用,访问网站时候需要输入密码,这会导致用户体验不好,不适合,将密码文件转换key,取消密码

[root@linux01 conf]# openssl rsa -in tmp.key -out alan.key //转换key,取消密码
Enter pass phrase for tmp.key:
writing RSA key

这个alan.key与 tmp.key是一样的,只是tmp.key是需要密码,alan.key不需要密码

可以把要输入密码的key删掉,使用无密码的key

[root@linux01 conf]# rm -f tmp.key

生成证书的请求文件:

[root@linux01 conf]# openssl req -new -key alan.key -out alan.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]:gz
State or Province Name (full name) []:guanghzou
Locality Name (eg, city) [Default City]:guangzhou
Organization Name (eg, company) [Default Company Ltd]:hello
Organizational Unit Name (eg, section) []:hello
Common Name (eg, your name or your server's hostname) []:linux
Email Address []:alan@alan.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:hello

测试时候,以上输入的信息可以随便写

生成公钥文件:

[root@linux01 conf]# openssl x509 -req -days 365 -in alan.csr -signkey alan.key -out alan.crt
Signature ok
subject=/C=gz/ST=guanghzou/L=guangzhou/O=hello/OU=hello/CN=linux/emailAddress=alan@alan.com
Getting Private key

这里的alan.crt为公钥

查看生成的文件:

[root@linux01 conf]# ls alan.
alan.crt  alan.csr  alan.key


4 nginx配置ssl

编辑配置文件:

[root@linux01 vhost]# vim /usr/local/nginx/conf/vhost/ssl.conf //加入如下内容
server
{
listen 443; //监听端口
server_name alan.com; //域名
index index.html index.php;
root /data/wwwroot/alan.com; //访问的目录
ssl on;
ssl_certificate alan.crt; //公钥
ssl_certificate_key alan.key; //私钥
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; //通信协议
}

创建文件和目录:

[root@linux01 vhost]# mkdir /data/wwwroot/alan.com
[root@linux01 vhost]# vim /data/wwwroot/alan.com/index.html
<?php
echo "ssl web.";
?>

重新加载配置文件:

[root@linux01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/vhost/ssl.conf:7
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

出现报错了,因为nginx还不支持ssl模块,需要添加
进入nginx的源码文件,查看编译的ssl模块参数:

[root@linux01 nginx-1.15.5]# ./configure --help | grep -i ssl

在这里插入图片描述
编译增加ssl模块:
configure编译:

[root@linux01 nginx-1.15.5]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module
[root@linux01 nginx-1.15.5]# echo $?
0

编译成功

进行make和make install操作:
[root@linux01 nginx-1.15.5]# make -j2 && make install
[root@linux01 nginx-1.15.5]# echo $?
0

查看编译好的模块:

[root@linux01 nginx-1.15.5]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.15.5
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module

再次加载配置文件:

[root@linux01 nginx-1.15.5]# /usr/local/nginx/sbin/nginx -t
nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /usr/local/nginx/conf/vhost/ssl.conf:7
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

出现了一个警告:是因为nginx1.15后的版本,配置文件ssl 这个指令不再使用了(配置文件中的 ssl on; 这行去掉即可)

重新启动nginx服务:

[root@linux01 nginx-1.15.5]# /etc/init.d/nginx restart

查看监听端口有没有增加443:

[root@linux01 nginx-1.15.5]# netstat -lntp

在这里插入图片描述
编辑hosts文件,在最后一行添加增加127.0.0.1 alan.com

[root@linux01 nginx-1.15.5]# vim /etc/hosts
127.0.0.1 alan.com

curl测试:

[root@linux01 nginx-1.15.5]# curl https://alan.com
curl: (60) Peer's certificate issuer has been marked as not trusted by the user.
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.

因为这个数字证书是自己颁发的,所以显示不信任

在windows测试,现在hosts文件添加
192.168.139.111 alan.com

在浏览器输入alan.com
在这里插入图片描述


实验过程中出现的问题:
1)没有安装到–with-http_ssl_module
原因是:nginx的目录写错了
./configure --prefix=/usr/local/ngnix --with-http_ssl_module
2)重启nginx服务后,没有出现443端口
原因是:
/usr/local/nginx/conf/vhost/ssl.conf 配置文件有问题,编辑错误



扩展
针对请求的uri来代理 http://ask.apelearn.com/question/1049
根据访问的目录来区分后端的web http://ask.apelearn.com/question/920
nginx长连接 http://www.apelearn.com/bbs/thread-6545-1-1.html
nginx算法分析 http://blog.sina.com.cn/s/blog_72995dcc01016msi.html

fast.ai深度学习实践:7个工程化思维断点与学习率调优核心 深度学习模型开发中,数据质量、归一化策略、学习率选择等基础决策远比模型结构更影响最终效果。其原理在于:神经网络训练本质是高维非凸优化过程,输入分布偏移会破坏梯度稳定性,而学习率直接决定参数更新步长与收敛路径。技术价值体现在显著降低试错成本、提升模型交付确定性——尤其在标注数据有限、业务迭代紧迫的工业场景中。典型应用场景包括图像分类、医疗影像分析、卫星遥感识别及边缘部署等。本文聚焦 fast.ai 实践体系中的关键认知断点,深入解析学习率调优方法论与数据归一化陷阱,提供可复用的工程化诊断框架。 阅读详情

相关推荐

E-Learning应是学习系统而非教育系统:基于xAPI的行为驱动重构

学习系统本质是围绕真实学习行为构建的技术范式,其核心在于捕捉、理解并响应学习者的认知过程,而非简单复刻传统教育流程。它依托xAPI等行为日志标准,将点击、暂停、回放、拖拽等微观交互转化为可计算的认知信号;通过行为聚类、时序分析与体验网络建模,实现从‘完成课程’到‘掌握能力’的评估跃迁;最终在企业培训、职业教育、开发者学习等场景中,支撑动态难度调节、情境化推送、技能缺口预警等工程化教学干预。本文聚焦学习系统落地中的数据模型重构、评估逻辑升级与内容架构演进,详解如何用行为数据驱动真正以学习者为中心的智能平台建设

didi9310的博客 411

CURL使用SSL证书访问HTTPS

在支付的交互过程中,安全绝对是需要考虑的重要因素之一。体现在对服务器交互数据的签名等环节,但有的时候为了能达到更高的安全级别,还需要用ssl证书,即web服务器有证书,浏览器客户端/请求端也需要安装证书来达到双向验证。 比如请求下面的财付通支付网关,用户向商户账户支付金额,仅仅是需要检查签名就行了 https://gw.tenpay.com/gateway/pay.htm 但

kobejayandy的专栏 6万+

语义级视听重建:从Deepfake到可信生成的技术范式迁移

语义级视听重建是一种以人类感知阈值为基准、强调物理合理性与任务意图对齐的新型生成范式,其核心在于将音频、视频、姿态等多模态信号纳入统一的可控生成框架。区别于传统对抗式伪造技术,它依托运动连续性建模、光度一致性约束和时序因果链显式编码,实现符合生物力学与认知规律的高质量输出。该技术已突破娱乐应用边界,在医疗康复、教育微课、历史档案修复等高价值场景中形成可验证、可审计、可协同的人机接口。本文聚焦语义对齐与可控生成两大关键技术支点,解析如何构建面向真实业务需求的可信生成系统。

weixin_33863087的博客 441

CentOS7系列--5.2CentOS7中配置和管理Docker

CentOS7配置和管理DockerDocker是操作系统级别的虚拟化工具,它能自动化布署在容器中的应用1. 安装Docker1.1. 安装Docker相关软件[root@server1 ~]# yum install -y dockerLoaded plugins: fastestmirrorbase | 3.6 kB 00:00extras | 3.4 kB 00:00updates | 3....

weixin_30266829的博客 4003

c764-基于Vue的实时温湿度监控系统

🌟 毕业设计指导交流 🌟 同学们好!作为一名计算机专业的技术爱好者,我在毕业设计领域积累了一些经验,希望能和大家分享交流。从选题到答辩,欢迎一起探讨技术问题。💡 技术方向: 熟悉Java全栈(SSM/Spring Boot)、Python数据分析、微信小程序/安卓开发等技术栈,可以互相学习项目开发经验。📂 学习资源: 整理了一些开源项目案例(含代码和文档),需要参考的同学可以留言讨论,也欢迎分享你的项目经验。🛠 交流内容:✨ 欢迎在评论区留言讨论,一起进步!记得遵守社区规范,保持学术

weixin_39513710的博客 1069

博途WinCC多语言项目配置指南

在博途(TIA Portal)中为WinCC项目配置多语言功能,需通过系统化步骤实现界面文本的动态切换。

dhaimo的博客 2470

安装php

将Apache安装目录和php目录放在一个文件夹里。

qq_43524794的博客 154

浙江大学Fast-Lab从0制作自主空中机器人公开课教程补充及部分注意事项(适用于ubuntu系统和ROS零基础)

浙江大学Fast-Lab从0制作自主空中机器人公开课纯萌新补充(适用于从没接触过ubuntu系统),记录了一些自己不会的地方以及踩过的坑

qq_39986834的博客 2984

【lesson52】 线程概念

线程概念

m0_67077469的博客 903

随机森林文本分类

随机森林原理及代码实现 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录随机森林原理及代码实现前言一、集成算法是什么?二、随机森林是什么三、 数据预处理3.1 先来看一下我们的文本数据3.2 预处理3.3 统计评论情感值积极与消极的占比二、使用步骤参数介绍(4个)属性1.引入库2.参数调参方法总结 前言 提示:这里可以添加本文要记录的大概内容: 例如

m0_46579176的博客 5808

别再只调API了!深度拆解Dify文件上传的两种传参方式(sys.file vs. inputs.upload_file)

本文深度解析Dify平台文件上传的两种传参方式——sys.file与inputs.upload_file,详细对比其设计原理、技术实现及适用场景。通过代码示例和性能分析,帮助开发者在本地大模型应用中做出精准技术选型,提升文件处理效率与系统稳定性。

weixin_29063979的博客 267

Linux学习lesson1

目录 1 学习之初 2 约定 3 认识linux 4 安装虚拟机 5 安装centos7 1 学习之初 预习和复习的重要性 当日事当日毕 记笔记(老王学习技巧 论坛) 利用好资源(vip群,论坛) 励志前辈经历 http://ask.apelearn.com/question/6597    2 约定 系统centos7.3系统 虚拟软件VMware workstat...

InfiniteIdea_Go的博客 503

GD32H7实战:5步搞定YOLO轻量化模型部署到MCU(附避坑指南)

本文详细介绍了如何将YOLO轻量化模型部署到GD32H7 MCU的完整实战流程。通过五个关键步骤,涵盖环境搭建、模型训练、格式转换到工程集成,并重点分享了使用GD32AI-ModelZoo工具链进行MCU部署的避坑指南,帮助开发者在资源受限的边缘设备上实现高效目标检测。

weixin_29070861的博客 445

linux学习lesson18

目录 1 进入编辑模式 2 vim命令模式 3 vim实践 1 进入编辑模式 i            在当前字符前插入 I            在光标所在行的行首插入 a            在当前字符后插入 A            在光标所在行的行尾插入 o            在当前行的下一行插入新的一行 O            在当前行的上一行插入新的一行  ...

InfiniteIdea_Go的博客 341

基于Simulink的发动机管理系统中的自适应增压控制系统设计

通过上述详细设计步骤,我们成功开发了一个基于Simulink的自适应增压控制系统。该系统不仅能够实时监测和预测发动机的运行状态,动态调整增压压力目标值,还具备实时监控、故障诊断和保护功能,确保系统的安全性和可靠性。此外,通过仿真实验和硬件在环测试,我们验证了系统的性能,并对其进行了优化,使其能够更好地满足实际应用需求。这个项目展示了如何利用MATLAB/Simulink的强大功能,结合控制理论和工程实践,开发出高效、可靠的自适应增压控制系统。

MHD0815的博客 220

基于 YOLOv26 的食品包装缺陷检测系统:智能视觉质检方案

本文提出了一种基于YOLOv26深度学习的食品包装缺陷智能检测系统。该系统能够自动识别多种常见包装缺陷,包括密封不良、破损、污染、标签错误等8类问题。相比传统人工检测方法,该系统具有高精度、多类别分类、实时推理等优势。文章详细介绍了系统架构,包含数据采集、预处理、YOLOv26检测模型和后处理四个核心模块,并提供了完整的环境配置和数据处理代码实现。该系统为食品包装行业提供了一种高效、准确的智能视觉质检解决方案。

一键难忘的博客 683

linux学习lesson69

文章目录1. shell脚本介绍2.shell脚本结构和执行3.date命令用法4.shell脚本中的变量 /br&gt; 1. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断、循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 /br&gt; 2.sh...

InfiniteIdea_Go的博客 346

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

linux学习lesson34

目录 1 iptables filter表小案例 2 iptables nat表应用 1 iptables filter表小案例 编辑脚本设定规则 vi /usr/local/sbin/iptables.sh //加入如下内容 #! /bin/bash ipt="/usr/sbin/iptables" $ipt -F $ipt -P INPUT DROP $ipt -P OUTPUT A...

InfiniteIdea_Go的博客 297

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

linux学习 lesson7 sshd服务

1.sshd简介 sshd= secure shell 可以通过网络在主机中开机shell的服务 连接方式: 首先设定虚拟机的ip: 1)在虚拟机desktop中nm-connection-editor ## 打开ip设置 2)设置虚拟机ip 3)在主机上ping虚拟机地址察看是否完成。 ##显示ping通,表示连接成功 配置好之后 ssh username@ip ##文本模式的链接 ss...

飞翔的罗老汉 206

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Ubuntu学习日记--Lesson9:显卡工作状态查看命令

在使用GPU做计算,比如跑 Deep Learning代码的时候,我们可能希望能够实时检测显存的使用情况,但是Linux一般不会自带监视现存的工具。Nvidia自带了一个 nvidia-smi的命令行工具,会显示显存使用情况,但我们总不能每 10s 中就输入一次这个命令。 这时候就需要用到 watch命令了。 watch 命令简介 watch是做什么的?看一下系统怎么说 $ whatis w

鲁点点的博客 2926

lesson - 10 shell 基础知识

课程大纲: 1. shell特性 命令历史 history !! !$ !n !字符 Tab 键可以补全文件路径或者命令 alias a=“b” unalias a 通配符 *匹配零个或多个字符 ?匹配一个字符 输入输出重定向 >, >>, <, 2>, 2>> 管道符 | 作业控制 ctrl+z, jobs, fg, bg 2. 变...

weixin_30318645的博客 91

Lesson_6 作业_2 ---- 银行账户模拟

一、作业描述   Account.java文件中定义了一个银行帐户类Account,其中包括了帐户名属性accountName、存款余额属性amount、存款方法deposit(doublemoney)。阅读并理解这个类,并为其增加一个“取款”方法withdraw():当存款余额大于取款金额时,执行取款修改余额;当存款余额小于取款金额时,不执行取款;以返回值0表示取款成功,返回值1表示取款...

weixin_30737363的博客 135

流媒体下载工具 N_m3u8DL-RE 实战手册:把看得到却下不动的视频稳稳装进硬盘

如果你正在找一款**跨平台的流媒体下载工具**,想搞定 M3U8、MPD、ISM 这类动不动就加密的分段流媒体视频,那么 **N_m3u8DL-RE** 值得你花十分钟认识它。它是一款基于 C# 开发的开源下载器,覆盖 Windows / macOS / Linux,同时支持点播与直播,对新手友好,也扛得住进阶玩家的复杂需求。这篇文章不打算罗列文档,而是跟着一段真实的使用经历,带你从"第一次运行"

gitblog_00064的博客 1109

JP4-1-1-MyLesson项目简介

MyLesson项目简介,包括项目介绍,权限介绍,环境介绍,技术栈介绍,环境初始化操作,数据库表的创建等。

周航宇的博客 2957

工作中使用到的单词(软件开发)_第三版

====

sun0322 1万+

Text-to-X多模态系统实战:从文本指令到PPT/视频/试题一键生成

Text-to-X 是指将自然语言文本作为输入,驱动跨模态内容(如图像、语音、视频、结构化数据)自动化生成的技术范式,其核心在于语义解析与模态协同。它依托指令理解、知识桥接与专用引擎调度,突破传统大模型端到端幻觉瓶颈,实现高可控、低延迟、可审计的工程化输出。在教育、产品、运营等强流程场景中,Text-to-X 已成为提升内容生产效率的关键基础设施——尤其适用于教案转H5课件、PRD转Figma原型、推文转短视频脚本等高频需求。本文聚焦中文教学场景下的 Text-to-X 落地实践,详解指令解析层设计、Phi

weixin_30423977的博客 354
上一篇: linux学习lesson51
下一篇: linux学习lesson53
InfiniteIdea_Go
博客等级 码龄8年 3粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值