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

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 ,期待你的关注~💪💪💪

http://www.lryc.cn/news/67768.html

相关文章:

  • 如何在C#中创建和使用自定义异常
  • 通过systemctl管理服务
  • 面经|小红书经营分析师
  • abpvnext后台工作者使用quartz扩展的一些思路和使用细节记录--(未完待续)
  • 提升应届生职场竞争力:有效策略和关键推动因素
  • PBDB Data Service:List of fossil collections(化石采集记录列表)
  • centos安装SNB服务
  • 课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管理平台的添加员工档案信息的操作题)
  • Linux-初学者系列——篇幅4_系统运行相关命令
  • 无缝集成:利用Requests库轻松实现数据抓取与处理
  • 几种内部排序算法的cpp代码实现与分析
  • 第3天学习Docker-Docker部署常见应用(MySQL、Tomcat、Nginx、Redis、Centos)
  • 给大家介绍四款最受欢迎的抓包神器
  • 解决Reids过期方案 游标遍历清除Redis过期的key
  • K8s基础10——数据卷、PV和PVC、StorageClass动态补给、StatefulSet控制器
  • oracle系统查询~3
  • Mybatis源码(九)— chche
  • 回溯法--N皇后问题
  • ajax请求
  • K8S系列之污点和容忍度详细分析
  • 【算法】Minimum Moves to Move a Box to Their Target Location 推箱子
  • 决策引擎平台建设方案
  • SpringBoot Starter 作用及原理
  • 【rust】| 05——语法基础 | 流程控制
  • 解决Makefile: recipe for target ‘xxx‘ failed
  • 小黑子—多媒体技术与运用基础知识三:数字图形图像处理技术
  • Nginx实现ChatGPT API代理
  • FileNotFoundError: [Errno 2] No such file or directory: ‘dot‘
  • 【分布族谱】正态分布和二项分布的关系
  • 7.设计模式之责任链模式