OpenSSL-基于IP或域名生成自签名证书脚本
个人名片:
对人间的热爱与歌颂,可抵岁月冗长🌞
Github👨🏻💻:念舒_C.ying
CSDN主页✏️:念舒_C.ying
个人博客🌏 :念舒_C.ying
一、安装
需要安装并配置OpenSSL工具。
yum install openssl
二、创建自签名证书
2.1 基于域名
- 创建私钥
openssl genrsa -out nianshu.com.key 2048
- 创建证书签名请求(CSR)
openssl req -new -key nianshu.com.key -out draw.by.gs.csr
- 创建自签名证书
openssl x509 -req -days 3650 -in nianshu.com.csr -signkey nianshu.com.key -out nianshu.com.crt
在执行此命令时,您可以使用-days选项来指定证书的有效期。在上述示例中,证书的有效期为10年(3650天)。如果您想要更长期的有效期,可以将该值增加。
- 证书格式转换
使用以下命令将证书格式转换为PEM格式:
openssl x509 -in nianshu.com.crt -out nianshu.com.pem -outform PEM
现在,您已经成功创建了域名的自签名证书,并将其保存为PEM格式的文件。请注意,自签名证书不被公共信任,因此它们只适用于内部使用或开发目的。如果您要将您的网站公开发布,建议您购买由受信任的第三方证书颁发机构(CA)颁发的证书。
- 脚本创建自签名证书
#!/bin/bash# 设置变量
DOMAIN="draw.by.gs" #域名
CERT_DIR="/certs" #目录
COUNTRY="CN" #国家
STATE="GANSU" #省/州
CITY="LANZHOU" #城市
ORG_NAME="" #组织
EMAIL="admin@nianshu.com" #邮箱
KEY_SIZE="2048"
DAYS="365" #有效期# 生成私钥
openssl genrsa -out $CERT_DIR/$DOMAIN.key $KEY_SIZE# 生成证书签名请求(CSR)
openssl req -new -key $CERT_DIR/$DOMAIN.key -out $CERT_DIR/$DOMAIN.csr -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORG_NAME/CN=$DOMAIN/emailAddress=$EMAIL"# 生成自签名证书
openssl x509 -req -days $DAYS -in $CERT_DIR/$DOMAIN.csr -signkey $CERT_DIR/$DOMAIN.key -out $CERT_DIR/$DOMAIN.crt# 删除证书请求文件
rm draw.by.gs.csr# 输出证书内容
echo "--------------------------"
echo "生成的证书文件:"
ls -al $DOMAIN.*
echo ""
echo "证书内容:"
openssl x509 -in $DOMAIN.crt -noout -text
脚本中首先设置了一些变量,这些变量包括要生成证书的域名、证书存储目录、组织方信息等等。接着,通过openssl工具生成证书所需的私钥、证书签名请求以及自签名证书,最终将证书存储在指定的目录下。注意,生成完证书后,需要将证书请求文件删除,因为它不再需要。
- 使用该脚本需事先安装openssl,可使用以下命令安装:
yum install openssl
2.2 基于IP
- 创建一个名为
openssl.cnf的文件:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no[req_distinguished_name]
C = CN
ST = Some-State
L = Some-City
O = Some-Company
OU = Some-Organization
CN = example.com[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names[alt_names]
IP.1 = 192.168.0.12
此配置文件包含有关证书的信息。使用示例信息并将其替换为您的数据。特别是,您需要修改 C, ST, L, O, OU, 和 CN 的值。此外,您还可以看到 subjectAltName 部分需要修改,确保 IP.1 下的IP地址正确。
- 使用以下命令生成密钥和证书:
openssl req -new -newkey rsa:4096 -nodes -keyout domain.key -config openssl.cnf -x509 -sha256 -days 365 -out domain.crt
这将生成一个名为 domain.key 的RSA密钥文件和一个名为 domain.crt 的证书文件,包含配置文件中的数据和有效。
- 合并证书
cat domain.crt domain.key > ./ssl.pem
期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~💪💪💪
相关文章:
OpenSSL-基于IP或域名生成自签名证书脚本
个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 Github👨🏻💻:念舒_C.ying CSDN主页✏️:念舒_C.ying 个人博客🌏 :念舒_C.ying 一、安装 需要安装并配置Op…...
如何在C#中创建和使用自定义异常
C#是一种强类型语言,可以捕获和处理各种异常,从而帮助我们发现程序中出现的错误。在程序开发过程中,如果需要找到特定的错误情况并处理,这时就需要创建自定义异常。下面介绍一下如何在C#中创建和使用自定义异常。 1、什么是异常&…...
通过systemctl管理服务
文章目录 通过systemctl管理服务通过systemctl管理单一服务(service unit)使用案例服务启动/关闭/查看的练习关于systemctl命令启动/停止服务后面的后缀名是否加? 通过systemctl查看系统上所有的服务使用案例 通过systemctl管理不同的操作环境(target unit)使用案例…...
面经|小红书经营分析师
感觉面试官还挺严肃的,并且猎头说因为工作经验不够是外包岗位。 但是没想到最后败在了SQL上,很久没刷题了 平时工作中还是需要想下给公司整体带来的收益结果是什么,实际工作中不一定会用到,但是要有这个思路,面试的时候…...
abpvnext后台工作者使用quartz扩展的一些思路和使用细节记录--(未完待续)
需求背景描述: 我有一个温湿度数据采集的物联网系统,每个租户都需要定时执行若干种任务, 不同的租户, 他定时执行的间隔不一样 ,比如 A租户,数据保存间隔60秒,数据是否超限的轮询间隔是是600…...
提升应届生职场竞争力:有效策略和关键推动因素
应届生进入职场是一个关键的阶段,他们需要通过有效的方法和策略来提高自己的竞争力,以适应职场的挑战并取得成功。以下是一些可以帮助应届生提升竞争力的方法和策略,以及对其职场发展起到关键推动和支撑作用的方面。 学习和继续教育ÿ…...
PBDB Data Service:List of fossil collections(化石采集记录列表)
List of fossil collections(化石采集记录列表) 描述用法参数以下参数可用于按各种条件查询集合。以下参数可用于筛选所选内容以下参数还可用于根据分类筛选结果列表以下参数可用于生成数据存档您可以使用以下参数选择要检索的额外信息,以及要…...
centos安装SNB服务
Samba 是一种开源软件,它提供了一种让 Linux 和 Unix 系统与 Windows 操作系统相互通信的标准协议。Samba 允许 Linux 和 Unix 系统作为文件服务器和打印服务器,提供 Windows 客户端所需的服务。 具体来说,Samba 通过实现 SMB/CIFS 协议来实现…...
课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管理平台的添加员工档案信息的操作题)
文章目录 📋前言🎯第三题(40分)🎯报错以及解决方法📝最后 📋前言 这篇文章是大学课程《JavaWeb基础框架程序设计》考试题目的内容,包括了原题和答案。题目只包括了三道编程题&#…...
Linux-初学者系列——篇幅4_系统运行相关命令
系统运行相关命令-目录 一、关机重启注销命令1、重启或者关机命令-shutdown语法格式:常用参数:01 指定多久关闭/重启系统02 指定时间关闭/重启系统03 实现立即关闭/重启系统04 取消关闭/重启系统计划 2、重启或者关机命令-halt/poweroff/reboot/systemct…...
无缝集成:利用Requests库轻松实现数据抓取与处理
目录 引言安装基本用法发送HTTP请求处理HTTP响应高级功能总结 引言 Requests是Python中一个常用的第三方库,用于向Web服务器发起HTTP请求并获取响应。该库的使用简单,功能强大,被广泛应用于网络爬虫、API访问、Web应用开发等领域。 本文将介…...
几种内部排序算法的cpp代码实现与分析
零、测试函数 typedef void (*SortFunc) (int*&, int);inline void swap(int &a, int &b) {int tmp a;a b;b tmp; }inline void printArr(int* a, int n) {for (int k 0; k < n; k) {std::cout << a[k] << ;}std::cout << std::endl; }…...
第3天学习Docker-Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)
前提须知: (1)搜索镜像命令 格式:docker search 镜像名 (2)设置Docker镜像加速器 详见文章:Docker设置ustc的镜像源(镜像加速器) 1、部署MySQL 拉取镜像(这…...
给大家介绍四款最受欢迎的抓包神器
身为互联网人,无论在平时开发还是在测试过程中,我们都不可避免的会涉及到网络安全性,如何监测网络请求,从而最大程度的保证数据的安全,需要我们了解并掌握抓包的技巧。那么何谓抓包呢?抓包就是将网络传输发…...
解决Reids过期方案 游标遍历清除Redis过期的key
游标遍历清除Redis过期的key 为什么要清除Redis过期的Key Redis的过期清理是一种懒惰的清理方案,他不会过期后立刻清除,而是在Key被访问的时候进行删除,Redis这么做的目的就是为了提高性能降低资源开销。 具体来说,一个K…...
K8s基础10——数据卷、PV和PVC、StorageClass动态补给、StatefulSet控制器
文章目录 一、数据卷类型1.1 临时数据卷(节点挂载)1.2 节点数据卷(节点挂载)1.3 网络数据卷NFS1.3.1 效果测试 1.4 持久数据卷(PVC/PV)1.4.1 效果测试1.4.2 测试结论 二、PV、PVC生命周期2.1 各阶段工作原理…...
oracle系统查询~3
查看实例的基本信息 SQL> col host_name for a25 col instance_name for a15 col version for a15 col status for a10 set linesize 600 col host_name for a20 select instance_number,instance_name,host_name,version,startup_time,status,archiver f…...
Mybatis源码(九)— chche
Mybatis中共有三级缓存,其中一级缓存默认开启,作用范围是在sqlSession对象(同一个会话),二级缓存需要手动配置开启,作用范围是在sqlSessionFactory对象下的同一个namespace范围(所以二级缓存是可…...
回溯法--N皇后问题
N皇后问题 一、问题描述二、示例2.1 四皇后的2个可行解2.2 过程图示 三、问题分析3.1涉及到的概念递归回溯 3.2 分析 四、 代码实现4.1 实现思路宏观:微观: 4.2 递归函数NS图4.3 代码 一、问题描述 1、按照国际象棋的规则,皇后可以攻击与之处…...
ajax请求
ajax的优点 可以无需刷新页面而与服务器进行通信允许你根据用户事件来更新部分页面内容 ajax的缺点 没有浏览历史,不能回退存在跨域问题SEO不友好 get请求 <button>点击发送请求</button><div id"result"></div><script>…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
