Linux:https静态网站搭建案例

news2024/11/26 18:22:55

目录

  • 介绍https
    • https通信过程

介绍https

整个实验是在http实验基础上进行的

因为http协议在传输的时候采用的是明文传输,有安全隐患,所以出现了https(安全套接字层超文本传输协议)

HTTPS并不是一个新协议,
而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。

SSL协议提供的服务:

1)认证用户和服务器,确保数据发送到正确的客户机和服务器
2)加密数据以防止数据中途被窃取
3)维护数据的完整性,确保数据在传输过程中不被改变。

1, 客户端浏览器向服务器端发送如下信息:
(1)客户端支持的SSL /TLS协议的版本号。
(2)Cipher Suite(密钥算法套件)。
(3)客户端产生的随机数,稍后用于生成"对话密钥"。

2,为了实现https通信,需要安装 mod_ssl 包,主配置文件在

 /etc/httpd/conf.d/ssl.conf

该文件下面的2个重要参数:后面访问https服务器需要提供证书,这2个证书需要生成

SSLCertificateFile /etc/pki/tls/certs/localhost.crt      服务器颁发的证书文件路径
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key   服务器私钥文件

https通信过程

服务器端向客户端发送如下信息:

1. 确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
2. 确认使用的加密方法。
3. 服务器证书。
4. 服务器生成的随机数,稍后用于生成"对话密钥"
5. 客户端用服务器传过来的信息验证服务器的合法性。如果合法性验证没有通过,通讯将断开;如
果合法性验证通过,则可以知道认证服务器的公开密钥的是真实有效的数字证书认证机构,并且服
务器的公开密钥是值得信赖的。(此处认证机关的公开密钥必须安全地转交给客户端。使用通信方
式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入
常用认证机关的公开密钥。)
4. 客户端随机产生一个用于后面通讯的对称密钥,然后用服务器的公钥对其加密,然后将加密后的对
称密钥传给服务器。

要求

创建一个ip 192.168.190.103/24 基于https协议访问的静态网站,documentroot 为 /var/www/html/index.html ,访问的结果显示为https

步骤1、
创建一个ip

[root@localhost f1]# nmcli connection modify ens160 +ipv4.addresses 192.168.190.103/24 ipv4.method manual 
[root@localhost f1]# nmcli c up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

2,新建.conf 文件

在 /etc/httpd/conf.d/ 创建一个 https_test.conf 配置文件,在这个文件中写入:

<virtualhost 192.168.107.190:443>    https 服务器ip 端口为443
    servername 192.168.107.190    服务器主机名
    documentroot /var/www/html     默认访问的主目录
    sslengine on     启动 ssl
    sslcertificatefile /etc/pki/tls/certs/https_test.crt    颁发证书的文件所在
    sslcertificatekeyfile /etc/pki/tls/certs/https_test.key   服务器证书私钥
</virtualhost>

3,密钥和证书生成

私钥:

[root@localhost f1]# openssl genrsa -aes128 2048 > /etc/pki/tls/certs/https_test.key
解释: 以aes128格式生成 一个2048 位的rsa私钥文件

证书生成:

解释:用刚刚生成的私钥自己申请一个证书
[root@localhost f1]openssl req -x509 -key /etc/pki/tls/certs/https_test.key 
Enter pass phrase for /etc/pki/tls/certs/https_test.key:        输入密码不低于4位
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]:zg      随便输入
State or Province Name (full name) []:cq   随便
Locality Name (eg, city) [Default City]:    可以回车跳过
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:

证书输出到文件
[root@localhost f1]# openssl req -x509 -key /etc/pki/tls/certs/https_test.key -out /etc/pki/tls/certs/https_test.crt
Enter pass phrase for /etc/pki/tls/certs/https_test.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]:zg
State or Province Name (full name) []:cq
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:

4:重启服务

[root@localhost f1]# systemctl restart httpd
Enter TLS private key passphrase for 192.168.107.190:443 (RSA) : ****     输入设置的密码则启动成功

5,客户端测试

[root@localhost ~]# curl https://192.168.190.103:443 -k          用https协议访问服务器 需要加上 -k 跳过不安全连接的提示
https       

在浏览器中访问:显示不是安全的连接,可以直接点击advanced 跳过就可以看到内容了。
因为自己创建颁发的证书是没有权威性的,浏览器会提示这个证书不安全。

在这里插入图片描述

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

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

相关文章

【YOLO系列】YOLOv5超详细解读(网络详解)

前言 吼吼&#xff01;终于来到了YOLOv5啦&#xff01; 首先&#xff0c;一个热知识&#xff1a;YOLOv5没有发表正式论文哦~ 为什么呢&#xff1f;可能YOLOv5项目的作者Glenn Jocher还在吃帽子吧&#xff0c;hh 目录 前言 一、YOLOv5的网络结构 二、输入端 &#xff08;1…

微软发布多模态版ChatGPT!取名“宇宙一代”

文&#xff5c;CoCo酱Ludwig Wittgenstein曾说过&#xff1a;“我语言的局限&#xff0c;即是我世界的局限”。大型语言模型&#xff08;LLM&#xff09;已成功地作为各种自然语言任务的通用接口&#xff0c;只要我们能够将输入和输出转换为文本&#xff0c;就可以将基于LLM的接…

爱普生L805开机后所有灯一起闪烁不打印

故障现象: 爱普生L805彩色喷墨打印机开机后所有灯全闪烁,不能打印了?(电源灯、WiFi灯闪绿色,状态 灯、墨水灯、缺纸灯闪红色;) </

【正点原子FPGA连载】第二十二章IP封装与接口定义实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十二章IP封装…

大话数据结构-树

1 概述 树&#xff08;Tree&#xff09;是n&#xff08;n > 0&#xff09;个结点的有限集。n 0时称为空树。在任意一棵非空树中&#xff1a;   (1) 有且仅有一个特定的称为根&#xff08;root&#xff09;的结点&#xff1b;   (2) 当n > 1时&#xff0c;其余结点可…

(Fabric 超级账本学习【1】)Fabcar网络调用Fabric-Java-SDK进行简单开发 FabCar

Fabric 2.3网络调用Fabric-Java-SDK进行简单开发 FabCar 1、先进入fabcar文件夹 2、启动网络 ./startFabric.sh down 启动成功 3、查看启动情况 docker 镜像 4、新建SpringBoot工程项目。导入如下Fabric依赖包 <dependency><groupId>org.hyperledger.fabric…

【LeetCode】剑指 Offer(14)

目录 题目&#xff1a;剑指 Offer 32 - I. 从上到下打印二叉树 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;剑指 Offer 32…

缓冲器/驱动器/收发器IC

一、前言 记录学习未使用过的IC&#xff0c;开发使用新的IC&#xff0c;就是玩 本编文章主要介绍缓冲器/驱动器/收发器 目录一、前言二、环境三、正文1.SN74HCT245NSR2.四、结语二、环境 FPGA或MCU低驱动能力引脚 单向长距离信号 三、正文 1.SN74HCT245NSR DIR高电平&#…

适合小团队协作、任务管理、计划和进度跟踪的项目任务管理工具有哪些?

适合小团队协作、任务管理、计划和进度跟踪的项目任务管理工具有哪些? 大家可以参考这个模板&#xff1a;http://s.fanruan.com/irhj8管理项目归根结底在管理人、物&#xff0c;扩展来说便是&#xff1a; 人&#xff1a;员工能力、组织机制&#xff1b; 物&#xff1a;项目内…

01-前端-htmlcss

文章目录HTML&CSS1&#xff0c;HTML1.1 介绍1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标签1.3.5 段落标签1.3.6 加粗、斜体、下划线标签1.3.7 居中标签1.3.8 案例1.4 图片、音频、视频标签1.5 超链接标签1.6 列表标签1.7 表格标签1.8 布…

charts BarChartView柱状图宽度自适应

ios-charts是一个强大的图表框架&#xff0c;MPAndroidChart在 iOS 上的移植。GitHub地址:https://github.com/danielgindi/Charts.git有一些基础的图标框架来展示,但是实际项目中还是会有所改动的针对charts 的BarChartDataEntry和BarChartRenderer进行了部分修改添加了barWid…

联想配对法

一、课程目的1.掌握联想配对法2.实战应用训练二、发挥咱们的想象力使两者发生关系&#xff0c;让图像动起来三、练习&#xff08;1&#xff09;老鼠飞机我们可以想象老鼠开飞机或者飞机撞倒了老鼠&#xff08;2&#xff09;建立联接的方法要点外置法:把一个图像放在另一个外面旋…

【C/C++语言】刷题|双指针|数组|单链表

主页&#xff1a;114514的代码大冒 qq:2188956112&#xff08;欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ &#xff09; Gitee&#xff1a;庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 文章目录 目录 文章目录 前言 一、删除有序数组中的重复项 二、合并两个有序数组 三&#xff0c;移除…

QT中多项目管理问题,同时构建多个项目

QT中多项目管理问题 0.前言 在编写项目的过程中&#xff0c;当项目比较多时&#xff0c;需要进行统一的管理&#xff0c;这时可以使用qt的子项目管理的方式。 参考&#xff1a; QT 创建多个子项目&#xff0c;以及调用&#xff1a;https://blog.csdn.net/chen1231985111/art…

Docker--(四)--搭建私有仓库(registry、harbor)

私有仓库----registry官方提供registry仓库管理&#xff08;推送、删除、下载&#xff09;私有仓库----harbor私有镜像仓库1.私有仓库----registry官方提供 Docker hub官方已提供容器镜像registry,用于搭建私有仓库 1.1 镜像拉取、运行、查看信息、测试 (一) 拉取镜像 # dock…

企业级分布式数据库 - GaussDB介绍

目录 什么是GaussDB 简介 应用场景 产品架构 产品优势 安全 责任共担 身份认证与访问控制 数据保护技术 审计与日志 ​​​​​​​监控安全风险 ​​​​​​​故障恢复 ​​​​​​​认证证书 GaussDB与其他服务的关系 约束与限制 计费模式 什么是GaussDB …

如何在openKylin操作系统上搭建Qt开发环境

一、获取linux系统下的Qt安装包 Qt官网下载地址&#xff1a;https://download.qt.io 国内镜像下载地址&#xff1a;https://mirrors.cloud.tencent.com/qt/ 。建议用镜像下载速度快。集成安装包在 official_releases/qt 目录下&#xff0c;新地址&#xff1a;https://downloa…

避免重启应用,10倍提升本地研发效率

谁在消耗我们的开发时间&#xff1f; 修改一点代码要重启项目&#xff0c;每次都要浪费很多时间进行方法调试时&#xff0c;要么需要Http请求&#xff0c;要么写个单元测试&#xff0c;非常烦 思考&#xff1a;有没有可能实现热部署随意测试任何一个方法&#xff1f; 热部署 …

开源计划 - 用海量设备汇聚成一台巨型处理器的开源项目

巨型处理器特性1. 由各种能够联网的普通智能设备组成2. 模拟硬件3. 存储器即处理器4. 数据处理的匿名化在2016年的时候&#xff0c;曾经设想过一种处理器。运行在海量的浏览器之上&#xff0c;可用于处理大规模的GPS地理定位距离的运算。后来开始逐渐做了新的延伸&#xff0c;打…

SpringCloud之服务拆分和实现远程调用案例

服务拆分对单体架构项目来说&#xff1a;简单方便&#xff0c;高度耦合&#xff0c;扩展性差&#xff0c;适合小型项目。而对于分布式架构来说&#xff1a;低耦合&#xff0c;扩展性好&#xff0c;但架构复杂&#xff0c;难度大。微服务就是一种良好的分布式架构方案&#xff1…