Linux CentOS 8(HTTPS的配置与管理)

news2024/12/23 12:26:11


Linux CentOS 8(HTTPS的配置与管理)


目录

    • 一、HTTPS 介绍
    • 二、SSL 证书的介绍
    • 三、实验配置


一、HTTPS 介绍

HTTPS 在 HTTP 的基础下加入 SSL,SSL 是“Secure Sockets Layer”的缩写,中文为“安全套接层”。因此 HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。 因此 SSL 证书的两大作用是数据加密和身份认证。

二、SSL 证书的介绍

SSL 证书遵循 SSL 协议,通过在客户端浏览器和 Web 服务器之间建立一条 SSL 安全通道。一个有效、可信的 SSL 数字证书包括一个公共密钥和一个私用密钥。公共密钥用于加密信息,私用密钥用于解译加密的信息。因此,客户机浏览器指向一个安全域时,SSL 将同步确认服务器和客户端,并创建一种加密方式和一个唯一的会话密钥。它们可以启动一个保证消息的隐私性和完整性的安全会话。

三、实验配置

1、安装 openssl 软件包

[root@www test]# yum -y install openssl

2、查看openssl.cnf文件,如图1-1所示。

[root@www ~]# vim /etc/pki/tls/openssl.cnf

在这里插入图片描述

图1-1

3、创建index.txtserial文件

[root@www ~]# ls /etc/pki/tls/


CA  ct_log_list.cnf  misc  openssl.cnf  certs   newcerts  private  
[root@www ~]# touch /etc/pki/tls/index.txt
[root@www ~]# echo 01 > /etc/pki/tls/serial
[root@www ~]# ls /etc/pki/tls/
CA  ct_log_list.cnf  misc  openssl.cnf  serial certs index.txt  newcerts  private 

4、安装mod_ssl模块

[root@www ~]# yum -y install mod_ssl
[root@www ~]# ls /etc/httpd/conf.d/
autoindex.conf  htpasswd  httpd-vhosts.conf  README  ssl.conf  userdir.conf  welcome.conf
//生成了ssl.conf配置文件

5、修改ssl.conf文件

[root@www ~]# vim /etc/httpd/conf.d/ssl.conf
DocumentRoot "/var/www/html"                       
//访问的目录路径
SSLCertificateFile /etc/httpd/ssl/server.crt           
//证书的路径
SSLCertificateKeyFile /etc/httpd/ssl/server.key
//证书私钥文件的路径

6、生成证书
创建并切换到指定目录下(ssl.conf文件中证书所在位置)

[root@www ssl]# cd /etc/httpd/ssl

创建私钥文件

[root@www ssl]# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
...................................................................................................................................
...................................................................................................................................
e is 65537 (0x010001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

创建证书签署请求

[root@www ssl]# 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) []:GD
Locality Name (eg, city) [Default City]:GZ
Organization Name (eg, company) [Default Company Ltd]:Jan16
Organizational Unit Name (eg, section) []:Technology
Common Name (eg, your name or your server's hostname) []:www.example.com
Email Address []:www.jan16.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:jan16
An optional company name []:jan16

创建自签证书

[root@www ssl]# openssl req -new -x509 -key server.key -out ca.crt -days 3650
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) []:GD
Locality Name (eg, city) [Default City]:GZ
Organization Name (eg, company) [Default Company Ltd]:Jan16
Organizational Unit Name (eg, section) []:Technology
Common Name (eg, your name or your server's hostname) []:www.example.com
Email Address []:www.jan16.com 

签发证书

[root@www ssl]# openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
Signature ok
subject=C = cn, ST = gz, L = th, O = jan16, OU = t, CN = www.example.com, emailAddress = 11.com
Getting CA Private Key
Enter pass phrase for server.key:

7、重启服务

[root@www ssl]# systemctl restart httpd
Enter TLS private key passphrase for www.example.com:443 (RSA) : **********

8、验证

[root@www httpd]# cat /var/www/html/index.html
This is my website!!

显示当前网站不安全,如图2-1所示。
在这里插入图片描述

图2-1

点击设置中的【首选项】,导入证书,如图2-2所示。
在这里插入图片描述

图2-2

点击【隐私与安全】,查看证书,如图2-3所示。
在这里插入图片描述

图2-3

点击导入,如图2-4所示。
在这里插入图片描述

图2-4

切换到对应的目录,选择ca.crt 证书,如图2-5所示。
在这里插入图片描述

图2-5

勾选【信任由此证书颁发机构来标识网址】和【信任由此证书颁发机构来标识电子邮件用户】两个选项,点击【确定】,如图2-6所示。
在这里插入图片描述

图2-6

刷新网站,能成功访问,如图2-7所示。
在这里插入图片描述

图2-7

制作成员: 何嘉愉
排版: 裕新
初审: 杨佳佳
复审: 二月二

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

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

相关文章

解决MySQL需要根据特定顺序排序

文章目录 0 写在前面1 问题引入2 问题解决3 写在末尾 0 写在前面 在进行业务需求的时候,不会根据排序去选择数据。例如,在导出的时候数据排序是根据编辑时间去排序的,那么他的主键id会打乱。 假如: 要导出id为 3 ,1 &…

Python学习笔记--构造(`__new__`)和初始化(`__init__`)

二、构造(__new__)和初始化(__init__) 通过之前的学习,我们已经知道定义一个类时,我们经常会通过 __init__(self) 的方法在实例化对象的时候,对属性进行设置。 比如下面的例子: #!/usr/bin/env python3 # -*- coding: UTF-8 -*…

WordPress页脚配置备案号

进入后台管理页面 后台管理页面地址一般是&#xff1a;域名/wp-admin 在指定位置加入代码 点击外观 -> 主题文件编辑器 在右侧的文件中选择 footer.php,[注意&#xff1a;上方的主题需要是你自己选择的对应的主题]在 </footer>标签这一行的上一行中加入代码 <di…

MySQL最新2023年面试题及答案,汇总版(1)【MySQL最新2023年面试题及答案,汇总版-第三十一刊】

文章目录 MySQL最新2023年面试题及答案&#xff0c;汇总版(1)01、什么是存储过程&#xff1f;用什么来调用&#xff1f;02、优化数据库有哪些方法&#xff0c;详细说明其使用方式&#xff1f;03、MySQL完整性约束包括哪些&#xff1f;04、使用B树的好处有哪些&#xff1f;05、视…

Python Collections:解放你的数据处理能力

导语&#xff1a; Python中的collections模块为我们提供了丰富的数据结构和高效的操作方法&#xff0c;让我们能够更轻松地处理各种数据。本文将详细介绍Python collections的高端操作使用教程&#xff0c;帮助你更好地利用这些强大的工具&#xff0c;提升数据处理的效率和质量…

Qt文本编辑器避免在新窗口打开链接的设置方法

如何避免在新窗口打开链接&#xff0c;在Qt的主菜单:工具->选项->文本编辑器->显示->Always open links in another split去掉即可。

Java安全架构 JCA、JCE、JSSE、JAAS

Java语言拥有三大特征&#xff1a;平台无关性、网络移动性和安全性&#xff0c;而Java安全体系结构对这三大特征提供了强大的支持和保证&#xff0c; Java安全体系结构总共分为4个部分&#xff1a; &#xff08;1&#xff09;JCA&#xff08; Java Cryptography Architecture…

【ChatGPT】人工智能的下一个前沿

&#x1f38a;专栏【ChatGPT】 &#x1f33a;每日一句&#xff1a;慢慢变好,我是,你也是 ⭐欢迎并且感谢大家指出我的问题 文章目录 一、引言 二、ChatGPT的工作原理 三、ChatGPT的主要特点 四、ChatGPT的应用场景 五、结论与展望 ​​​​​​​ 一、引言 随着人工智能技…

JS逆向爬虫---请求参数加密③【比特币交易爬虫】

查询参数确定 t无加密 请求头参数加密 X-Apikey参数加密确定 X-Apikey逆向 const API_KEY "a2c903cc-b31e-4547-9299-b6d07b7631ab" function encryptApiKey(){ var t API_KEY, e t.split(""), n e.splice(0, 8);return t e.concat(n).join("&…

全球10米土地覆盖产品(ESA)数据集2020和2021年

简介 全球10米土地覆盖产品(ESA)来源于欧空局&#xff0c;是基于哨兵一号、哨兵二号数据制作的2020年的10m分辨率的全球土地覆盖数据。土地利用数据一共分为11类&#xff0c;分别是:林地、灌木、草地、耕地、建筑、裸地/稀疏植被区、雪和冰、开阔水域、草本湿地、红树林、苔藓…

使用Plsql+oracle client 连接 Oracle数据库

2011年入职老东家X煤集团的时候&#xff0c;在csnd上写了一篇blog&#xff0c;题目叫“什么是ERP”&#xff0c;从此跳入DBA了这个烂坑&#xff0c;目前公司的数据库一部分是Oracle&#xff0c;另一部分是MySQL的&#xff0c;少量MSSQL&#xff0c;还需要捡起来一部分&#xff…

Chrome 插件开发 V3版本 跨域处理

插件构成 chrome 插件通常由以下几部分组成&#xff1a; manifest.json&#xff1a;相当于插件的 meta 信息&#xff0c;包含插件的名称、版本号、图标、脚本文件名称等&#xff0c;这个文件是每个插件都必须提供的&#xff0c;其他几部分都是可选的。 background script&…

U-Boot 启动流程详解

目录 链接脚本u-boot.lds 详解U-Boot 启动流程详解reset 函数源码详解lowlevel_init 函数详解s_init 函数详解_main 函数详解board_init_f 函数详解relocate_code 函数详解relocate_vectors 函数详解board_init_r 函数详解run_main_loop 函数详解cli_loop 函数详解cmd_process …

【教3妹学编程-算法题】最长平衡子字符串

3妹&#xff1a;呜呜&#xff0c;烦死了&#xff0c; 脸上长了一个痘 2哥 : 不要在意这些细节嘛&#xff0c;不用管它&#xff0c;过两天自然不就好了。 3妹&#xff1a;切&#xff0c;你不懂&#xff0c;影响这两天的心情哇。 2哥 : 我看你是不急着找工作了啊&#xff0c; 工作…

OCR技术助力行驶证识别,引领未来智能交通新潮流

随着人工智能技术的发展&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术在各个领域得到了广泛的应用&#xff0c;而行驶证OCR识别作为OCR技术的一个重要应用之一&#xff0c;在多个领域展现出了巨大的潜力。 首先&#xff0c;行驶证OCR识别在交通管理领域具有重要意…

【Android】Dagger2 框架设计理念和使用方式详解

文章目录 Dagger 框架作用基本使用方法引入依赖创建 Object创建 Module创建 Component向 Activity 注入对象 Component 内部单例全局单例自定义 Scope关于单例作用域的理解注入多种同类型对象Component 依赖Component 继承传递 Activity Dagger 框架作用 这里&#xff0c;我们…

Vue路由使用参数传递数据

一、使用query参数传递数据 &#xff08;一&#xff09;参数的传递 1. 携带参数进行传递 <router-link to"/路径?参数名1参数值1&参数名2参数值2">内容</router-link> 我们在下面的代码中传递每条消息的id和标题&#xff1a; 2. 配置对象进行传递…

计算/存储虚拟化高级特性

目录 计算虚拟化特性 HA高可用 虚拟机热迁移 虚拟机快照技术 存储虚拟化特性 链接克隆 存储热迁移 裸设备映射 计算虚拟化特性 HA高可用 通过HA&#xff08;High Available&#xff09;机制&#xff0c;可以提升虚拟机的可用度&#xff0c;允许虚拟机所在的服务器节点…

采集Prestashop独立站

这是一个用Lua编写的爬虫程序&#xff0c;用于采集Prestashop独立站的内容。爬虫程序使用代理信息&#xff1a;proxy_host: jshk.com.cn。 -- 首先&#xff0c;我们需要导入所需的库 local http require(socket.http) local url require(socket.url)-- 然后&#xff0c;我们…