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

Apache和HTTPS证书的生成与安装

摘要

介绍linux系统下使用openssl生成https证书,并将证书安装在apache服务器上,最终实现通过https访问服务器。这个过程涉及到openssl生成自签名证书(适用于测试环境),修改apache配置,开放防火墙https端口等过程。

生成自签名证书

此小节引用自 https://blog.csdn.net/charlesfromcn/article/details/108509564

  1. 首先使用yum完成openssl的安装
    yum install -y mod_ssl

  2. 安装完成后选择合适的目录作为证书保存地,生成根证书的私钥(CA证书的RSA密钥,PEM格式),执行命令:
    openssl genrsa -des3 -out server.key 2048

  • 如果需要设置密码,则可以随便输入数字:1234
  • 证书中的国家、省份、城市等附件信息可以自定以填写,例如国家CN、省份SC等等
  1. openssl调用此文件会经常要求输入密码,如果想去除此输密码的步骤,可以执行命令:
    openssl rsa -in server.key -out server.key

  2. 生成证书签署请求,(创建服务器证书的申请文件server.csr), 执行命令:
    openssl req -new -key server.key -out server.csr

  3. 生成自签证书,即根证书CA(有效期为十年的),执行命令:
    openssl req -new -x509 -key server.key -out ca.crt -days 3650

  4. 创建服务器证书(有效期十年):
    openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

通过以上步骤,即可在当前工作目录生成证书相关文件

# tree
.
├── ca.crt
├── ca.srl
├── server.crt
├── server.csr
└── server.key

接下来进行证书的安装,以apache服务器为例

Apache服务器ssl证书的安装

通过修改conf配置将证书安装至apache服务器,主要为以下几步:

  1. 找到apache服务器自带的ssl配置conf文件,一般在以下位置
    /etc/httpd/conf.d/ssl.conf
  2. 使用vim命令编辑conf文件,编辑ssl.conf 文件里的证书路径
    指定.crt.key文件的位置
#  将 SSLCertificateFile 指向一个 PEM 编码的证书。如果证书被加密了,那么系统会提示你输入一个密码短语。请注意,重启 httpd 服务时会再次提示输入密码。记住,如果你同时拥有 RSA 和 DSA 证书,
#   你可以同时配置它们(以便也允许使用 DSA 密码套件等)。
#   一些 ECC 密码套件(http://www.ietf.org/rfc/rfc4492.txt)需要一个 ECC 证书,这个证书也可以同时配置。
SSLCertificateFile /etc/httpd/xxx.crt#   服务器私钥:
#   如果私钥没有与证书合并在一起,请使用此指令指向私钥文件。请记住,如果你同时拥有 RSA 和 DSA 私钥,你可以同时配置它们(以便也允许使用 DSA 密码套件等)。
#   当使用 ECC 密钥时,也可以同时配置它们。
SSLCertificateKeyFile /etc/httpd/xxx.key

配置完成后重启服务器
systemctl restart httpd

防火墙开启https端口

服务器启动后,还需开启https默认端口443,否则服务器无法通过外部访问到URL地址

  1. 检查防火墙监听状态
    firewall-cmd --list-all显示以下信息
  target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: dhcpv6-client mdns sshports: 80/tcp 443/tcpprotocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

注:

target: default这指定了规则的目标行为,default通常意味着使用防火墙的默认策略。
icmp-block-inversion: no这表示不反转ICMP阻塞规则。通常,icmp-block用于阻止ICMP(Internet Control Message Protocol)消息,而icmp-block-inversion可能用于指示是否要反转这个阻塞行为。在这里,no表示不反转,即保持默认的ICMP阻塞行为(如果有的话)。
interfaces: ens33这指定了规则适用的网络接口,ens33是网络接口的名称。
sources:这个字段后面没有值,通常用于指定规则的源地址或地址范围。在这里,它可能是空的,意味着规则适用于所有源地址。
services: dhcpv6-client mdns ssh这指定了规则允许的服务,dhcpv6-client(DHCPv6客户端服务)、mdns(多播DNS,也称为mDNSResponder或Avahi,用于局域网内的服务发现)和ssh(安全外壳协议,用于远程登录)。
ports: 80/tcp 443/tcp这指定了规则允许的TCP端口,80通常用于HTTP,443用于HTTPS。
protocols:这个字段后面没有值,通常用于指定允许或阻止的网络协议(如TCP、UDP等)。在这里,它可能是空的,或者意味着规则适用于所有协议(但这取决于防火墙的具体实现和上下文)。
forward: yes这表示启用端口转发。
masquerade: no不启用某种形式的地址伪装或转换。
forward-ports:这个字段后面没有值,通常用于指定端口转发规则。在这里,它可能是空的,意味着没有定义具体的端口转发规则。
source-ports:这个字段后面没有值,通常用于指定规则的源端口。在这里,它可能是空的,意味着规则适用于所有源端口。
icmp-blocks:这个字段后面没有值,通常用于指定要阻塞的ICMP消息类型。在这里,它可能是空的,意味着没有定义具体的ICMP阻塞规则。
rich rules:这个字段后面没有值,但在Firewalld中,rich rules允许定义复杂的规则,这些规则可以包含多个条件和动作。它们通常用于实现更精细的控制,比如基于源/目标地址、端口、协议、时间等的规则。在这里,字段是空的,意味着没有定义具体的rich rules。
  1. 如果443端口没有开放,则需要通过以下命令开放端口
    firewall-cmd --add-port 443/tcp --permanent
    firewall-cmd --reload

通过以上步骤,则完成了https防火墙的开放

小结

启动服务器后,使用https访问 https://xxx.xxx.xxx.xxx,如果成功,则说明配置正确,如果失败,则查询服务器日志/var/log/httpd和防火墙日志/var/log/firewalld

相关文章:

Apache和HTTPS证书的生成与安装

摘要 介绍linux系统下使用openssl生成https证书,并将证书安装在apache服务器上,最终实现通过https访问服务器。这个过程涉及到openssl生成自签名证书(适用于测试环境),修改apache配置,开放防火墙https端口…...

前端—Cursor编辑器

在当今快速发展的软件开发领域,效率和质量是衡量一个工具是否优秀的两个关键指标。今天,我要向大家推荐一款革命性的代码编辑器——Cursor,它集成了强大的AI功能,旨在提高开发者的编程效率。以下是Cursor编辑器的详细介绍和推荐理…...

【数据结构】【线性表】【练习】删除链表倒数第n个结点

目录 申明 题目 分析题目信息 解题思路 代码解析 技巧解析:创建虚拟头结点 时间复杂度分析 思考:能否只用一趟扫描实现? 双指针 双指针解题思路 代码解析 申明 该题源自力扣题库19,文章内容(代码&#xff0c…...

MySQL高级(四):索引

基础概念 什么是索引? 索引是一种数据结构,用于加速查询的过程。它类似于书本的目录,可以快速定位数据行。MySQL 索引主要是基于 B 树(也有其他类型如哈希索引、全文索引等)来实现的。 为什么使用索引? …...

hhdb数据库介绍(9-21)

计算节点参数说明 checkClusterBeforeDnSwitch 参数说明: PropertyValue参数值checkClusterBeforeDnSwitch是否可见否参数说明集群模式下触发数据节点高可用切换时,是否先判断集群所有成员正常再进行数据节点切换默认值falseReload是否生效是 参数设…...

React中组件通信的几种方式

在构建复杂的React应用时,组件之间的通信是至关重要的。从简单的父子组件通信到跨组件状态同步,不同组件之间的通信方式多种多样。 1. 父子组件通信 父子组件通信是 React 中最基本的通信方式之一。在这种模式下,数据是从父组件通过 props …...

python脚本实现csv中百度经纬度转84经纬度

数据准备 csv文件,带百度经纬度字段:bd09_x,bd09_y 目的 将百度经纬度转换为84经纬度,并在csv文件中添加两个字段:84_x,84_y python脚本 from ChangeCoordinate import ChangeCoordimport pandas as pd import numpy as npcoord = ChangeCoord()def bd09_to_wgs84...

syslog udp配置笔记

要将 /var/log/ 目录下的日志信息通过 UDP 发送到远程服务器,可以使用 rsyslog 的配置来实现。以下是详细步骤: 步骤 1:确保 rsyslog 已安装 如果 rsyslog 没有安装,请使用以下命令进行安装: 在 CentOS/RHEL: sudo yum install rsyslog在 Ubuntu/Debian: sudo apt-get i…...

Linux环境开启MongoDB的安全认证

文章目录 1. MongoDB安全认证简介1.1 访问控制1.2 角色1.3 权限 2. MongoDB中的常见角色3. MongoDB Shell3.1 下载MongoDB Shell3.2 通过MongoDB Shell连接MongoDB 4. 创建管理员用户5. 为具体的数据库创建用户6. 开启权限认证7. 重启MongoDB服务8. 连接MongoDB9. MongoDB数据库…...

django基于Python的农产品销售系统的设计与实现

摘 要 随着现代人们的快速发展,农产品销售系统已成为农产品的需求。该平台采用Python技术和django搭建系统框架,后台使用MySQL数据库进行信息管理;通过个人中心、用户管理、商家管理、产品类型管理、农产品管理、系统管理、订单管理等功能&a…...

linux复习5:C prog

编辑 缩排 为了使C源代码更加整洁易读,可以使用一些工具来自动格式化代码,例如cb(C程序美化器)、bcpp(C美化器)和indent等。 编译 编译并链接C文件 gcc hello.c -o hello 将 hello.c 编译并链接成可执行文…...

Go语言24小时极速学习教程(三)常见标准库用法

常见标准库 常见标准库即Go语言自带的库,这里的所有包都可以通过import直接引入,如果你觉得实在是不好用,那么请先保证你学会了标准库的基础上,再学一下Gookit,特别是其中的GoUtil,千万不要轻易自己去造轮…...

大数据环境下的高效数据清洗策略

大数据环境下的高效数据清洗策略 在当今这个信息爆炸的时代,大数据已成为企业决策和科学研究不可或缺的重要资源。然而,数据的海量性、多样性和复杂性也给数据处理带来了前所未有的挑战,其中数据清洗是确保数据质量和后续分析准确性的关键步…...

基于SpringBoot3+mybatis搭建的历史上的今天API接口服务 及 Mybatis 应该有个更好的方法来隐藏 Pojo 类中的字段

一、Mybatis有没有比较好的方法隐藏 Pojo 类中的字段 使用 Mybatis 时,为了实现通用的CURD,在定义实体类pojo时,会尽量将能用得上的数据库字段都定义到 pojo中,但是在查询的时候却有不一样的需求。mybatis的文档地址链接&#xff…...

Python 3 字符串

Python 3 字符串 字符串在Python中是一种基本的数据类型,用于存储文本数据。Python中的字符串是不可变的,这意味着一旦创建了一个字符串,就不能更改其内容。字符串可以用单引号()、双引号("&#xff…...

Android集成FCM(Firebace Cloud Messaging )

集成FCM官方文档 Firebace主页面 将 Firebase 添加到您的 Android 应用 1、进入Firebace页面,创建自己的项目 2、点击自己创建好的项目,在右侧选择Cloud Messaging 3、点击Android去创建 google-services.json 4、将下载的 google-services.json 文件…...

基于 RBF 神经网络辨识的单神经元 PID 模型参考自适应控制

这是一个基于 RBF 神经网络辨识 和 单神经元 PID 模型参考自适应控制 的系统框图,包含以下主要部分: RBF 神经网络模块:用于对系统进行辨识,输入误差 e(t)e(t)e(t) 和误差变化量 Δe(t)\Delta e(t)Δe(t),输出与系统特…...

2024年 Web3开发学习路线全指南

Web3是一个包含了很多领域的概念,不讨论币圈和链圈的划分,Web3包括有Defi、NFT、Game等基于区块链的Dapp应用的开发;也有VR、AR等追求视觉沉浸感的XR相关领域的开发;还有基于区块链底层架构或者协议的开发。 这篇文章给出的学习路…...

Ubuntu22.04LTS 部署前后端分离项目

一、安装mysql8.0 1. 安装mysql8.0 # 更新安装包管理工具 sudo apt-get update # 安装 mysql数据库,过程中的选项选择 y sudo apt-get install mysql-server # 启动mysql命令如下 (停止mysql的命令为:sudo service mysql stop&#xff0…...

「Mac玩转仓颉内测版23」基础篇3 - 深入理解整数类型

本篇将详细讲解Cangjie中的整数类型,探讨整数的定义、操作、表示范围、进制表示、类型转换及应用场景,帮助开发者在Cangjie中灵活运用整数类型构建程序逻辑。 关键词 有符号整数与无符号整数表示范围与溢出进制表示类型转换字面量与操作 一、整数类型概…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...