实施经验-https证书理解

先从一个需求案例说起

给甲方的web服务需要使用https,是部署在内网的,连域名也没有用ip访问,大家又不想花钱,于是自己生成一个https证书,参考【HTTPS】自签CA证书 && nginx配置https服务
数字证书系列–将证书绑定到多个URL以及IP,过程如下:

1、创建自签CA证书(根证书)

openssl genrsa -out CA_Key.key  2048  # 创建CA证书的私钥,用rsa加密,2048bit
openssl req -new -x509 -key CA_Key.key  -out CA_Cert.crt  # 利用CA_Key.key 创建CA证书. 生成的证书为CA_Cert.crt

2、制作生成网站的证书并用CA签名认证

openssl genrsa -out server.key  2048  # 服务端 创建网站私钥
openssl req -new -key server.key -out server.csr   # 服务端 创建证书签名申请,是申请文件不是证书
openssl x509 -req -in server.csr -CA CA_Cert.crt -CAkey CA_Key.key -CAcreateserial  -out server.crt #CA机构 创建crt(服务端公钥+申请者与颁发者信息+(用颁发者私钥进行的)签名)

流程梳理

上述案例对应的操作步骤,梳理后的流程如下图中“图A”所示,
image

其中对server端的两步操作也可以合并为一个命令,如上图中的“图B”所示,命令如下:

openssl req -newkey rsa:2048 -new -nodes -keyout my.key -out my.csr

也可以对整个流程合并为一个命令,如上图中的“图C”所示,命令如下:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

在https协议中是如何使用证书的

https建立连接到会话交互的过程如下所示
image

浏览器验证证书有效性,使用到了浏览器内置的CA证书,跟浏览器开发商有关,如下图所示:

image

概念梳理

SSL协议类

  • SSL - Secure Sockets Layer(安全套接字层),现在应该叫"TLS(传输层安全协议 Transport Layer Security)",但由于习惯问题,我们还是叫"SSL"比较多.http协议默认情况下是不加密内容的,这样就很可能在内容传播的时候被别人监听到,对于安全性要求较高的场合,必须要加密,https就是带加密的http协议,而https的加密是基于SSL的,它执行的是一个比较下层的加密,也就是说,在加密前,你的服务器程序在干嘛,加密后也一样在干嘛,不用动,这个加密对用户和开发者来说都是透明的.More:[维基百科]

  • OpenSSL - 简单地说,OpenSSL是SSL的一个实现,SSL只是一种规范.理论上来说,SSL这种规范是安全的,目前的技术水平很难破解,但SSL的实现就可能有些漏洞,如著名的"心脏出血".OpenSSL还提供了一大堆强大的工具软件,强大到90%我们都用不到.

证书标准和格式

  • X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准.X.509证书,可能有不同的编码格式,有PEM和DER

    • PEM - Privacy Enhanced Mail,打开看文本格式,以"-----BEGIN…"开头, "-----END…"结尾,内容是BASE64编码.查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -noout
    • DER Distinguished Encoding Rules,打开看是二进制格式,不可读

相关的文件扩展名

这是比较误导人的地方,虽然我们已经知道有PEM和DER这两种编码格式,但文件扩展名并不一定就叫"PEM"或者"DER",常见的扩展名除了PEM和DER还有以下这些,它们除了编码格式可能不同之外,内容也有差别,但大多数都能相互转换编码格式.

  • CRT - CRT应该是certificate的三个字母,其实还是证书的意思,常见于*NIX系统
  • CER - 还是certificate,还是证书,常见于Windows系统
  • KEY - 通常用来存放一个公钥或者私钥,并非X.509证书,编码同样的,可能是PEM,也可能是DER.查看KEY的办法:openssl rsa -in mykey.key -text -noout
  • CSR - Certificate Signing Request,即证书签名请求,这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的信息),在生成这个申请的时候,同时也会生成一个私钥,私钥要自己保管好.查看的办法:openssl req -noout -text -in my.csr
  • PFX/P12 - predecessor of PKCS#12,对*nix服务器来说,一般CRT和KEY是分开存放在不同文件中的,但Windows的IIS则将它们存在一个PFX文件中
  • JKS - 即Java Key Storage,这是Java的专利,跟OpenSSL关系不大,利用Java的一个叫"keytool"的工具,可以将PFX转为JKS,当然了,keytool也能直接生成JKS,不过在此就不多表了.

其它常见名称

  • 证书也叫“digital certificate”或“public key certificate”,好比公章
  • CA是Certificate Authority的缩写,也叫“证书授权中心”,它是负责管理和签发证书的第三方机构,CA必须是所有行业和所有公众都信任的、认可的。
  • CA证书,顾名思义,就是CA颁发的证书,证书=公钥+申请者与颁发者信息+签名;
  • 浏览器中内置CA对应的证书称为根证书,颁发者和使用者相同,自己为自己签名,即自签名证书

openssl参数说明

openssl的参数有很多,我们只把用到的参数做下说明

  • req
    • newkey
    • new
    • nodes
    • keyout key的输出文件
    • out 输出文件
    • days 授权有效期

参考:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TOGAF(The Open Group Architecture Framework)是一个开放的企业架构框架,它提供了一种有效的方法来开发、管理和维护企业架构。TOGAF基础级证书是对TOGAF框架基础概念和原则的理解和应用能力进行评估的认证。 TOGAF基础级证书的获得对个人和组织都具有重要意义。对于个人而言,获得TOGAF基础级证书意味着具备了在企业架构领域工作所需的核心知识和技能。这不仅有助于提升个人的职业发展,还能使个人更加理解和应用企业架构的最佳实践,为组织的业务和技术目标提供更好的支持。 对于组织而言,拥有TOGAF基础级证书的员工可以帮助组织更好地实施有效的企业架构管理,从而提升组织的业务流程和技术基础。TOGAF框架提供了标准化的方法和工具,使组织能够更好地管理和优化其业务和技术资产,提高组织的灵活性和创新能力。同时,TOGAF基础级证书也有助于提高团队之间的沟通和合作,促进协同工作,提高整体效率和业务成果。 TOGAF基础级证书的考试内容主要包括TOGAF框架的基本概念、主要构成和使用方法。考试分为多个部分,覆盖了企业架构开发、管理和应用的核心要素。通过考试获得证书需要掌握TOGAF的基本原则、组织架构、术语和概念,并能够理解和解释TOGAF框架的不同阶段和迭代过程。 总的来说,TOGAF基础级证书是评估个人对TOGAF框架基本概念和运用能力的认证。获得该证书有助于提升个人的职业发展和专业能力,同时也能为组织带来更有效的企业架构管理和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值