我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SSL和TLS的部署方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SSL和TLS的部署方法

这篇文章主要讲解了“SSL和TLS的部署方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SSL和TLS的部署方法”吧!

在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥来防止攻击者进行模拟攻击。同样重要的是拥有一个有效和强大的证书,它会授予私钥来代表一个特定的主机名。

对于大多数网站都来说,由2048位RSA密钥提供的安全性就已经足够了。 由于RSA公钥算法应用广泛,从而使得它成为安全的默认选择。对于2048位的RSA密钥来说,能够提供大约112位密钥。如果你想要更高的安全性, RSA密钥则不能很好地进行扩展。比如,要获得128位的密钥,就需要3072位的RSA密钥,这显然运行较慢。椭圆曲线数字签名算法ECDSA显示为你提供了更好的安全性和更好的性能。以ECDSA256为例,,ECDSA密钥提供了128位的密钥。

如何保护私钥

(1)要在具有足够熵的可信计算机上生成私钥。

(2)从一开始就要为密钥设置密码保护,以防止在存储到备份系统中时受到攻击。私钥密码在实际运行中不会有太大的安全保障,因为威胁者完全可以随时从进程内存中检索密钥。利用硬件设备(硬件安全模块或HSM),即使在服务器受损的情况下也可以保护私钥,但是这些设备是昂贵的,因此仅适用于对安全有严格安全性要求的机构。

(3)被攻击后,撤销旧证书并生成新密钥。

(4)每年更新证书,建议你的设备可以自动执行此过程,因此具有较短使用周期的证书在实践中更为安全。

(5)除非特殊情况,否则每当获得新证书时,就应该生成相应的新私钥。

确保证书覆盖所使用的网站

确保你的证书覆盖你所使用的网站,避免无效的证书警告。

即使你只有一个域名,你也应确保证书与www前缀有关,例如,example.com和www.example.com。安全的Web服务器的每个DNS名称都应该配置一个有效的证书。还有就是,访问私钥的人越少越好。

可靠的CA获取证书

选择CA时,请注意以下5方面:

(1)所有CA的安全状态都要经过定期审核;

(2)选择以CA为主业务且提供各种功能支持的机构;

(3)你选择的CA应提供证书吊销列表(CRL)和在线证书状态协议(OCSP)撤销的支持;

使用强大的证书签名算法

证书安全性取决于用于签署证书的私钥的强度及签名中使用的哈希函数的强度。原来大多数证书都依赖于SHA1散列函数,不过现在已经证实这是不安全的。因此,目前的趋势是正在向SHA256转型。截止2016年底,SHA1证书将不再被网站支持。

TLS服务器的配置

使用完整的证书链

无效的证书链会让服务器证书无效并导致浏览器发出安全警告,在大多数SSL和TLS部署中,只有服务器证书需要两个或多个证书来建立完整的信任链。

使用安全协议

SSL/TLS系列中有五种协议:SSL  2,SSL  3,TLS 1.0,TLS 1.1和TLS 1.2。

SSL2和SSL3已经非常过时了,建议不要使用。从理论上来讲,TLS  1.0也不应该被使用,但在实践中经常被使用。截至目前,TLS  1.1和 1.2都还没有什么安全问题,但只有 1.2提供了现代的加密算法。

所以TLS 1.2应该是被使用的主要协议,因为它是仅有可提供现代认证加密(也称为AEAD)的版本。

选择加密套件

加密套件是用于在SSL/TLS握手期间协商安全设置的算法的组合。在ClientHello和ServerHello消息交换之后,客户端发送优先级列表的密码支持套件。然后,服务器使用从列表中选择的密码套件进行响应。加密套件为以下组合:

密钥交换算法(RSA,DH,ECDH,PSK);

认证算法(RSA,DSA);

批量加密算法(AES,Camellia,ARIA);

消息认证码算法(SHA-256);

不过有几个过时的加密原语必须禁止使用:

(1)匿名Diffie-Hellman(ADH)套件不提供身份验证。

(2)NULL加密套件不提供加密。

(3)导出加密套件在连接协商时不安全,但也可以针对更强大的套件(FREAK攻击)的服务器使用。

(4)弱密码(通常为40和56位)的套件使用可以轻松被攻击。

(5)RC4是不安全的。

(6)3DES运行缓慢且易被攻击。

在SSL  3及更高版本的协议版本中,客户端会先提交一系列支持的加密套件,服务器从列表中选择一个用于连接的套件。然而,并不是所有的服务器都能执行此操作,有些会固定的从客户端列表中选择第一个支持的套件,所以服务器主动选择可用加密套件对于提升安全性至关重要。

使用前向保密

前向安全或前向保密(英语:Forward Secrecy,缩写:FS),有时也被称为Perfect Forward Secrecy,缩写:PFS,是密码学中通讯协议的安全属性,指的是长期使用的主密钥泄漏不会导致过去的会话密钥泄漏。 [2]  前向安全能够保护过去进行的通讯不受密码或密钥在未来暴露的威胁。如果系统具有前向安全性,就可以保证在主密钥泄露时历史通讯的安全,即使系统遭到主动攻击也是如此。

使用强大的密钥交换算法

确保数据的传输、存储安全,通常都会对传输的数据加密后存储或传输,接收方收到数据后解密密文,还原明文。通常采用的加密算法主要有对称密钥加密算法以及非对称密钥加密算法。在安全的数据通信中,通信的双方必须分别具有加密的密钥以及解密的密钥。一旦通信的密钥被泄漏或破解,由其加密的信息就会被泄漏。因此,如何安全地交换或协商通信密钥就成为至关重要的问题,从而如何保证密钥的安全,特别是安全的密码交换就成为电子商务中安全信息交换的核心问题。

2015年,研究人员发现一个SSL加密安全漏洞LogJam,LogJam漏洞将影响任何支持DHE_EXPORT密码的服务器及所有浏览器,包括新版的IE、Chrome、Firefox、Safari等。随后他们评估称学术派黑客可以破解768位的密钥,而国家支持的黑客更可以突破1024位的密钥。所以为了安全起见,如果部署DHE,至少要配置2048位的密钥。

正确部署前的验证

也许在按着本文的方法在进行部署时,许多软件和硬件配置都有了新的版本,建议大家先对自己的SSL / TLS做个全面评估,以确保运行的安全,推荐大家使用此链接进行测试。

实践部署过程中的注意事项

避免一味的追求过高的安全性

使用太短的密码肯定是不安全的,但使用太长的密码也不一定安全,比如会导致操作的复杂。对于大多数网站来说,使用强于2048位的RSA密钥以及使用强于256位的ECDSA密钥会浪费CPU功耗,并可能会损害用户体验。类似地,增加临时密钥交换的强度对于DHE为2048位以及ECDHE为256位几乎没有什么好处,使用高于128位的加密也没有明显的好处。

使用会话重用机制

由于SSL握手的非对称运算无论是RSA还是ECDHE,都会消耗性能,故为了提高性能,对于之前已经进行过握手的SSL连接,尽可能减少握手round time trip以及运算。

SSL提供2中不同的会话复用机制。

(1)session id会话复用;

(2)session ticket会话复用,Session id会话复用有2个缺点,其一就是服务器会大量堆积会话,特别是在实际使用时,会话老化时间配置为数小时,这种情况对服务器内存占用非常高。

使用广域网优化

广域网优化(WAN optimization),通常也被称为广域网加速(WAN acceleration),即通过一些优化技术来提供高性能的远程数据访问,从而提高应用程序在广域网上的性能。

缓存公共内容

通过TLS进行通信时,浏览器可能会把所有流量都视为敏感数据。这样,它们通常会使用内存来缓存某些资源,但一旦关闭浏览器,所有内容都可能会丢失。为了获得性能提升并实现对某些资源的长期缓存,可以将公共资源(例如图像)标记为公开。

启用OCSP Stapling

OCSP (Online Certificate Status Protocol) 通常由 CA 提供,用于在线实时验证证书是否合法有效,这样客户端就可以根据证书中的 OCSP 信息,发送查询请求到 CA 的验证地址,来检查此证书是否有效。

而 OCSP Stapling ,顾名思义,是将查询 OCSP 接口的工作交给服务器来做,服务器除了可以直接查询 OCSP 信息,还可以仅进行少数次查询并将响应缓存起来。当有客户端向服务器发起 TLS 握手请求时,服务器将证书的 OCSP 信息随证书链一同发送给客户端,从而避免了客户端验证会产生的阻塞问题。由于 OCSP 响应是无法伪造的,因此这一过程也不会产生额外的安全问题。

使用快速加密原语

尽可能使用支持硬件加速AES的CPU,如果你真的想要进一步提高性能,请考虑使用ECDSA密钥。

HTTP的加密

加密整个网站,加密的问题可能是当今重大的安全问题之一,比如:

(1)没有TLS的网站

(2)具有TLS但不执行TLS的站点

(3)混合了TLS和非TLS内容的网站,有时甚至在同一网页内

(4)编程错误的网站会破坏TLS

删除混合内容

即使你加密了整个网站,仍然可能会从第三方网站中检索出未加密的一些资源。混合内容页面是通过TLS传输但是包含不通过TLS传输的资源(例如,JavaScript文件,图像,CSS文件)的页面。这样的页面非常不安全,这些不受保护的JavaScript资源会被中间人攻击所利用,例如劫持整个用户会话。

了解第三方服务

多数网站都是通过从另一台服务器下载的JavaScript代码来激活的第三方服务比如Google Analytics。包含第三方代码的网站会创建一个隐含的信任连接,有效地使对方完全控制你的网站。虽然第三方连接可能不是恶意的,但是这些服务背后的厂商可能被攻击。

安全设置Cookie

为了在保持性能的前提下,实现安全,网站需要TLS,而且所有的Cookie在创建时都被明确标记为安全的。否则就有可能被MITM攻击者利用,建议大家为你的Cookie添加加密完整性验证。

安全的HTTP压缩

CRIME攻击通过利用压缩过程中的漏洞,可解密部分安全连接。而禁用TLS压缩可防止这种攻击。另外要注意,HTTP压缩可能被TIME和BREACH攻击利用。与TLS压缩不同,HTTP压缩是必需的,不能关闭。因此,为了解决这些攻击,需要对应用程序代码进行更改。

配置使用HTTP严格传输安全(HSTS)

要激活HSTS保护,你可以向你的网站添加一个新的响应头。之后,支持HSTS的浏览器就会执行它。通过自动将所有明文链接转换为安全的链接,来实现了这一目标。

建议大家添加对HSTS的支持,这是为TLS安全性做出的最重要的保障。为了获得更好的安全效果,请考虑使用HSTS预加载,将HSTS配置嵌入到浏览器中。只要是在有效期内,浏览器都将直接强制性的发起HTTPS请求。

部署内容安全策略(CSP)

敏感内容作出处理

由于使用基于云的应用平台正在增加,所以为了让所有敏感内容只让接收方收到,你必须小心对敏感内容作出处理。

感谢各位的阅读,以上就是“SSL和TLS的部署方法”的内容了,经过本文的学习后,相信大家对SSL和TLS的部署方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SSL和TLS的部署方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SSL和TLS的部署方法

这篇文章主要讲解了“SSL和TLS的部署方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SSL和TLS的部署方法”吧!在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥
2023-06-17

自动部署ssl的方法是什么

自动部署 SSL(Secure Sockets Layer)的方法包括以下步骤:1. 获取 SSL 证书:通过证书颁发机构(CA)或使用 Let's Encrypt 等免费证书颁发服务获取 SSL 证书。证书通常包括公钥、私钥和证书链。2.
2023-09-05

Nginx部署SSL证书的方法是什么

这篇文章主要讲解了“Nginx部署SSL证书的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx部署SSL证书的方法是什么”吧!简单介绍Nginx是目前最新的高性能Web服务
2023-07-04

局域网部署ssl证书的方法是什么

局域网部署SSL证书的方法有多种,以下是其中几种常见的方法:1. 自签名证书:可以使用自签名证书来为局域网内的网站提供SSL加密。自签名证书是由自己创建的证书,不会被公认的证书颁发机构(CA)信任。这意味着在访问网站时,浏览器会弹出警告信息
2023-08-25

网站建设SSL证书部署的方法是什么

网站建设SSL证书部署的方法有以下几种:1. 自签名证书:自签名证书是由网站管理员自行签发的证书,适用于测试环境或个人网站。部署方法是使用openssl生成证书和私钥,然后将证书和私钥配置到网站服务器中。2. 第三方CA颁发的证书:这种证书
2023-09-21

CentOS 6.7下nginx SSL证书部署的方法是什么

CentOS 6.7下nginx SSL证书部署的方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在CentOS 6.7下nginx SSL证书部署的方
2023-06-05

Python和Pycharm环境部署的方法

这篇文章将为大家详细讲解有关Python和Pycharm环境部署的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、python下载安装下载安装python最新版本https://www.python
2023-06-15

Nginx部署SSL证书的过程

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本,这篇文章主要介绍了Nginx部署SSL证书的相关知识,需要的朋友可以参考下
2022-11-13

在Netdata中监控SSL/TLS证书到期的方法是什么

在Netdata中监控SSL/TLS证书到期的方法是使用SSL插件。该插件能够监控系统上的SSL证书并提供关于证书过期时间的警报和通知。要监控SSL证书到期,您可以按照以下步骤操作:安装Netdata的SSL插件。可以通过在终端中运行以下
在Netdata中监控SSL/TLS证书到期的方法是什么
2024-06-03

FastDFS4和Ubuntu12安装及部署方法

本篇内容主要讲解“FastDFS4和Ubuntu12安装及部署方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“FastDFS4和Ubuntu12安装及部署方法”吧!FastDFS4 + Ubu
2023-06-13

openstack安装和部署的方法是什么

OpenStack的安装和部署可以分为几个步骤。以下是一种常见的方法:准备环境:确保服务器满足最低要求,包括硬件、操作系统和网络。安装所需的依赖软件,如Python、MySQL、RabbitMQ等。安装和配置组件:下载并安装OpenSta
2023-10-25

tensorflow部署和使用的方法是什么

TensorFlow是一个开源的机器学习框架,可以用于构建、训练和部署深度学习模型。以下是TensorFlow部署和使用的一般步骤:安装TensorFlow:首先,您需要安装TensorFlow框架。您可以通过pip包管理工具在命令行中运行
tensorflow部署和使用的方法是什么
2024-03-12

MySQL SSL 连接的部署方式及兼容性分析

MySQL SSL 连接的部署方式及兼容性分析摘要:MySQL是一个广泛使用的关系型数据库管理系统,为了保证数据传输的安全性,我们可以通过SSL(Secure Sockets Layer)协议来加密MySQL连接。本文将介绍MySQL SS
2023-10-22

redis安装和部署的方法是什么

Redis的安装和部署方法如下:1. 安装依赖:Redis依赖于tcl库,需要先安装tcl库。在Debian或Ubuntu系统上,可以使用以下命令安装:sudo apt-get install tcl2. 下载Redis:可以从Redis官
2023-08-24

Nginx中SSL/TLS配置与安全性优化方法是什么

Nginx中SSL/TLS配置与安全性优化方法如下:使用最新版本的SSL/TLS协议:确保Nginx使用最新的SSL/TLS协议版本,如TLS 1.3,以确保最佳的安全性。配置强密码和加密算法:在SSL/TLS配置中,使用强密码和加密算法,
Nginx中SSL/TLS配置与安全性优化方法是什么
2024-05-06

linux下部署kodexplorer的方法

环境为xampp。 首先将解压完的目录复制到我们的xampp中的应用的目录中,默认为htdocs目录: sudo cp -r ~/kodexplorer3.21/ /opt/lampp/htdocs/ 注意,要将其中路径换成你的目录 然后,
2022-06-04

Springboot项目部署的方法

今天小编给大家分享一下Springboot项目部署的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 简介Springb
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录