网页布局照着别的网站做会侵权吗,合肥建设学校网站,网站 如何 备案,软文有哪些推广渠道互联网是虚拟的#xff0c;通过互联网我们无法正确获取对方真实身份。数字证书是网络世界中的身份证#xff0c;数字证书为实现双方安全通信提供了电子认证。数字证书中含有密钥对所有者的识别信息#xff0c;通过验证识别信息的真伪实现对证书持有者身份的认证。数字证书可…互联网是虚拟的通过互联网我们无法正确获取对方真实身份。数字证书是网络世界中的身份证数字证书为实现双方安全通信提供了电子认证。数字证书中含有密钥对所有者的识别信息通过验证识别信息的真伪实现对证书持有者身份的认证。数字证书可以在网络世界中为互不见面的用户建立安全可靠的信任关系这种信任关系的建立则源于 PKI/CA 认证中心因此构建安全的 PKI/CA 认证中心是至关重要的。 所有与数字证书相关的各种概念和技术统称为 PKI Public Key Infrastructure 公钥基础设施。PKI 通过引入 CA数字证书LDAPCRLOCSP 等技术并制定相应标准有效地解决了公钥与用户映射关系集中服务性能瓶颈脱机状态查询等问题。同时为促进并提高证书应用的规范性还制定了很多与证书应用相关的各种标准。
PKI 的核心是在客户端、服务器和证书颁发机构 (CA) 之间建立的信任。这种信任是通过证书的生成、交换和验证来建立和传播的。
下图例举出了 Authentication 和 Certification 的差别双方和三方的区别。 概述
SSL 证书是数字证书的一种类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上也称为服务器证书。
SSL 证书只有正确安装到 Web 服务器才能实现客户端与服务器间的 https 通信。由于涉及到不同类型 Web 服务器的配置需要在证书签发后根据实际服务器环境来安装证书。
CA 是一种电子商务认证授权机构也称为电子商务认证中心是负责发放和管理数字证书的权威机构并作为电子商务交易中受信任的第三方承担公钥体系中公钥的合法性检验的责任。其发布的证书就是 CA 证书。
对于 SSL 证书和 CA 证书的关系可以从下面两个角度来考量。
CA 证书包含 SSL 证书
CA 机构除了可以颁发 SSL 证书之外还可以颁发其他数字证书比如代码签名证书和电子邮件证书等等。从这个角度来说SSL 证书是一种 CA 证书。
CA 证书等于 SSL 证书
证书颁发机构英文简称为 CA负责签发、作废和保存证书CA 签发的证书称为 CA 证书CA 证书的本质是利用 SSL/TLS 协议保护传输数据的安全因此又称为 SSL 证书。
什么是 SSL/TSL
SSLSecure Socket Layer安全套接字层
位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL 通过互相认证、使用数字签名确保完整性、使用加密确保私密性以实现客户端和服务器之间的安全通讯。该协议由两层组成SSL 记录协议和 SSL 握手协议。
TLSTransport Layer Security传输层安全协议
用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成TLS 记录协议和 TLS 握手协议。
两者的关系
TLS 与 SSL 连接过程无任何差异可以理解为 SSL 是 TLS 的前世TLS 是 SSL 的今生。并且 TLS 与 SSL 的两个协议记录协议和握手协议协作工作方式是一样的。
但是SSL 与 TLS 两者所使用的算法是不同的同时 TLS 增加了许多新的报警代码。由于这些区别的存在我们可认为 TLS 是 SSL 的不兼容增强版。在认证证书时 TLS 必须与 TLS 之间交换证书 SSL 必须与 SSL 之间交换证书。
证书的签发
证书格式
从分类标准上分SSL 证书格式主要有
公钥证书格式标准 X.509 中定义的 PEM 和 DER公钥加密标准 PKCS 中定义的 PKCS#7 和 PKCS#12Java环境专用的 JKS
从文件格式上分SSL 证书格式主要有 一种是 Base64 (ASCII) 编码的文本格式。这种证书文件是可以通过文本编辑器打开甚至进行编辑常见有 PEM 证书格式扩展名包括 PEM、CRT 和 KEY。 另外一种是 Binary 二进制文件。常见有 DER 证书格式扩展名包括 DER 和 CER。
Linux 系统使用 CRTWindows 系统使用 CER。
名词含义X.509一种通用的证书格式包含证书持有人的公钥加加密算法等信息pkcs1 ~pkcs12公钥加密非对称加密的一种标准(Public Key Cryptography Standards)一般存储为 .pN,.p12 是包含证书和密的封装格式*.der证书的二进制存储格式不常用*.pem证书或密钥的 Base64 文本存储格式可以单独存放证书或密钥也可以同时存放证书或密钥*.key单独存放的 pem 格式的密钥一般保存为 *.key*.cer *.crt两个指的都是证书Linux 下叫 crtWindows 下叫 cer存储格式可以是 pem也可以是 der*.csr证书签名请求Certificate signing request包含证书持有人的信息如国家邮件域名等信息*.pfx微软 IIS 的实现*.jksJava 的 keytool 实现的证书格式
签发过程 生成 CA 的私钥后缀名可以用 .pem 也可以用 .key
openssl genrsa -out ca.key 2048生成 CA 证书请求文件会车后会询问一系列基本信息
openssl req -new -key ca.key -out ca.csr生成证书公钥包含在证书中正常情况下要拿私钥和请求文件去被认可的 CA 机构进行证书申请和签发。这里选择使用 openssl 模拟 CA 机构来签发一个证书。
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt上面三步完成后在文件夹下会得到三个文件
ca.key
ca.csr
ca.crt可以将生成的证书文件当作 root 证书以辅助后续的证书信任链的讨论。
生成的证书格式一般是通用的 X509 格式的其包含证书持有人的公钥加加密算法等信息。
X.509 证书
基于 X.509 V3 标准的证书通过将身份与一对可用于对数字信息进行加密、签名和解密的电子密钥绑定以实现认证和数据安全一致性、保密性的保障。
每一个 X.509 证书都是根据公钥和私钥组成的密钥对来构建的它们能够用于加解密、身份验证、信息安全性确认。证书的格式和验证方法普遍遵循 X.509 国际标准。
X.509 标准使用了一种抽象语法表示法 One (ASN.1)的接口描述语言来定义、和编解码客户端与证书颁发机构之间传输的证书请求和证书。
以下便是使用 ASN.1 的证书表示语法。
SignedContent :: SEQUENCE
{certificate CertificateToBeSigned,algorithm Object Identifier,signature BITSTRING
}CertificateToBeSigned :: SEQUENCE
{version [0] CertificateVersion DEFAULT v1,serialNumber CertificateSerialNumber,signature AlgorithmIdentifier,issuer Namevalidity Validity,subject NamesubjectPublicKeyInfo SubjectPublicKeyInfo,issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,extensions [3] Extensions OPTIONAL
}公钥和私钥都是由一长串随机数组成的。公钥是公开的由长度来决定保护强度但是信息会通过公钥来加密。私钥只在接受者处秘密存储接受者通过使用公钥关联的私钥才能解密读取信息。
使用 openssl 以文本模式查看公钥证书openssl x509 -in ca.crt -noout -text 下图是其主要内容的组成。 证书包含以下信息申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文同时包含一个签名
下面是证书操作的常见操作
# 查看证书序列号
openssl x509 -in ca.crt -noout -serial
# 打印证书名称以 RFC2253 规定的格式打印出证书的拥有者名字
openssl x509 -in ca.crt -noout -subject
# 打印出证书的 MD5 特征参数
openssl x509 -in ca.crt -noout -fingerprint
# 打印出证书的 SHA 特征参数
openssl x509 -sha1 -in ca.crt -noout -fingerprint格式转换
证书格式的转换其实本质上是编码格式的转换比如 der 和 pem 的转换。
PEM 转 DER 格式
openssl x509 -inform pem -in certificate.pem -outform der -out certificate.derDER 转 PEM 格式
openssl x509 -inform der -in certificate.der -outform pem -out certificate.pem重要说明
说明一证书 公钥 申请者与颁发者信息 签名。
说明二证书文件的后缀并不能作为证书是哪一种编码的判断依据。对于私钥/公钥的文件后缀有时候用 key/crt有时候用 pem其实这不重要重要的是文件中的内容格式。
颁发及信任链
信任链Trust Chain
CA 体系是一个树形结构每一个 CA 可以有一到多个子 CA 顶层 CA 被称为根 CA 。除了根 CA 以外其他的 CA 证书的颁发者是它的上一级 CA 。这种层级关系组成了信任链Trust Chain。 以一个实际的例子来看比如 baidu在查看证书的时候就可以看到它的根是 GlobalSign中间证书是 Validation CA - SHA256 -G2最后则是 baidu.com。 证书分为两种类型没有本质区别 CA证书CA Certificate 终端实体证书End Entity Certificate 接受CA证书的最终实体。
认证实例
把在上面已经生成 ca.crt 作为根证书来签发一个新的证书。
生成一个证书的私钥
openssl genrsa -out server.key 1024生成证书的请求文件
openssl req -new -key server.key -out server.csr还是将 openssl 模拟为 CA 机构用上述生成的 ca.crt 根证书来签发新的证书。
openssl x509 -req -days 3000 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.crt-CA指定CA证书的路径 -CAkey指定 CA 证书的私钥路径 -CAserial指定证书序列号文件的路径 -CAcreateserial表示创建证书序列号文件即上方提到的 serial 文件创建的序列号文件默认名称为 -CA指定的证书名称后加上 .srl 后缀
证书校验用下面命令来校验是否签发成功
openssl verify -CAfile ca.crt server.crt
# server.crt: OK参考文档
[1] SSL证书与CA证书的区别 https://baijiahao.baidu.com/s?id1653402538679672349wfrspiderforpc [2] SSL和TSL的区别和联系以及HTTPS是如何加密解密的 https://www.cnblogs.com/hanzhengjie/p/13920581.html [3] ssl和tsl区别 https://blog.csdn.net/M_0307/article/details/73543591 [4] CA证书扫盲https讲解 https://www.cnblogs.com/handsomeBoys/p/6556336.html [5] PKI/CA与数字证书 https://blog.csdn.net/u013066292/article/details/79538069 [6] SSL证书格式有什么区别 https://www.gworg.com/problems/1194.html [7] 如何将.pem转换为.crt和.key https://vimsky.com/article/3608.html [8] 工具openssl查看pem格式证书细节 https://blog.csdn.net/du_lijun/article/details/115367633 [9] http系列—OpenSSL生成根证书CA及签发子证书 https://blog.csdn.net/lipviolet/article/details/109456104 [10] CA证书详解 https://zhuanlan.zhihu.com/p/267047441 [11] Let’s Encrypt介绍 https://www.jianshu.com/p/449047437697 [12] Kubernetes 证书管理系列一https://mp.weixin.qq.com/s?__bizMzI2ODAwMzUwNAmid2649298078idx1sn24d17a25ccf1c97337e0ed7bc951a8a2chksmf2eb8541c59c0c576b3dbbc0fc32bbb0874955a6a83d852b8aa6f35685220d1eb8a135253b47token972017317langzh_CNscene21#wechat_redirect [13] CA数字证书简介 https://zhuanlan.zhihu.com/p/413401722 [14] SSL中公钥、私钥、证书(pem、crt、cer、key、csr)的后缀名都是些啥 https://blog.csdn.net/HD243608836/article/details/127441701