证书各种相关概念-再次说明
CA
CA含义:
- 指证书颁发机构(Certificate Authority),也称为证书签发机构。它是一个可信任的实体,负责签发、管理和验证数字证书的机构。
如何设置自己的CA:
- 规划CA架构
- 构建基础设施
- 安全策略和流程
- 生成根证书(CA中才有的含义)
- 定期更新和审计
- 分发证书
- 保护私钥和密钥
数字证书
含义
- 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件=>戳+身份信息
- 数字证书是用于进行安全通信和身份验证的重要工具
- 最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名
- 其作用类似于司机的驾驶执照或日常生活中的身份证
如何制作
- 数据签名+证书原信息
理解:
- 要理解数字证书,同样只要搞懂两个问题即可
- 数字证书是什么东西?其实它就是一个
.crt
文件 - 数字证书是谁颁发的?由权威证书认证机构颁发,一般我们简称为 CA 机构
- 数字证书如何申请的?或者说如何颁发的?
- 数字证书是什么东西?其实它就是一个
- 生成过程
- 在自己的服务器上生成一对公钥和私钥。
- 然后将域名、申请者、公钥(注意不是私钥,私钥是无论如何也不能泄露的)等其他信息整合在一起,生成
.csr
文件。 - 将这个
.csr
文件发给 CA 机构 - CA 机构收到申请后,会通过各种手段验证申请者的组织信息和个人信息,如无异常(组织存在,企业合法,确实是域名的拥有者)
- CA 就会使用散列算法对
.csr
里的明文信息先做一个HASH - 得到一个信息摘要
- 再用 CA 自己的私钥对这个信息摘要进行加密,生成一串密文,密文即是所说的 签名。
- 签名 +
.csr
明文信息,即是 证书。CA 把这个证书返回给申请人。
数字签名
含义
-
摘要经过私钥的加密后,便有了一个新的名字 --
数字签名
-
签名
是在发送方,这是一个加密的过程。验签
是在接收方,这是一个解密的过程。
目的
- 防止数据篡改(hash一致性)
如何制作
- CA 拥有非对称加密的私钥和公钥。
- CA 对证书明文信息进行 hash。
- 对 hash 后的值用私钥加密,得到数字签名。
根证书-数字证书的起点
含义
- 根证书是CA体系的最高级别,是信任链的起点
- 根证书由CA自身创建并签署
- 您可以使用工具如OpenSSL来生成根证书
目的:
-
用于签发其他证书(CA使用根证书和根证书的私钥对证书签名请求进行签名,生成证书。签署该证书的操作即为颁发证书,并将其与根证书进行关联,建立信任链。一般不直接用根证书签发,而是用根证书签发的中间证书签发=>具体操作:https://www.jianshu.com/p/2676cdc688f9)
openssl x509 -req -in server-req.csr -out server-cert.cer -CA F:\CERT\mycert\ test\openssl\win\root\root-cert.cer -CAkey F:\CERT\mycert\test\openssl\win\root\root.key -CAcreateserial -days 360
-
用于验证由该CA签发的其他证书的有效性
-
根证书通常被内置在操作系统、浏览器或其他应用程序中,作为受信任的根证书机构,当任何由该CA签发的证书出现时,可以通过验证其签名链与已知的根证书进行比对,从而建立信任
与数字证书关系
- 当一个实体(如网站)被颁发一个数字证书时,该证书将包含一个或多个签名链,这些签名链追溯到一个受信任的根证书。
- 验证数字证书的有效性时,使用受信任的根证书的公钥对证书进行验证。
- 如果链中的每个证书都通过了验证,并且最终可以追溯到受信任的根证书,那么该数字证书将被视为有效和可信任的。
如何制作
-
生成私钥:首先,您需要生成用于根证书的私钥。可以使用工具如OpenSSL来生成私钥。在命令行中输入以下命令:
openssl genpkey -algorithm RSA -out root.key
这将生成一个RSA私钥文件 “root.key”。
-
创建根证书签名请求(CSR):使用私钥生成根证书签名请求。CSR包含了您的CA的详细信息和公钥。在命令行中输入以下命令:
openssl req -new -key root.key -out root.csr
这将生成一个CSR文件 “root.csr”。
-
自签名根证书:使用私钥和CSR自签名生成根证书。在命令行中输入以下命令:
openssl x509 -req -in root.csr -signkey root.key -out root.crt
这将使用您之前生成的私钥和CSR生成一个自签名的根证书文件 “root.crt”。
-
设置证书相关信息:在生成根证书时,您需要填写一些关键的信息,包括组织名称、通用名称(通常是您的CA名称)、有效期限等。确保提供准确的信息,并注意设置一个适当的证书有效期限。
-
在上述步骤完成后,您将获得一个包含私钥和自签名根证书的文件。根证书是您CA体系的最高级别,用于签署其他证书。请确保妥善保管私钥并限制其访问权限,以确保根证书的安全性
-
自签名根证书在您的环境中被认为是不受信任的证书。如果您希望根证书被广泛信任,您可以考虑将其根证书部署到受信任的证书存储库中,并确保其受到受信任的根证书机构的支持。
CSR
含义
- CSR是Certificate Signing Request的英文缩写,即证书签名请求文件
用法
- 当申请者申请数字证书时,CSP(加密服务提供者)生成私钥,同时也生成了CSR文件
- 申请者将CSR文件提交至Certificate Authority (CA)机构后,CA机构使用其根证书私钥签名,从而就生成了数字证书
生成方法
- 推荐你使用 CSR在线生成工具(https://myssl.com/csr_create.html)
证书链
含义
- 您的浏览器如何知道是否应该信任网站的SSL证书? 受信任的根的任何下级证书都是受信任的。这在技术层面上是如何工作的呢?
- 浏览器循着证书链对证书进行身份验证的操作
- 当浏览器看到SSL证书时,它会看到证书是由其根存储中的一个受信任根颁发的(或者更准确地说,使用根的私钥签名)。因为它信任根,所以它信任根签名的任何证书
中间证书
含义
- 证书颁发机构不会直接从它们的根证书颁发服务器/叶子证书(最终用户SSL证书)。这些根证书太宝贵了,直接颁发风险太大了
- 为了保护根证书,CAs通常会颁发所谓的中间根
- CA使用它的私钥对中间根签名,使它受到信任
- CA使用中间证书的私钥签署和颁发终端用户SSL证书
- 这个过程可以执行多次,其中一个中间根对另一个中间根进行签名,然后CA使用该根对证书进行签名
- 这些链接,从根到中间到叶子,都是证书链
根CA
含义
- 拥有一个或多个可信根的证书颁发机构。这意味着它们根植于主流浏览器的信任存储中
中间CA
含义
- 中间CAs或子CAs是由中间根发出的证书颁发机构。
- 它们在浏览器的信任存储中没有根,它们的中间根会链回到一个受信任的第三方根。这有时称为交叉签名。
- 当安全事件发生时,不需要撤销根证书,只需撤销中间证书,使从该中间证书发出的证书组不受信任
本文来自博客园,作者:易先讯,转载请注明原文链接:https://www.cnblogs.com/gongxianjin/p/17566426.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2022-07-19 可信认证之九阴真经二
2022-07-19 可信认证之九阴真经一
2022-07-19 单调栈的介绍以及一些基本性质
2020-07-19 力量器械改造方案~
2020-07-19 Vue+Go前端后端一体化 企业级微服务网关项目