SSL证书

  • 发布时间: 2020-06-04
  • 作者: 星拓网络
  • 来源: 原创
  • 浏览量: (76)
  • 描述: 为什么需要证书数字证书原理逻辑链条:加密由加密算法 + 密钥组成,加密算法公开,于是密钥分发成了关键。(可以试想,若是加密算法私有...

客户介绍

预览地址:SSL证书

案例截图

为什么需要证书

数字证书原理逻辑链条:

  1. 加密由加密算法 + 密钥组成,加密算法公开,于是密钥分发成了关键。(可以试想,若是加密算法私有,自然就没有密钥分发及之后的问题,代之就只加密算法本身的安全问题)

  2. 对称加密密钥不易分发,也不能每次都一样

  3. 非对称加密通信,客户端持有服务端的公钥,但服务商的公钥谁都可以得到,服务商给我发的消息,别人虽然不能改,但也可以截获并解密。

  4. 所以,纯粹的对称加密 和 非对称加密 都是无法做到安全通信的。因此,先使用非对称加密 约定一个对称密钥,再用对称加密交流

  5. 问题就变成了:客户端如何拿到服务商的公钥? ==> 服务商的公钥如何安全的在网络上传输呢?==> 服务商不直接分发公钥,而是分发经CA私钥加密过的数字证书(包含公钥+服务商域名等信息)。客户端持有CA的公钥,解密后拿到服务商的公钥。

    从概念上来讲,数字证书是用来验证网络通信参与者的一个文件。这和学校颁发 给学生的毕业证书类似。在学校和学生之间,学校是可信第三方 CA,而学生是通信 参与者。如果社会普遍信任一个学校的声誉的话,那么这个学校颁发的毕业证书,也 会得到社会认可。参与者证书和 CA 证书可以类比毕业证和学校的办学许可证。

  6. CA的公钥如何安全的在网络上传输呢?给CA 也颁发证书,然后大家都无条件信任root CA,在操作系统、浏览器发布的时候便嵌入了root CA。

就好比谍报战里的接头戏码

  1. 两个彼此认识的特工接头会轻松一点,双方可能会经常变换下接头方式

  2. 第一次跟新来的特工接头,上级会告诉你xx点去xx等一个手里拿着xx的人,接头暗号是“hello/world”。此次,双方都认识的上级是CA,“hello/world” 便是对方的CA证书。

证书

  1. 证书有什么,Chrome可以通过”settings ==> advanced setting ==> https/ssl ==> 管理证书” 查看证书内容。证书基本上是一个文本文件。

    • 服务商的公钥

    • 服务商的信息

    • 对上述信息算一个签名,用ca自己的私钥加密一下

  2. 如何验证证书?我拥有ca的公钥,对证书上的信息做一个签名, 解密证书上的签名,比对。

    结论,证书是可信的,那么证书上的内容,尤其是服务商的公钥是可信的。就好像,毕业证上学校公章是可信的,那么可以相信这个学生的学历是可信的。

    • 如果两个签名一样,签名一样,说明证书没被篡改

    • 签名可以用ca公钥正确解密,说明是用ca私钥加密的,即证书是ca颁发的

动态加载证书

大多数时候,本地只要有常用的ca根证书,即可验证大部分服务商。证书被验证可信后,浏览器或操作系统会将证书存储在本地(证书有效期内),当用户在浏览器中键入https地址时,直接开始同服务端商定对称算法和密钥,从而省去证书的获取和验证过程。

但是,当服务商证书不在Java 的 cacerts 文件中,或者无法通过ca证书链式推导,我们也可以手动添加。

  1. 12306之类的网站,证书基本可信,但不是向ca申请的

  2. 内部通信,证书自己生成,自己确认可信

添加方式

  1. 使用java keytool工具添加。有时候不具备权限,或要添加的机器过多

  2. 程序加载。这就是一些应用在使用时,要指定证书地址的缘故了。应用作为客户端,直接加载服务端证书,以省去证书验证过程。

证书的存储

浏览器保存了一个常用的 CA 证书列表,与此类似的,操作系统也一样保存有一份可信的证书列表。

证书的格式

CA 在发布证书时,常常使用 PEM 格式,这种格式的好处是纯文本,内容是 BASE64 编码的,另外还有比较常用的二进制 DER 格式,在 Windows 平台上较常使用的 PKCS#12 格式等等。当然,不同格式的证书之间是可以相互转换的。

在 Java 平台下,证书常常被存储在 KeyStore 文件中,上面说的 cacerts 文件就是一个 KeyStore 文件(KeyStore 只是一种文件格式,java中使用keyStore文件存储加密相关的数据,证书是其中一种)。存储在 KeyStore 文件中的对象有三种类型:Certificate、PrivateKey 和 SecretKey 。

  1. Certificate 就是证书,

  2. PrivateKey 是非对称加密中的私钥,

  3. SecretKey 用于对称加密,是对称加密中的密钥。

KeyStore 文件根据用途,也有很多种不同的格式:JKS、JCEKS、PKCS12、DKS 等等。

java中的keyStore文件根据用途,分为两类:keyStore、TrustStore,对应两个类 KeyManager 和 TrustManager。前者负责管理自己的私钥等数据,后者负责存储一些可信任的证书。可以想见,如果我们改写 TrustManager 类,让其无论何时都返回true,即可绕过对证书的验证。

制作证书

 文件后缀备注
证书签名请求(Certificate signing request)*.csr包含域名、国家、城市、公司、邮箱等信息
私钥(Private Key)*.key
证书(Certificate)*.cer ,*.crtCA 使用其私钥对 csr签名生成crt

至于pem和der(少见)是编码方式,以上三类(Cert,Key,CSR)均可以使用这两种编码方式。

  1. *.pem - base64编码

  2. *.der - 二进制编码

基于OpenSSL自建CA和颁发SSL证书

假设自己的nginx 对外提供https支持

  1. 自建ca 或第三方ca 机构

  2. 在nginx 机器上 创建一对儿rsa密钥(key文件);生成证书请求(csr文件)

  3. 将csr文件发送到ca服务器(第三方ca机构),得到nginx crt证书(crt或pem后缀)

  4. 访问nginx 的客户端持有ca 根crt证书,持有或获取 nginx 的crt 证书,即可与nginx 进行https通讯。

ca和pki

所以呢,有一个PKI(Public Key Infrastructure)的概念,中文称作公钥基础设施。它提供公钥加密和数字签名服务的系统或平台,比如ca系统,浏览器和操作系统内置一些常用ca证书。通过协议和机制的约定,实现公钥的可信分发,进而建立起一个安全的网络环境。而数字证书最常见的格式是 X.509 ,所以这种公钥基础设施又称之为 PKIX 。

而在大公司内部,通常会建立私有的ca和pki体系。

安全应用

ssh

SSH原理与运用(一):远程登录

密码登陆

如果嫌每次登陆输密码麻烦,可以公钥登陆

https

SSL/TLS 四次握手

总结一下https设计到的一些加密知识

  1. 哈希,将任意长度的数据转化为固定长度的,验证数据是否被篡改

  2. 对称加密,加密和解密使用同一个密钥,对称加密的优点是速度快,缺点是密钥管理不方便,必须共享密钥

  3. 非对称加密,缺点是速度慢,优点是双方无需共享同一个密钥,密钥管理很方便

  4. 数字证书,提供可信的服务商公钥

其它

上文提到的都是单向非对称加密,对于安全性很高的场景(比如网银), 不仅客户端要验证服务端的合法性,服务端也要验证每个访问的客户端的合法性,对于这种场景,往往给每个用户发一个U盘,里面装的就是客户端的公钥和私钥对,用于双向非对称加密。


二维码

扫一扫,关注我们

声明:本文由【星拓网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【星拓网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。
上一篇:已经是第一篇
下一篇:域名注册

相关案例

  • 服务器维护

      如何做好服务器的日常维护?星拓网络与你谈谈IT人员必须知道的服务器日常维护,以下这些细节要留意:  电缆连接  服务器进...

    2020-06-04
    服务器维护
  • 漏洞修复

      Web应用是指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。随着互联网的广泛使用,Web应用已经融入到日常生活中的各个方面:网上购...

    2020-06-04
    漏洞修复
  • 域名注册

      域名注册是Internet中用于解决地址对应问题的一种方法。根据中国互联网络域名管理办法,域名注册服务机构及域名注册管理机构需对申请人...

    2020-06-04
    域名注册
  • SSL证书

    为什么需要证书数字证书原理逻辑链条:加密由加密算法 + 密钥组成,加密算法公开,于是密钥分发成了关键。(可以试想,若是加密算法私有...

    2020-06-04
    ssl证书

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

星拓网络-您身边的网站建设专家

搜索千万次不如咨询1次

主营项目:网站建设,网络营销,SEO优化,微信小程序开发,LOGO设计,产品包装设计,虚拟主机,域名注册,网站安全检测,微信商城等

立即咨询 134-1862-3435
在线客服
嘿,我来帮您!