苹果签名

iphoneqm
首页 > 苹果签名 > 正文内容

一文了解数字签名、数字证书、自签证书

admin4个月前 (12-10)苹果签名86

  关于自签SSL证书的一些小知识汇总

一文了解数字签名、数字证书、自签证书

  对于ssl中的pem文件和key 文件的理解

  openssl 生成证书 ca.pem client.pem server.pem

  SSL:证书文件

  数字证书原理

  数字签名是什么?

  数字签名和数字证书的原理解读(图文)

  数字签名和数字证书有哪些区别与联系?

  HTTPS 详解一:附带最精美详尽的 HTTPS 原理图

  HTTPS详解二:SSL / TLS 工作原理和详细握手过程

  密码学专题 序列号文件

  通俗理解:

  数字证书相当于【身份证】 —— 确认你是谁

  依照《电子签名法》的规定,从事电子认证业务需要行政许可,经许可的第三方认证机构即为通常所称的CA机构,而经CA机构认证并与当事人主体相关联的字符串,就是“数字证书”,电子认证的过程也就是数字证书的申请与颁发过程。用于确认身份 数字签名相当于【持身份证进行签名】—— 作用对消息内容进行确认,确认的确是某人自愿签名,或是确实是某人发的消息

  使用数字证书的签名也就是数字签名,根据全国人大《电子签名法释义》第十六条的解释,数字签名是指通过使用非对称密码加密系统对电子记录进行加密、解密变换来实现的一种电子签名。可用于确认内容的可靠性,或用于确认签名的自愿性

  1. 数字证书

  数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。简单地说,数字证书是一段包含用户身份信息、用户公钥信息以及份验证机构数字签名的数据。

  它主要包含:

  证书的版本信息;

  证书的序列号,每个证书都有一个唯一的证书序列号;

  证书所使用的签名算法;

  证书的发行机构名称;

  证书的有效期;

  证书所有人的名称;

  证书所有人的密钥对;

  证书发行者对证书的签名。

  2. 数字签名的原理

  数字签名是基于非对称密钥加密技术与数字摘要技术的应用,是一个包含电子文件信息以及发送者身份,并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。一段数字签名数字串,包含了电子文件经过Hash编码后产生的数字摘要,即一个Hash函数值以及发送者的公钥和私钥三部分内容。发送方通过私钥加密后发送给接收方,接收方使用公钥解密,通过对比解密后的Hash函数值确定数据电文是否被篡改。

  3. 数字签名和数字证书的关系

  数字签名和数字证书的目的:

  数字签名保证内容是真实的,没有被篡改数字证书验证【内容的签署者】是否是【证书的登记者】

  以场景为例:用户A向用户B发送一段内容,但不想被窃取或篡改

  首先用户A对此内容进行 hash 运算【提取出摘要(hash值,就是一字符串)】,之后对此 hash 值用【自己的私钥】进行加密 —— 形成了数字签名之后用户A 将【数字签名(加密的内容hash值)】和【内容原文】一起发送给用户 B用户B通过之前用户A发送过来的证书 —— 获取【用户A的公钥】

  此处证书的真伪,通过【公证机构CA】来辨别,每台机器上会【内置CA机构的证书,用来验证用户传来的证书】此处证书确保了【用户A的公钥正确性,也就是用户A的身份真实性】 用户B通过【证书中的公钥】,解开【数字签名(加密的内容hash值)】,获得【未加密的内容hash值】用户B通过与用户A相同的 hash 函数对【内容原文】进行hash运算,得到【摘要(hash值,就是一字符串)】,与步骤4中获取的【未加密的内容hash值】进行比较,从而判别内容是否被篡改

  其中涉及的 hash 函数、证书等,都是通过 s TLS协商阶段传递的

  TLS 握手详细过程

  下面来看 TLS 握手的详细过程 (注:此图与HTTPS详解一中的 HTTPS 原理图的流程大致相同,不同的是此图把重点放在了TLS握手的相关概念上):

  SSL / TLS 握手详细过程

  **"client hello"消息:**客户端通过发送"client hello"消息向服务器发起握手请求,该消息包含了客户端所支持的 TLS 版本和密码组合以供服务器进行选择,还有一个"client random"随机字符串。**"server hello"消息:**服务器发送"server hello"消息对客户端进行回应,该消息包含了数字证书,服务器选择的密码组合和"server random"随机字符串。**验证:**客户端对服务器发来的证书进行验证,确保对方的合法身份,验证过程可以细化为以下几个步骤:

  检查数字签名验证证书链 (这个概念下面会进行说明)检查证书的有效期检查证书的撤回状态 (撤回代表证书已失效) **“premaster secret"字符串:**客户端向服务器发送另一个随机字符串"premaster secret (预主密钥)”,这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。**使用私钥:**服务器使用私钥解密"premaster secret"。生成共享密钥:客户端和服务器均使用 client random,server random 和 premaster secret,并通过相同的算法生成相同的共享密钥 KEY。**客户端就绪:**客户端发送经过共享密钥 KEY加密过的"finished"信号。**服务器就绪:**服务器发送经过共享密钥 KEY加密过的"finished"信号。**达成安全通信:**握手完成,双方使用对称加密进行安全通信。

  1. 证书相关文件格式

  证书相关文件有多种格式,常见格式:,,,,,。

  证书类型、证书文件CA认证后的证书文件,包含公钥,签名和其他需要认证的信息,比如主机名称(IP)等私钥文件通常是rsa算法,分带口令和不带口令的版本、证书请求文件里面包含公钥和其他信息,通过签名后就可以生成证书;

  用于向证书颁发机构申请crt证书时使用,服务器配置时不会用到;

  在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥;证书保存格式文本格式里面一般包含私钥和证书的信息、二进制格式只含有证书信息,不包含私钥、 二进制格式同时包含证书和私钥,且一般有密码保护备注根证书文件()和根证书对应的私钥文件()由 CA(证书授权中心,国际认可)生成和保管,用于验证其他证书的合法性

  实际上,上述文件的扩展名可以随意命名。只是为了容易理解文件的功能而选择大家都认识的命名方式。但是,上述文件是有格式的,只能是 格式或者 格式。使用什么格式的文件取决于需求。

  格式的文件为文本文件,内容分别为:

  下面几种类型文件,主要是首尾命名不同

  证书文件:

  私钥文件:

  请求文件:

  2. 证书种类

  证书分为根证书、服务器证书、客户端证书。根证书文件()和根证书对应的私钥文件()由 CA(证书授权中心,国际认可)生成和保管。那么服务器如何获得证书呢?向 CA 申请!步骤如下:

  服务器生成自己的公钥()和私钥()。后续通信过程中,客户端使用该公钥加密通信数据,服务端使用对应的私钥解密接收到的客户端的数据;服务器使用公钥生成请求文件(),请求文件中包含服务器的相关信息,比如域名、公钥、组织机构等;服务器将 发送给 CA。CA 验证服务器合法后,使用 和 生成证书文件()——使用私钥生成证书的签名数据;CA 将证书文件()发送给服务器。

  由于 和 是一对, 文件中包含公钥,因此 可以验证 是否合法——使用公钥验证证书的签名。

  3. 验证方式

  验证方式分为单向验证和双向验证。

  3.1 单向验证

  单向验证是指通信双方中一方验证另一方是否合法。通常是指客户端验证服务器。

  客户端需要:

  服务器需要:,

  PS:我们平时使用 PC 上网时使用的就是单向验证的方式。即,我们验证我们要访问的网站的合法性。PC 中的浏览器(火狐、IE、chrome等)已经包含了很多 CA 的根证书()。当我们访问某个网站(比如:.baidu)时,网站会将其证书()发送给浏览器,浏览器会使用 验证 是否合法。如果发现访问的是不合法网站,浏览器会给出提示。

  现实中,有的公司会使用自签发证书,即公司自己生成根证书()。如果我们信任此网站,那么需要手动将其证书添加到系统中。

  3.2 双向验证

  双向验证是指通信双方需要互相验证对方是否合法。服务器验证客户端,客户端验证服务器。

  客户端需要:,,

  服务器需要:,,

  双向验证通常用于支付系统中,比如支付宝。我们在使用支付宝时必须下载数字证书,该证书就是支付宝颁发给针对我们这台机器的证书,我们只能使用这台机器访问支付宝。如果换了机器,那么需要重新申请证书。

  x509证书通常会用到三类文:key,csr,crt

  *.key:密钥文件,一般是SSL中的私钥,通常是rsa算法,分带口令和不带口令的版本;

  *.csr:证书请求文件,里面包含公钥和其他信息,通过签名后就可以生成证书;用于向证书颁发机构申请crt证书时使用,服务器配置时不会用到;在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥;

  *.crt, *.cert:CA认证后的证书文件,包含公钥,签名和其他需要认证的信息,比如主机名称(IP)等;

  *.pem:里面一般包含私钥和证书的信息;

  我们自签名证书配置,虚拟主机需要的是 证书,和不带口令的SSL Key的.key文件;

  0. keytool / openssl

  和 是俩个证书管理工具,是自带的证书管理工具,使用可以生成密钥,创立证书。只需装了jdk,并正确设置了环境变量,即可以之间通过命令行执行命令来管理证书。 则是一个开源的安全套接字层密码库,功能比更加丰富。

  1. 生成 key

  这样是生成rsa私钥,des3算法,openssl格式,2048位强度。server.key是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。

  可以通过以下方法生成没有密码的key:

  server.key 就是没有密码的版本了。

  2. 生成CA的crt

  生成的 ca.crt 文件是用来签署下面的 server.csr 文件。

  3. 生成csr

  须要依次输入国家,地区,组织,Email。最重要的是common name,能够写你的名字或者域名。

  若是为了s申请,这个必须和域名吻合,不然会引起浏览器警报。生成的 csr 文件交给 CA签名 后造成服务端本身的证书。

  4. 生成crt

  CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢。

  输入key的密钥后,完成证书生成。

  选项指明用于被签名的csr证书

  选项指明用于签名的密钥

  指明序列号文件,序列号文件是ca指令签发证书的时候的依据文件之一,它从该文件读取当前签发的证书的序列号并将序列号文件中的序列号加1,这样,就可以确保证书的序论号是递增的,不会重复。

  指明文件不存在时自动生成

  最后生成了私用密钥:server.key和本身认证的SSL证书:server.crt

  证书合并:

扫描二维码推送至手机访问。

版权声明:本文由MDM苹果签名,IPA签名,苹果企业签名,苹果超级签,ios企业签名,iphoneqm.com发布,如需转载请注明出处。

转载请注明出处https://iphoneqm.com/iphoneqm/420.html

分享给朋友:

相关文章

Code Signing Resources

Code Signing Resources

  This site contains user submitted content, comments and opinions and is for informational purposes...

c#简单易用的短信发送服务 悠逸企业短信服务

c#简单易用的短信发送服务 悠逸企业短信服务

  悠逸企业短信发送服务,是一种比较简单易操作的短信发送服务,使用POST的方式,请求相应地址就可以实现短信发送功能   1 ///   2 /// 短信发送服务   3...

超级签

超级签

  不同于友好的android系统,一直以来苹果的iOS系统因其严格审核机制将许多App拒之门外,令开发者们郁闷不已。企业签名或许是众多开发者解决这一问题的首选,但高昂的价格和高掉签率等问题令人望而却...

淘宝天猫规则范文

淘宝天猫规则范文

  淘宝天猫规则---总则(整理)   《tmall(天猫)规则》   总则   第一章 概述 第一条   为促进开放、透明、分享、责任的新商业文明,保障淘宝用户合法权益,维护...

Apple Mail如何设置只收取最近一段时间的邮件?

Apple Mail如何设置只收取最近一段时间的邮件?

  本网站包含用户提交的内容、评论和观点,仅供参考。根据提供的信息,Apple 可能会提供或推荐回复来作为可行的解决方案;每个潜在问题可能都会涉及多个因素,这些因素在电子论坛上的对话中没有详加说明,因...

苹果企业签名与tf签名的区别播报文章

苹果企业签名与tf签名的区别播报文章

  我们都知道,当APP开发完成之后,是需要进行内测的,排除bug之后,才会上架到各大应用市场。但由于ios系统审核非常严格,有些APP本身是不符合App Store的上架标准的,那么该如何进行分发呢...

现在,非常期待与您的又一次邂逅

我们努力让每一次邂逅总能超越期待