一、背景
很多主机厂都说需要做HTTPS的双向认证,那到底什么是双向认证呢?
二、什么是Https的双向认证?
英文是Mutual TLS
HTTPS双向认证是一种安全通信方式,它需要在客户端和服务端之间进行双向身份验证。在这种方式中,客户端需要提供服务端所需的证书,而服务端也需要提供客户端所需的证书。双方都需要验证对方的证书,确保通信的安全性。这样就可以确保只有双方都被认证后,才能进行安全的通信。
三、PKI 系统是啥?为啥会有PKI系统?
3.1 PKI 是什么?
PKI (公钥基础设施) 是一种用于管理公钥证书的系统。
它包括证书颁发机构 (CA)、证书管理器、证书库等组件。
PKI 可用于加密通信、数字签名、身份认证等多种用途。
3.2 为啥会有PKI系统?
PKI系统(公钥基础设施)是为了解决在电子商务和其他在线交易中的安全性问题而产生的。它使用公钥加密技术来保证交易的安全性和真实性,并使用数字证书来
3.3 双密钥证书的生成过程
项目组使用的PKI技术采用双密钥、双证书机制,双密钥证书的生成过程包括以下步骤:
- 首先,用户需要生成一对公钥和私钥。这对密钥是非常重要的,私钥用于签名和加密,而公钥用于验证签名和解密。
- 用户将公钥发送给证书颁发机构 (CA),请求颁发证书。
- CA收到公钥后,会验证该公钥的真实性和有效性。如果通过了验证,CA会签发一个数字证书,其中包括了用户的公钥和一些其他的信息,如用户名和证书有效期。
- 数字证书签发完成后,CA会用自己的私钥对该证书进行签名,并将该证书发送给用户。
- 用户收到证书后,可以使用该证书与其他用户进行加密和签名操作。
- 另外,用户也可以生成另一对公钥和私钥,经过类似的流程获取另一个证书.
- 用户可以使用这两对密钥的证书分别用于不同的场景,例如一个用于身份认证,一个用于数据加密.
四、基于车机与云服务之间的HTTPS双向认证如何做?
以下是示意图
五、基于云服务之间的HTTPS双向认证怎么做?
云端服务之间的双向认证可以通过使用证书来实现。在这种方式中,服务提供者将公钥证书发送给服务消费者,服务消费者使用该证书来验证服务提供者的身份。反之亦然,服务消费者也可以向服务提供者发送自己的公钥证书,服务提供者可以使用该证书来验证服务消费者的身份。
如果有个第三方服务平台,说要跟你的云平台做Https的双向认证(X.509)
这个时候,你考虑两件事
5.1 看对方的证书的签发情况
场景1:运营级证书
如果对方也是运营级的证书,即证书签发方是权威CA网站,而且你的服务器也是运营级的证书,那么系统是自动互相信任的。不需要任何证书的参与
场景2:自签发证书
如果对方也是自签发的证书,那么此时我们需要获得到对方的CA.crt根证书。
5.2 你的云平台能提供的证书情况
场景1:运营级证书
如果你的云平台的是运营级CA生成,那么你所有证书都不同提供给对方,这类证书就是类似与门户网站的证书。
场景2:自签发证书
如果你的云平台的是自签发证书(符合X.509,一种数字证书的格式标准),需要对方信任我们的CA.crt,需要对方配置这个证书 ,并且需要将我们的云平台的Nginx上配置好client.crt +client.key。