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

使用OpenSSL生成根证书并自签署证书

生成根CA的私钥和证书

# 生成根 CA 的私钥
[root@developer ssl]# openssl genrsa -out rootCA.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
...+++++
............................................................+++++
e is 65537 (0x010001)# 使用私钥生成根 CA 的证书
[root@developer ssl]# openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt
Country Name (2 letter code) [XX]:CN  # 国家名称(2个字母代码)
State or Province Name (full name) []:JS  # 州或省名
Locality Name (eg, city) [Default City]:KS  # 地点名称
Organization Name (eg, company) [Default Company Ltd]:local  # 组织名称
Organizational Unit Name (eg, section) []:developer  # 组织单位名称
Common Name (eg, your name or your server's hostname) []:Local Developer CA  # 通用名称
Email Address []:

为hello-world.test生成私钥和证书请求文件(CSR)

# 生成 hello-world.test 的私钥
[root@developer ssl]# openssl genrsa -out hello-world.test.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
..........................................................................+++++
.....+++++
e is 65537 (0x010001)# 使用私钥生成证书请求文件
[root@developer ssl]# openssl req -new -key hello-world.test.key -out hello-world.test.csr
Country Name (2 letter code) [XX]:CN  # 国家名称(2个字母代码)
State or Province Name (full name) []:JS  # 州或省名
Locality Name (eg, city) [Default City]:KS  # 地点名称
Organization Name (eg, company) [Default Company Ltd]:local  # 组织名称
Organizational Unit Name (eg, section) []:developer  # 组织单位名称
Common Name (eg, your name or your server’s hostname) []:*.hello-world.test  # 域名
Email Address []:Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

创建证书扩展文件

为了确保为 hello-world.test 签名的证书能够用作服务器身份验证,需要为它创建一个扩展文件。创建一个名为 v3.ext 的文件,并添加以下内容:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names[alt_names]
DNS.1 = *.hello-world.test
# 如果是IP就使用 IP.1 = 你的IP地址

使用根 CA 的证书为 hello-world.test 签名证书

[root@developer ssl]# openssl x509 -req -in hello-world.test.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out hello-world.test.crt -days 500 -sha256  -extfile v3.ext
Signature ok
subject=C = CN, ST = JS, L = KS, O = local, OU = developer, CN = *.hello-world.test
Getting CA Private Key

此时文件夹内应该有以下文件:

[root@developer ssl]# ll
-rw-r--r--. 1 root root 1318 523 09:59 rootCA.crt
-rw-------. 1 root root 1675 523 09:59 rootCA.key
-rw-r--r--. 1 root root   41 523 10:14 rootCA.srl
-rw-r--r--. 1 root root  253 523 10:13 v3.ext
-rw-r--r--. 1 root root 1322 523 10:14 hello-world.crt
-rw-r--r--. 1 root root  997 523 10:02 hello-world.csr
-rw-------. 1 root root 1679 523 10:00 hello-world.key

宝塔部署

宝塔网站设置中SSL选项选择当前证书,密钥(KEY)中填入hello-world.key的内容,证书(PEM格式)中填入hello-world.crt的内容,最后将rootCA.crt安装到电脑的本地受信任的根证书颁发机构中。

http://www.xdnf.cn/news/8305.html

相关文章:

  • OpenCV入门
  • React组件(二):常见属性和函数
  • React从基础入门到高级实战:React 基础入门 - 简介与开发环境搭建
  • React从基础入门到高级实战:React 基础入门 - 列表渲染与条件渲染
  • 初始Flask框架
  • C++之STL--string
  • 移远三款主流5G模块RM500U,RM520N,RG200U比较
  • 电脑风扇转速不正常的原因
  • Flask框架
  • DeepSeek 赋能智能电网:从技术革新到全场景应用实践
  • Android 直接通过 app_process 启动的应用如何使用 Context
  • 3362. 零数组变换 III
  • PPP 拨号失败:ATD*99***1# ... failed
  • 610Hz!无惧环境光新薄膜!ROG全新电竞显示器亮相2025台北电脑展
  • 第七部分:第二节 - 在 Node.js 中连接和操作 MySQL:厨房与仓库的沟通渠道
  • STM32:深度解析RS-485总线与SP3485芯片
  • QT聊天项目DAY12
  • 科技成果鉴定测试怎么进行?进行鉴定测试有什么好处
  • 精准核验,实时响应-身份证实名认证接口-身份证二要素核验
  • 基于 SpringBoot + Vue 的海滨体育馆管理系统设计与实现
  • Golang基于 Swagger + JWT + RBAC 的认证授权中间件设计
  • VSCode+EIDE通过KeilC51编译,使VSCode+EIDE“支持”C和ASM混编
  • 可视化图解算法44:旋转数组的最小数字
  • Vue 3 实现 Excel 表格解析的完整指南
  • QGIS如何打开 ARCGIS的mxd工程文件
  • 【八股战神篇】RabbitMQ高频面试题
  • 架空线路监控系统是针对高压架空输电线路设计的一种安全监测解决方案
  • 1536. 【中山市第十一届信息学邀请赛决赛】同质(same)
  • Python邮件处理:POP与SMTP
  • Flask-SQLAlchemy数据库查询:query