Linux之基于HTTPS的静态网站

目录

Linux之基于HTTPS的静态网站

定义

SSL协议

使用Apache+mod_ssl组件的加密认证网站

mod_ssl模组

安装

配置文件

ssl配置文件的主要参数

案例

        案例1 --- 搭建HTTP+SSL的加密认证的web服务器

        案例2 ---  组建多个子目录的网站www.joker.com,该网站下有2个子目录www.joker.com/file和www.joker.com/ftp,要求file数据使用http读取,ftp数据使用https读取


Linux之基于HTTPS的静态网站

定义

        超文本传输协议HTTP协议备用于在Web浏览器和网站服务器之间传递信息

        HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS

        HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道

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

SSL协议

定义

        SSL --- 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)

SSL协议分层

        SSL记录协议 (SSL Record Protocol)它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能

        SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等

SSL协议提供的服务

  • 认证用户和服务器,确保数据发送到正确的客户机和服务器

  • 加密数据以防止数据中途被窃取

  • 维护数据的完整性,确保数据在传输过程中不被改变

使用Apache+mod_ssl组件的加密认证网站

mod_ssl模组

        mod_ssl组件 --- 是apache的一个模块,以openssl的工具箱为基础专门为apache提供密码保护的一种组件模块

安装

[root@www conf.d]# yum install mod_ssl -y

配置文件

  • 主配置文件 --- /etc/httpd/conf.d/ssl.conf

  • 证书文件 --- /etc/pki/tls/certs/xxxx.crt

  • 私钥文件 ---/etc/pki/tls/private/xxxx.key

ssl配置文件的主要参数

[root@www /]# vim /etc/httpd/conf.d/ssl.conf 

# 常用参数如下:
5 Listen 443 https   # 监听的端口号18 SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog # 存储证书的密码信息23 SSLSessionCache   shmcb:/run/httpd/sslcache(512000)   # ssl的缓存,位置24 SSLSessionCacheTimeout  300  # 换存的超时时长40 <VirtualHost _default_:443>  # 重要,定义虚拟主机的信息48 ErrorLog logs/ssl_error_log  # 错误日志49 TransferLog logs/ssl_access_log  # 传输日志50 LogLevel warn  # 日志等级54 SSLEngine on  # ssl引擎开启66 SSLHonorCipherOrder on  # 协商算法85 SSLCertificateFile /etc/pki/tls/certs/localhost.crt  # 证书存储路径93 SSLCertificateKeyFile /etc/pki/tls/private/localhost.key  # 私钥文件路径202 </VirtualHost>  # 虚拟主机结束定义

案例

        案例1 --- 搭建HTTP+SSL的加密认证的web服务器

创建存储网页的目录,xftp上传网页数据

[root@www /]# mkdir -p /test/zy
[root@www /]# cd /test/zy/
[root@www zy]# vim index.html
[root@www zy]# cat index.html 
this is zy

在/etc/pki/tls/private/目录中生成私钥文件

[root@www zy]# cd /etc/pki/tls/private/
[root@www private]# ls
sendmail.key
[root@www private]# openssl genrsa -aes128 2048 > zy.key
Generating RSA private key, 2048 bit long modulus (2 primes)
.............+++++
........................+++++
e is 65537 (0x010001)
Enter pass phrase:     # 设置对私钥加密的密码,123456
Verifying - Enter pass phrase:     # 在输入一遍
[root@www private]# 

在/etc/pki/tls/certs/目录中新建数字证书

[root@www private]# cd /etc/pki/tls/certs/
[root@www certs]# ls
ca-bundle.crt  ca-bundle.trust.crt  sendmail.pem
[root@www certs]# openssl req -utf8 -new -key /etc/pki/tls/private/zy.key -x509 -days 365 -out zy.crt    
Enter pass phrase for /etc/pki/tls/private/zy.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]:86      # 国家代码   
State or Province Name (full name) []:shanxi     # 省份
Locality Name (eg, city) [Default City]:xi'an        # 城市
Organization Name (eg, company) [Default Company Ltd]:tiandi      # 公司    
Organizational Unit Name (eg, section) []:Hcip       # 部门
Common Name (eg, your name or your server's hostname) []:192.168.149.130    # 主机名
Email Address []:145246820@qq.com     # 邮件地址

编辑配置文件

[root@www certs]# cd ~
[root@www ~]# vim /etc/httpd/conf.d/ssl.conf
<virtualhost  192.168.149.130:443>     # https的虚拟主机设置SSLEngine on                  # 开启引擎SSLCertificateFile /etc/pki/tls/certs/zy.crt    # 证书存储路径SSLCertificateKeyFile /etc/pki/tls/private/zy.key  # 私钥文件存储路径servername  192.168.149.130     # 域名documentroot    /test/zy             # 启动目录<directory  /test/zy >               # 启动目录权限设置allowoverride  nonerequire  all  granted</directory>
</virtualhost>

重启服务

[root@localhost ~]# systemctl restart httpdEnter TLS private key passphrase for 192.168.149.128:443 (RSA) : ****** #密码为先前设置的123456

        案例2 ---  组建多个子目录的网站www.joker.com,该网站下有2个子目录www.joker.com/file和www.joker.com/ftp,要求file数据使用http读取,ftp数据使用https读取

安装mod_ssl已经Apache

[root@localhost ~]# yum install httpd
[root@localhost ~]# yum install mod_ssl -y
#关闭selinux以及防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

新建网页目录,并创建文件

[root@localhost ~]# mkdir -p /www/file
[root@localhost ~]# mkdir -p /www/ftp
[root@localhost ~]# vim /www/file/index.html
[root@localhost ~]# vim /www/ftp/index.html
[root@localhost ~]# cat /www/file/index.html 
this is joker/file
[root@localhost ~]# cat /www/ftp/index.html 
this is ftp

修改/etc/hosts的映射

[root@localhost ~]# vim /etc/hosts

建立file网站

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
<virtualhost 192.168.149.128>servername 'file'documentroot /www/filealias /file /www/file<directory /www/file>allowoverride nonerequire all granted</directory>
</virtualhost>

建立https的ftp网站

[root@localhost ~]# openssl genrsa -aes128 2048 > /etc/pki/tls/private/sxhkt.key
Generating RSA private key, 2048 bit long modulus (2 primes)
............................................................................................................................................+++++
..............................................................................+++++e is 65537 (0x010001)
Enter pass phrase:    #密码123456
Verifying - Enter pass phrase:

[root@localhost ~]# touch /etc/pki/tls/certs/sxhkt.crt
[root@localhost ~]# openssl req -utf8 -new -key /etc/pki/tls/private/sxhkt.key -x509 -days 365 -out /etc/pki/tls/certs/sxhkt.crt 
Enter pass phrase for /etc/pki/tls/private/sxhkt.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]:86
State or Province Name (full name) []:shanxi
Locality Name (eg, city) [Default City]:xi'an
Organization Name (eg, company) [Default Company Ltd]:joker
Organizational Unit Name (eg, section) []:linux
Common Name (eg, your name or your server's hostname) []:192.168.149.128
Email Address []:joker.com

编辑配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/ssl.conf
<virtualhost  192.168.149.128:443>sslengine  onSSLCertificateFile /etc/pki/tls/certs/sxhkt.crtSSLCertificateKeyFile /etc/pki/tls/private/sxhkt.keyservername  'ftp'documentroot  /www/ftpalias   /ftp  /www/ftp    # 设置别名访问二级目录<directory  /www/ftp>allowoverride  nonerequire  all  granted</directory>
</virtualhost>

重启服务,测试

[root@localhost ~]# systemctl restart httpd

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

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

相关文章

Royal TSX 6 Mac多协议远程软件

Royal TSX是一款功能强大的远程桌面管理软件&#xff0c;适用于Mac操作系统。它允许用户通过一个集成的界面来管理和访问多个远程计算机和服务器。 Royal TSX支持多种远程协议&#xff0c;包括RDP、VNC、SSH、Telnet和FTP等&#xff0c;可以方便地连接到Windows、Linux、Mac和其…

Spring Cloud--从零开始搭建微服务基础环境【四】

&#x1f600;前言 本篇博文是关于Spring Cloud–从零开始搭建微服务基础环境【四】&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;…

手把手教你用Vite构建第一个Vue3项目

写在前面 在之前的文章中写过“如何创建第一个vue项目”&#xff0c;但那篇文章写的是创建vue2的 项目。 传送门如何创建第一个vue项目 打开Vue.js官网:https://cn.vuejs.org/&#xff0c;我们会发现Vue 2 将于 2023 年 12 月 31 日停止维护 虽然Vue2的项目还不少&#xff0…

【VL tracking】Towards Unified Token Learning for Vision-Language Tracking

不知道什么原因学校认证账号进不去&#xff0c;下载不了最新的PDF 广西师范大学 | 国科大 | 厦大 代码开源 zhihu指路&#x1f449;【VL tracking】MMTrack阅读 问题 一方面&#xff0c;传统的VL tracking方法需要昂贵的先验知识。例如&#xff0c;一些tracker是专门用于bou…

3.2.0 终极预告!云原生支持新增 Spark on k8S 支持

视频贡献者 | 王维饶 视频制作者 | 聂同学 编辑整理 | Debra Chen Apache DolphinScheduler 3.2.0 版本将发布&#xff0c;为了让大家提前了解到此版本更新的主要内容&#xff0c;我们已经制作了几期视频和内容做了大致介绍&#xff0c;包括《重磅预告&#xff01;Apache Dol…

安防视频监控/视频集中存储/云存储平台EasyCVR平台无法播放HLS协议该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

100天精通Python(可视化篇)——第99天:Pyecharts绘制多种炫酷K线图参数说明+代码实战

文章目录 专栏导读一、K线图介绍1. 说明2. 应用场景 二、配置说明三、K线图实战1. 普通k线图2. 添加辅助线3. k线图鼠标缩放4. 添加数据缩放滑块5. K线周期图表 书籍推荐 专栏导读 &#x1f525;&#x1f525;本文已收录于《100天精通Python从入门到就业》&#xff1a;本专栏专…

MyBatis中至关重要的关系映射----全方面介绍

目录 一 对于映射的概念 1.1 三种关系映射 1.2 resultType与resultMap的区别 resultType&#xff1a; resultMap&#xff1a; 二&#xff0c;一对一关联查询 2.1 嵌套结果集编写 2.2 案例演示 三&#xff0c;一对多关联查询 3.1 嵌套结果集编写 3.3 案例演示 四&…

排序之插入排序

文章目录 前言一、直接插入排序1、基本思想2、直接插入排序的代码实现3、直接插入排序总结 二、希尔排序1、希尔排序基本思想2、希尔排序的代码实现3、希尔排序时间复杂度 前言 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大…

Java应用CPU占用过高故障排除

一、背景 最近测试反馈测试环境接口偶现有访问超时&#xff0c;然后APP提示是网络失败&#xff0c;看了一下测试环境的应用完全没啥问题&#xff0c;一直以为是网络问题。 今天测试有反馈了&#xff0c;赶紧看了一下测试服务器&#xff0c;这次终于有症状了&#xff0c;CPU直…

mp代码生成插件

mp代码生成插件 1.下载下面的插件 2.连接测试 3.生成代码的配置 4.生成代码 红色的是刚刚生成的。 我觉得不如官方的那个好用&#xff0c;唯一的好处就是勾选的选项能够看的懂得。

【Linux】文件缓冲区

目录 一、缓冲区图解二、自定义实现文件操作函数三、强制刷新内核缓冲区&#xff08;fsync&#xff09; 提到文件缓冲区这个概念我们好像并不陌生&#xff0c;但是我们对于这个概念好像又是模糊的存在脑海中&#xff0c;之间我们在介绍c语言文件操作已经简单的提过这个概念&…