本发明属于paas平台技术领域,具体涉及一种跨公网实现多云管控的安全认证方法。
背景技术:
随着时代的进步和技术的发展,网络和通信技术的应用越来越广泛,网络安全问题也越来越突出。paas云平台的管控集群在对云计算集群进行管控时,常见的三种场景:创建服务,获取数据,设定任务。这三种场景,都对安全性有着极高的要求。以获取数据为例,如果数据在传输过程中被窃听,可能造成商业机密的泄漏;而如果数据获取接口可以被第三方随意读取,更是带来不可估量的损失。管控集群在对云计算集群进行管控时,在安全认证机制上,面临着挑战:传输使用的密码信息不能泄漏到客户云计算集群;需要同时管理多个云计算集群的安全认证信息,管控集群的管控服务需要在管控不同集群时选择加载对应的证书;管控场景多种多样,需要满足各类执行管控操作服务的需求。
现有技术一般通过申请权威ca认证的ssl证书,通过https双向认证实现跨公网对云计算集群进行管控。当要管理的云计算集群规模较大时,申请权威证书,除了会带来较大的财务开支,也会带来需要更换过期证书的大量运维成本。
技术实现要素:
为了解决上述问题,本发明提供了一种跨公网实现多云管控的安全认证方法,可以接使用http协议对云计算集群进行管控,可以更加节省人力财力,也更加安全。
本发明的技术方案为:
一种跨公网实现多云管控的安全认证方法,包括管控集群和云计算集群,其特征在于,还包括管控集群反向代理服务和云计算集群反向代理服务,反向服务器可以是nginx;具体步骤包括:
s1、通过一组反向代理服务器在管控集群的网络边缘和被管控的云计算集群的网络边缘之间搭建一个双向认证网络通道;
s2、在管控集群内,管控服务在内网直接使用http协议访问反向代理服务;
s3、管控集群内的反向代理服务器在收到请求后,使用自签名的ssl客户端证书通过https协议公网访问云计算集群的反向代理服务器完成对管控集群的认证;
s4、同时云计算集群返回自签名的服务端证书,管控集群也使用相同的自签名ca证书,完成对云计算集群的认证;
s5、双向认证完成后,云计算集群的反向代理服务将https协议卸载,使用http协议访问目标服务,实现安全管控。
作为优选,管控服务在内网通过http请求中携带x-portal-host表明要访问的云计算集群,通过携带x-portal-dest表明要访问的云计算集群内具体的服务。
管控集群的认证方法有很多,作为优选,本发明中管控集群的认证通过云计算集群内的反向代理服务器识别管控集群ssl客户端证书的自签名ca证书来完成。ssl证书的校验发生在两个反向代理服务器之间,和其他外部服务之间的调用都是无需加密的,所以ssl证书不需要向权威ca申请来保障公信力,只需要两个反向代理服务器之间互相信任即可。
本发明不需要做证书域名的安全校验,管控集群的反向代理服务只需要同一本ssl客户端证书,即可以实现对所有云计算集群的管控。
作为优选,安全认证方法基于ssl非对称加密的特性,密码可以通过云计算集群的私钥和管控集群的公钥直接计算出来,不需要将密码存储在云计算集群。
作为优选,发明了一种安全认证访问协议,管控服务可以基于安全认证访问协议实现的代码库自动根据提供的协议地址实现安全认证,管控服务无需感知接口是否需要进行安全认证,进一步减少管控服务接入安全认证机制的成本。
作为优选,安全认证访问协议包括domain字段和address字段。
其中,domain字段是云计算集群的入口域名地址,address字段是要访问的目标服务在云计算集群的内部地址。将domain字段带在http请求头的x-portal-host上,将address字段带在http请求头的x-portal-dest上,向管控集群的安全认证反向代理服务发起http请求即可。该协议实现在管控服务共用的安全认证网络库中,管控服务直接根据请求地址按需实现安全认证。
与现有技术相比,本发明的有益效果体现在:
本发明可以使用同一组自签名的ssl证书实现对多个云计算集群对安全管控,对比使用权威ca认证的ssl证书,运维成本大大下降,可以节省人力财力,也更加安全。本发明免去了管控服务接入https双向认证协议的成本,直接使用http协议对云计算集群进行管控,而且管理云计算集群的客户端证书,可以对所有管控服务都不可见,证书泄漏风险更小,安全性更高。
附图说明
图1为本发明的场景示意图(多云管控)。
图2为本发明的原理示意图(管控服务对目标服务的管控请求链路)。
图3为本发明的原理示意图(基于安全认证地址实现无感知安全认证)。
具体实施方式
如图2所示,本发明包括管控集群和云计算集群,其特征在于,还包括管控集群反向代理服务和云计算集群反向代理服务,反向服务器可以是nginx;具体步骤包括:
s1、通过一组反向代理服务器在管控集群的网络边缘和被管控的云计算集群的网络边缘之间搭建一个双向认证网络通道;
s2、在管控集群内,管控服务在内网直接使用http协议访问反向代理服务;
s3、管控集群内的反向代理服务器在收到请求后,使用自签名的ssl客户端证书通过https协议公网访问云计算集群的反向代理服务器完成对管控集群的认证;
s4、同时云计算集群返回自签名的服务端证书,管控集群也使用相同的自签名ca证书,完成对云计算集群的认证;
s5、双向认证完成后,云计算集群的反向代理服务将https协议卸载,使用http协议访问目标服务,实现安全管控。
管控服务在内网通过http请求中携带x-portal-host表明要访问的云计算集群,通过携带x-portal-dest表明要访问的云计算集群内具体的服务。
管控集群的认证方法有很多,本发明中管控集群的认证通过云计算集群内的反向代理服务器识别管控集群ssl客户端证书的自签名ca证书来完成。ssl证书的校验发生在两个反向代理服务器之间,和其他外部服务之间的调用都是无需加密的,所以ssl证书不需要向权威ca申请来保障公信力,只需要两个反向代理服务器之间互相信任即可。
本发明不需要做证书域名的安全校验,管控集群的反向代理服务只需要同一本ssl客户端证书,即可以实现对所有云计算集群的管控。
如图1所示,paas云平台的管控集群在对云计算集群进行管控时,常见的三种场景:创建服务,获取数据,设定任务。安全认证方法基于ssl非对称加密的特性,密码可以通过云计算集群的私钥和管控集群的公钥直接计算出来,不需要将密码存储在云计算集群。本发明绕过了https协议对证书域名的检查,通过自签名证书代替权威ca认证的证书,一组证书可以管理任意数量的云计算集群;也免去了管控服务接入https双向认证协议的成本,直接使用http协议对云计算集群进行管控,而且管理云计算集群的客户端证书,可以对所有管控服务都不可见,证书泄漏风险更小,安全性更高。
如图3所示,本发明包括一种安全认证访问协议,管控服务可以基于安全认证访问协议实现的代码库自动根据提供的协议地址实现安全认证,管控服务无需感知接口是否需要进行安全认证,进一步减少管控服务接入安全认证机制的成本。
安全认证访问协议包括domain字段和address字段。当http请求的url构成如下形式时,进行安全认证代理:inet://<domain>/<address>。
其中,domain字段是云计算集群的入口域名地址,address字段是要访问的目标服务在云计算集群的内部地址。将domain字段带在http请求头的x-portal-host上,将address字段带在http请求头的x-portal-dest上,向管控集群的安全认证反向代理服务发起http请求即可。该协议实现在管控服务共用的安全认证网络库中,管控服务直接根据请求地址按需实现安全认证。
以反向服务器nginx为例,对上述本发明实施例作进一步描述:
实施例包括双向ssl证书生成命令和证书部署。双向ssl证书生成命令有:创建ca密钥、创建ca证书、创建服务端密钥、创建服务端证书、创建服务端csr、创建客户端密钥、创建客户端csr、创建客户端证书。证书部署即将ca证书,服务端证书,服务端密钥部署到云计算集群的安全认证反向代理服务器中;将ca证书,客户端证书,客户端密钥部署到管控集群的安全认证反向代理服务器中,且需要开启证书校验,来避免中间人劫持,提高安全性,同时需要携带sni信息(proxy_ssl_name),便于服务端正确路由到安全认证反向代理服务和进行处理。