cover_image

http升级https最佳实践分享

爱康技术团队
2024年12月04日 01:36

图片

http升级https最佳实践分享

在大中型企业的信息化建设中,有多种不同类型的运营系统和各种后台接口服务,为业务部门来提供数字化管理。使用方需要通过域名访问各类系统,系统之间又通过域名来实现数据传输,作为内部网络访问的系统,一般使用HTTP协议,对外系统由于在公网访问,需要优先考虑系统的安全性,大部分都会升级至HTTPS协议。

图片

图-1 HTTP与HTTPS

在常用的浏览器中,如谷歌的Chrome浏览器在近几年的版本中默认使用了更安全的HTTPS协议,这就导致了长期使用Chrome浏览器访问HTTP系统的用户,由于不理解浏览器方面的特性,误认为是系统本身出了问题,进而产生了许多系统不可用的投诉。

图片

图-2 HTTPS请HTTP系统的错误提示

此问题是因为长期缺少统一的HTTP/HTTPS的使用规范和标准而产生的。各种历史包袱的积累和各系统域名之间请求的网状调用模式,导致多个系统从HTTP到HTTPS的升级过程,产生了较高的复杂度。从技术趋势方面保证协议的统一升级HTTPS是必须的;从安全合规角度更推荐系统使用HTTPS;从技术落地方案评估HTTP升级至HTTPS方案也是可行的。在落地技术方案的过程中,首先要定申请新域名的标准规范,明确新系统上线的域名必须使用HTTPS,再对现有HTTP系统分批次进行改造,最后在测试验收通过后上线生产环境。

一、HTTP与HTTPS协议区别

HTTP:HTTP协议即超文本传输协议,HTTP协议和TCP/IP协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信。
HTTPS:HTTPS是身披SSL外壳的HTTP,是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
图片

图-3 HTTP与HTTP区别

二、HTTP协议升级到HTTPS协议步骤

  • 获取SSL证书:从SSL证书颁发机构(CA)获取SSL证书。如测试环境可用选择自签名证书,生产环境需要购买经过验证的证书。
  • 安装SSL证书:将获取到的SSL证书安装到WEB服务器上,具体安装步骤可能会因不同的WEB服务器类型会有所差异。
  • 配置WEB服务器:修改WEB服务器的配置文件,启用HTTPS协议并配置SSL证书和私钥的路径, 例如Apache、Nginx等不同的Web服务器具体配置方法也有所不同。
  • 重定向HTTP请求:确保所有访问都通过HTTPS进行,需要配置一个重定向规则,将所有HTTP重定向到HTTPS,防止用户在浏览器地址栏中输入HTTP地址而导致安全问题。
  • 更新网站链接:修改网站页面中包含的图片、样式表、脚本等资源的链接地址和页面中的内部和外部链接,确保所有链接都使用HTTPS协议。
  • 更新网站地图和搜索引擎:如提交了网站地图给搜索引擎的网站,确保更新网站地图中的URL和搜索引擎中的索引,以避免搜索出现重复索引或搜索排名下降的情况。
  • 测试和监控:在升级HTTPS后要对系统进行全面测试验证,确保HTTPS配置正确,要实时监控系统的安全性和性能,出现问题时要及时解决。
作为单一独立的系统域名,上述步骤操作是可行的,但是对于真实的生产环境,会存在几十个甚至上百个域名之间的复杂调用,也就存在很多特殊的场景,例如:
  • 场景A:一个域名对应多个后台子服务。

  • 场景B:多个域名对应一个后台子服务。

  • 场景C:多个域名之间存在交叉的引用调用。
对于复杂的场景要根据实际情况分别制定出不同的升级HTTPS策略,以保证测试环境和生产环境平滑升级。同时还需要考虑在升级过程中不能影响在行项目的整体进度,如测试环境不可用引起QA无法开展工作,接口服务请求不通而影响开发过程中的调试工作等。对不同场景的系统域名分别制定具体的升级HTTPS方案,主要可以通过六个阶段来保证完成升级HTTPS的工作。
  • 阶段一:优先梳理需要升级HTTPS的所有域名,进行统一集中系统化管理,根据不同的业务场景分别制定合理的升级方案。
  • 阶段二:对于不符合域名定义标准的域名需要重新申请新的域名,维护好新域名和旧域名之间的映射关系,调用协议、环境、内网/外网、启动状态等。

    图片

    图-4 域名属性明细管理

  • 阶段三:测试环境的域名改造对HTTP协议与HTTPS协议双支持,对于不符合规范的域名进行调整成为新的域名(涉及到了新旧域名的关系)。测试环境的代码改造,包括了前后端分离系统(如同域名调用和后端的系统接口调用)、单语言的后端系统(如JSP、PHP)、后端接口服务(内部调用、外部调用)等,要做到测试环境修改并部署,验证通过。
  • 阶段四:生产环境的域名改造对HTTP和HTTPS协议双支持,同阶段三,包括了对于不合规域名进行新域名替换,生产环境依赖的代码改造,生产环境部署与验证通过。
  • 阶段五:测试环境仅支持HTTPS,测试环境与HTTP升级至HTTPS前保持一致。
  • 阶段六:生产环境仅支持HTTPS,生产环境与HTTP升级至HTTPS前保持一致。

在升级HTTPS过程中,HTTPS协议对性能的影响也是需要考虑的,主要包括以下几个方面:

  • 请求延迟增加:由于需要进行加密和解密操作,需要额外的计算资源和时间资源,这也使HTTPS请求的响应时间通常会比HTTP请求更长。
  • 带宽消耗增加:在传输过程中,HTTPS使用SSL/TLS协议进行加密传输增加加数据的大小,会占用更多的带宽,从而可能降低整体的网络吞吐量。
  • 服务器负载增加:由于HTTPS的加密和解密操作,服务器需要更多的CPU资源来处理这些任务,在高并发的场景下可能导致服务器的性能下降。
  • 证书验证开销:HTTPS在客户端验证服务器证书是否有效的过程,包括了证书链验证、签名验证等步骤,会增加额外的请求延迟。
  • 握手过程开销:HTTPS建立连接时需要进行一次握手的过程,包括了密钥交换、证书验证等步骤,握手过程的时间开销也会影响性能。
尽管HTTPS带来了一些性能开销,但是可以提供更好的安全性和隐私保护。对于敏感信息传输HTTPS是必要的选择,对于性能问题,可以选择更高效的加密算法可以减少计算开销;使用会话复用技术来减少握手次数;在传输数据时启用压缩算法;优化网络连接等多个方面来优化,在高并发场景下可通过服务器集群的横向扩容,增加更多的服务器资源来提升请求的处理能力,从而提高服务的性能。
图片


继续滑动看下一个
爱康技术团队
向上滑动看下一个