SSL证书原理

证书的校验逻辑:

标准的证书链:

域名CA(用于认证www.example.com) 代理CA(作为域名的授信机构,中间商赚差价,可能有多级)  根CA(证书的签发机构);

校验逻辑:

客户端(浏览器)先看域名CA,发现证书本身认证正常,但是授信机构不认识,认证不通过。

于是进一步看代理CA,代理CA本身也没毛病,假设仍然不认识,不可信。

再进一步看代理的授信方,即根CA,可信;于是校验通过。

可能存在的场景:

在少数情况下,部分证书厂商会把域名CA和代理CA分开提供,或者干脆不提供代理CA;

若仅在云平台上传域名CA,那么该CA中仅仅指出本CA由哪个机构颁发,而如果客户端不认可此代理机构(代理商太多,变动大,或者或者部分安卓自带的CA库过时或不完整),那么证书会校验失败。(跟自签名证书效果相同,会导致证书的授信机构不可信)。

解决方案:

去证书对应的办法机构官网下载代理商自身的CA(或从浏览器导出),与域名证书合为链式。

以私钥--->域名CA--->代理CA--->根CA为顺序合成,根CA可以不要,因为根CA大多都内置到浏览器中了,且有效期为10年或20年。合成为.pem文件然后上传。

此时,即使客户端CA不信任域名CA与代理CA,也会信任根CA,所以根CA认为此代理可信,那么代理CA就可信,进一步代理认证的域名也就可信,校验通过。

 

 

CA:

CA(Certificate Authority)是证书的签发机构,它是负责管理和签发证书的第三方机构,是受到广泛信任的机构。一般在我们的电脑中,浏览器里,或者手机里都会内置一批这样的受信机构的根证书。

证书信任链:

比如我是CA机构我签发了一封证书 我这份证书是信任B证书的另外B证书又信任了其他的C证书......那么这条链条下去的都可以信任。所以一旦CA机构的根证书不可信了,那么所有由他签发出来的证书将全部变得不可信,后果很严重。

公钥密码体制:

公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:

  • 加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。 
  • 解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解密算法和私钥。注意,由公钥加密的内容,只能由私钥进行解密,也就是说,由公钥加密的内容,如果不知道私钥,是无法解密的。

CA证书:

顾名思义CA证书就是由CA机构签发的证书。其实证书谁都可以签,你也可以自己给自己签发证书,但是由于你自己并不是被广泛信任的机构,所以你自己签发的证书并没有什么用。公网也不会信任你的证书。服务器证书包括以下几种信息:

  • 证书的发布机构 
  • 证书的有效期 
  • 公钥 
  • 证书所有者(Subject) 
  • 签名所使用的算法 
  • 指纹以及指纹算法

证书格式:

.csr  证书请求文件,用于请求证书,没有实际的作用。制作.csr文件  https://www.cnblogs.com/lhj588/p/6069890.html

Private/.key   证书私钥,用于解密

*.PFX *.P12 是二进制格式,同时含证书和私钥,一般有密码保护。

*.DER *.CER : 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。

*.CRT : 这样的文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与*.DER/*.CER相同。

*.PEM : 一般是文本格式,可以放证书或私钥,或者两者都包含。 *.PEM如果只包含私钥,那一般用 *.KEY代替。

你可能感兴趣的:(SSL,linux)