首页 > 其他分享 >随笔-开发-制作自签证书

随笔-开发-制作自签证书

时间:2024-04-13 11:56:32浏览次数:28  
标签:rootCA 证书 CA server key 服务器 签证 随笔 制作

目录

一、基本理论

参考:理解HTTPS协议的交互过程-CSDN博客

前置条件:

服务器向正规CA机构 将自己的公钥 进行数字签名,制作出数字证书

交互流程:

主要流程1:服务端发送数字证书给客户端,证书内容包含服务器的公钥

主要流程2:客户端校验证书合法性,取得服务器公钥,以继续后面的流程

后续流程:图中描述已经很具体,见图中文字描述

要点:客户端校验证书合法性(即如何知道不是一个第三方攻击者提供的证书)?

参考:浏览器如何验证HTTPS证书的合法性? - 知乎

大致意思:

1、 浏览器或者操作系统会自带或者手动安装CA机构的公钥,收到服务器的用CA机构数字签名后的数字证书后,解析出CA机构,并找到本地对应CA机构的公钥,用找到的对应CA机构的公钥计算出Hash Value H2

2、如果是攻击者在数字签名证书将CA机构信息改成一个正规的CA机构名称,浏览器也就能解析出正规的CA机构,这样不是也能计算出正确的Hash Value H2吗

答:因为Certificate Signature是正规CA机构的私钥加密,这个私钥攻击者是没有,所以计算不出来正确的Hash Value H2

二、制作自签证书

根据上面的流程和理论,制作自签证书的步骤如下:

大致流程:

1、先创建一个私有CA机构;2、然后用私有CA机构对服务器的公钥进行数字签名生成数字证书

详细流程:

1、创建一个私有CA(包含了CA私钥和CA公钥),并安装到客户端的浏览器或者操作系统上,以能够找到CA公钥用于计算CA私钥加密后的服务器数字证书,然后能通过证书校验、

2、创建服务器的私钥和CSR(证书签名请求),然后使用步骤1的私有CA机构为服务器的CSR发布证书

3、将步骤2生成的证书放到服务器上(比如9000 lighthttpd的证书路径配置:/svc9000/etc/lighttpd/server.pem)

详细步骤:

第一种

参考: 安全网络 Red Hat Enterprise Linux 9 | Red Hat Customer Portal

1、创建一个私有CA

为私有CA 生成私钥

openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out rootCA.key

使用上一个命令生成的私钥创建证书

openssl req -key rootCA.key -new -x509 -days 3650 -addext keyUsage=critical,keyCertSign,cRLSign -subj "/C=CN/ST=省/L=市/O=公司/OU=公司/CN=192.168.99.124" -out rootCA.crt

生成的 rootCA.crt 文件是一个自签名 CA 证书,可用于为其他证书签名 10 年

2、创建服务器的私钥和CSR(证书签名请求) 在服务器上执行

使用 OpenSSL 为 TLS 服务器证书创建私钥

openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out server.key

使用之前创建的私钥创建 CSR

openssl req -key server.key -new -out server-cert.csr -subj "/C=CN/ST=省/L=市/O=公司/OU=公司/CN=192.168.99.124"

3、然后使用步骤1的私有CA机构为步骤2的服务器的CSR发布证书

openssl x509 -req -in server-cert.csr -CA rootCA.crt -CAkey rootCA.key -days 3650 -extfile openssl.cnf -extensions server-cert -out server-cert.crt

4、(可选)制作server.pem

cp -a server.key server.pem; cat server-cert.crt >> server.pem

5、将server.key server.crt放到服务器上的指定路径

6、测试结果:microhttpd https 服务器启动失败

好像是 Key and private certificate don't match 没继续排查,使用第二种方式成功了

第二种(使用不同参数)

参考:wiki SSL证书签名及使用

1、本地PC:创建一个私有CA

openssl genrsa -out rootCA.key 1024 (去掉了-aes256)

openssl req -new -key rootCA.key -out rootCA.csr -subj "/C=CN/ST=省/L=市/O=公司/OU=公司/CN=192.168.99.124"

openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey rootCA.key -in rootCA.csr -out rootCA.crt

2、创建服务器的私钥和CSR(证书签名请求) 在服务器上执行

openssl genrsa -out server.key 1024  (去掉了-aes256)

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=省/L=市/O=公司/OU=公司/CN=192.168.99.124"

3、然后使用步骤1的私有CA机构为步骤2的服务器的CSR发布证书

将步骤2的文件下载到本地

openssl x509 -req -days 3650 -sha1 -extensions  v3_req -CA rootCA.crt -CAkey rootCA.key   -CAcreateserial -in server.csr -out server.crt

4、(可选)制作server.pem

cp -a server.key server.pem; cat server.crt >> server.pem

5、将server.key server.crt放到服务器上的指定路径

6、microhttpd https 服务器启动成功

标签:rootCA,证书,CA,server,key,服务器,签证,随笔,制作
From: https://www.cnblogs.com/stellar-liyanbin/p/18132584

相关文章

  • SeleniumBase 制作WEB用户使用导览,并导出 JS-使用笔记(三)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(三)SeleniumBase制作WEB用户使用导览,并导出JSSeleniumBase包含强大的JS代码生成器,用于将Python转换为JavaScript,而制作用户导览,就是其中的应用之一,用户导览能将SaaS产品采用率提高10倍或更多目录创建导览......
  • 2-73. NPC 的 Schedule 数据制作和路径生成
    修改NPCMovement修改Settings修改NPCMovement创建文件夹在NPC目录下创建Data和Logic两个文件夹,然后将NPCManager和NPCMovement挪动到Logic文件夹中然后在Data目录下创建ScheduleDetails创建ScheduleDataList_SO创建Schedule修改NPCMove......
  • 2-66. 制作石头和稻草的粒子特效
    上节课场景的布置石头的碰撞范围需要改成PolygonCollider2D给石头添加粒子特效添加ParticleSystemRendererTextureSheetAnimationNormalEmissionShapeVelocityoverLifetimeColoroverLifetimeRotationoverLifetime石头粒子效果做成预制体......
  • 【论文随笔】会话推荐系统综述(A Survey on Conversational Recommender Systems)
    前言今天读的论文为一篇于2021年5月发表在《ACM计算机调查》(ACMComputingSurveys)的论文,文章提供了对话式推荐系统(CRS)的全面综述,探讨了CRS的定义、概念架构、交互方式、知识元素、计算任务以及评估方法。文章还讨论了CRS在不同应用环境中的实现,如智能家居助手和聊天机器人,并指......
  • 【论文随笔】多行为序列Transformer推荐(Multi-Behavior Sequential Transformer Reco
    前言今天读的论文为一篇于2022年7月发表在第45届国际计算机学会信息检索会议(SIGIR'22)的论文,文章主要为推荐系统领域提供了一个新的视角,特别是在处理用户多行为序列数据方面,提出了一种有效的Transformer模型框架。要引用这篇论文,请使用以下格式:[1]Yuan,Enming,etal."Multi......
  • 【论文随笔】基于会话的推荐系统构建方法调查(Survey On Methods For Building Sessio
    前言今天读的论文为一篇于2023年发表在国际开放信息技术杂志(InternationalJournalofOpenInformationTechnologies)的论文,文章是关于构建基于会话的推荐系统(Session-basedRecommenderSystems,SBRS)的方法的综述。文章首先介绍了推荐系统在处理大量信息领域(如在线商店、电......
  • 【论文随笔】深度推荐系统的自动化_一项调查(Automl for deep recommender systems_ A
    前言今天读的论文为一篇于2021年1月发表在ACMTransactionsonInformationSystems的论文,本文是一篇关于深度推荐系统自动化机器学习(AutoML)的综述,由RuiqiZheng、LiangQu、BinCui、YuhuiShi和HongzhiYin共同撰写。文章首先提出了一个抽象概念——AutoMLforDeepRecommende......
  • 【论文随笔】推荐系统综述_推荐模型、推荐技术与应用领域(A Survey of Recommendation
    前言今天读的论文为一篇于2022年1月3日发表的论文,这篇文章是关于推荐系统的综述,主要研究了推荐系统在不同服务领域的应用趋势,包括推荐模型、技术和应用领域。通过分析2010年至2021年间发表的顶级文章和顶级会议论文,系统化了推荐系统模型和技术的研究,并分析了按年份的研究趋势。文......
  • 【Azure Power BI】在Power BI中获取十进制随机数后,转换十六进制作为颜色值示例
    问题描述在使用PowerBIDesktop做报表,用到了其中一个图标组件(CardBrowser),可以做出比较漂亮的图片和带颜色的卡片效果:但是,在自己的数据源中,并没有颜色值。所以颜色值为0-255的十进制转换为00-FF的十六进制数据,想到了生成随机数,然后转换为颜色值。数据源格式示例:Title Coun......
  • 2-64. 使用 Unity 最新 ObjectPool API 制作对象池
    创建PoolManager修改EventHandler修改CropDetails修改Crop修改PoolManager修改CropDataList_SO修改PoolManager作业做好Tree02项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240411_1542......