一、什么是SSL/TLS和HTTPS
SSL
SSL是Secure Sockets Layer的缩写,代表安全套接字层,简而言之,它是保持互联网连接安全的标准技术,保护两个系统之间发送的任何敏感数据,防止犯罪分子读取和修改传输的任何信息,包括潜在的个人详细信息。这两个系统可以是服务器和客户机(例如,购物网站和浏览器),也可以是服务器到服务器(例如,具有个人可识别信息或工资单信息的应用程序)。
它通过确保在用户和站点之间或两个系统之间传输的任何数据都无法读取来做到这一点。它使用加密算法对传输中的数据进行加密,防止黑客在数据通过连接发送时读取数据。这些信息可能是任何敏感或个人信息,包括信用卡号和其他财务信息、姓名和地址。
TLS
TLS是Transport Layer Security的缩写(传输层安全)只是SSL的更新,更安全的版本。当您购买SSL证书时,实际上您购买的是带有ECC、RSA或DSA加密选项的最新TLS证书。
HTTPS
当网站受SSL证书保护时,URL中会显示HTTPS (Hyper Text Transfer Protocol Secure)。证书的详细信息,包括颁发机构和网站所有者的公司名称,可以通过点击浏览器栏上的锁定符号来查看。
SSL(安全套接字层)和TLS(传输层安全)是流行的加密协议,用于为web通信注入完整性、安全性和抵御未经授权篡改的弹性。PKI使用TLS协议在互联网上建立客户端和服务器之间的安全连接,确保传递的信息是加密的,不能被外部第三方读取。
①注意:SSL是TLS的前身,1999年引入TLS后,由于后者改进了安全特性,世界开始远离SSL。TLS目前处于第三次迭代,称为TLS 1.3。然而,SSL通常继续被用作这两种协议的代名词(例如,“SSL证书”一词被广泛使用,但SSL已被完全弃用,没有任何现代系统再支持SSL)。
②受TLS保护的连接将通过在web浏览器的地址栏中显示HTTPS(超文本传输协议安全)来指示其安全状态,而不仅仅是HTTP。
③虽然TLS主要用于保护客户机-服务器连接,但它也用于保护电子邮件、VoIP呼叫和其他连接。
二、SSL/TLS是如何工作的?
SSL/TLS是用于在两点之间加密信息的协议。它通常在服务器和客户机之间进行,但有时也需要服务器到服务器和客户机到客户机的加密。本文将只关注服务器和客户机之间的协商。
- 为了进行SSL/TLS协商,系统管理员必须准备至少2个文件:“私钥”和“证书”。当从证书颁发机构请求时,必须创建一个额外的文件。该文件称为证书签名请求,由私钥生成。生成文件的过程取决于将使用这些文件进行加密的软件。
- 请注意,尽管从证书颁发机构请求的证书本质上受到大多数客户机的信任,但是可能需要在服务器上安装称为中间证书颁发机构证书和证书颁发机构根证书的其他证书。这同样依赖于服务器软件。通常不需要在客户机应用程序或浏览器上安装中间和根CA文件。
- 一旦文件准备好并正确安装,只需通过使用安全协议启动SSL/TLS协商。在浏览器应用程序上,它通常是https://www.xxxxx.com。
TLS Handshake
当两个利用TLS的系统试图连接时,每个系统都将努力验证另一个系统是否支持TLS。这个过程被称为TLS握手,在这里双方决定将在过程中使用的TLS版本,加密算法,密码套件等。一旦TLS握手成功执行,两个系统就开始在一条安全线路上交换数据。
注意:在理解TLS之前,了解PKI及其组成部分(如密钥)的工作知识可能是有用的。现在,您只需要知道加密和解密是在称为密钥的加密设备的帮助下进行的。在公钥加密中,公钥用于加密信息,而秘密私钥可用于解密该信息。由于涉及到两个不同的密钥,这种技术被称为“asymmetric cryptography/非对称加密”,这正好与“对称加密”相反,在“对称加密”中,一个密钥可以同时执行加密和解密。
每次TLS握手都遵循相同的基本步骤。为了简单起见,让我们假设一个浏览器(一个客户端)正试图连接到一个服务器,这台服务器托管了一个网站:
- 客户端请求服务器打开一条安全线路,服务器通过显示它兼容的TLS版本和密码套件列表来响应。一旦他们同意在会话中使用通用的方式,他们就开始握手。
- 服务器将其公钥的副本(附在其数字证书上)发送给客户端。客户端检查证书以验证服务器是合法的,如果是合法的,则会话继续进行。
- 客户端使用服务器的公钥和私钥来加密“会话密钥”,该密钥将被双方用于加密和解密此特定会话中的信息。一旦连接被终止,会话密钥就会失效。
- 双方通过相互发送加密消息来测试连接。如果另一方可以使用会话密钥解密它们,则连接已成功保护。
三、什么是SSL/TLS证书?
一般来说,数字证书是由受信任的权威机构“签名”的数字文档,并充当公开密钥所有权的文档。通过扩展,它们用于验证服务器或客户端的合法性。但是,有几种类型的数字证书可用。x项。509证书’用于区分SSL/TLS证书与其他类型的数字证书(例如代码签名证书)。
数字证书是公钥加密领域的重要组成部分。它们附在公钥上,证明公钥的持有者实际上是合法的所有者。这是因为数字证书是由称为“证书颁发机构”(简称ca)的机构签名、销售和颁发的,这些机构是负责验证请求证书的任何人的真实性的受信任机构。由于主要的操作系统和浏览器都有内置由这些ca组成的“信任存储库”,因此浏览器将自动信任由主要ca颁发的证书。
证书是使网站容易被用户识别为可信、安全页面的关键。如果正确安装了证书,那么安装了有效SSL/TLS证书的网页将在搜索栏中显示网站名称前面的“https”。在某些浏览器中,使用有效的扩展验证证书(一种TLS证书)将导致HTTPS挂锁变为绿色,为访问者提供他们在合法网站上的额外保证。
注意:由CA颁发的用于保护使用TLS的web连接的证书被称为TLS证书——这个术语与“SSL证书”互换使用,因为这个术语是在SSL成为主流使用时创造的。
TLS/SSL证书有哪些功能?
TLS/SSL证书是PKI的基本概念,在网络通信中起到安全检查点的作用。本质上,这些证书将公钥绑定到相应的所有者,该所有者可以是服务器、域或主机。在绑定之前,必须验证密钥是否属于声称的所有者,其责任在于颁发这些证书的证书颁发机构(CA)。一旦被请求的实体(比如网站)的真实性得到验证,浏览器就会使用该网站的公钥来发起与它的安全连接。
TLS/SSL证书的需求是什么?
TLS/SSL证书为您的网站提供了真实性印章。HTTPS挂锁让你的访问者知道你的网站是安全的,他们可能与它共享的所有信息都是私人的和加密的。当你的网站处理机密用户信息,如登录名和密码、财务信息、个人数据等时,这一点尤为重要。除了安全方面,拥有TLS/SSL证书也有助于SEO,使你的网站在搜索中排名更高,因为它们被认为比HTTP网站更安全。
四、TLS/SSL证书类型
TLS/SSL证书分为两类:
①基于需要支持的域或子域的数量
②基于所需的保证级别
基于要支持的域或子域的数量:
- 单一域或单一名称:一个证书只保护一个域或单个子域。例如,如果您购买证书来保护( www.abc.com ),则不能使用相同的证书来保护其子域( help.abc.com )。
- 通配符:一个证书保护单个域及其下的所有子域。带有通配符证书的网站在域名前有一个星号()和一个句号。例如,由通配符证书保护的域表示为( https://.abc.com ),其中的“*”可以是( abc.com )的任何子域,如( help.abc.com ), ( blog.abc.com )等。
- 多域或主题替代名称(SAN) :一个证书保护多个域和子域。如。用于保护( www.abc.com )的SAN证书可以保护( www.abc.org )、( www.abc.com.cn )、( blog.abc.com )等。
基于所需的保证级别:
- 域验证(DV) DV TLS/SSL证书是最容易获得的。具有DV TLS/SSL证书的网站的URL将只有HTTPS和挂锁,而不是企业名称。因此,访问者没有办法检查网站是否真的属于他们正在寻找的业务,尽管有安全标志。DV TLS/SSL证书可以在几分钟内获得,无需业务验证。
- 组织验证(OV) OV TLS/SSL证书由处理敏感客户数据的组织使用。拥有OV TLS/SSL证书的网站在地址栏上与HTTPS和挂锁一起显示其业务名称。由于这些证书提供了很高的保证,因此只有在经过ca的适当审查后才能提供它们,而且价格更高,并且可能需要几天的时间才能颁发。请注意,个人无法获得此类证书,只有组织和企业才能获得。
- 扩展验证(EV) EV TLS/SSL证书提供最高级别的安全性,也是最难获得的。要获得EV证书,组织必须经过CA的严格审查,其中包括验证业务的物理存在。具有EV TLS/SSL证书的网站以绿色显示其组织名称、国家代码和挂锁。这些证书非常昂贵,可能需要3天的时间才能签发。这种类型的证书也只适用于组织和企业。
五、什么是自签名证书?
除了由CA签名的TLS/SSL证书之外,还有一种证书称为自签名证书。自签名证书是一种数字证书,它不是由公开可信的证书颁发机构(CA)签名的。这可以包括SSL/TLS证书、代码签名证书和S/MIME证书。这些证书由服务器所有者自己签名。虽然它们提供与CA颁发的证书相同级别的加密,但它们通常不受客户端的信任,因为客户端被配置为只识别由已知CA颁发的证书。即使在自签名证书服务器和浏览器之间建立了连接,服务器的所有者仍然是匿名的。该证书未经第三方验证,通常用于低风险的内部网络或软件开发阶段,用于测试或故障排除目的,而不是公开使用。
自签名证书的主要优点和缺点
自签名SSL证书的优点:
- 自签名SSL证书是免费的。
- 它们适用于内部(内部网)站点或测试环境。
- 它们使用与任何其他付费SSL证书相同的密码对传入和传出数据进行加密。
自签名SSL证书的缺点:
- 没有浏览器和操作系统信任自签名证书。
- 浏览器不会在域名前显示挂锁符号和HTTPS等可视化的信任指标。
- 你的网站访问者必须通过一个带有错误信息的安全警告页面,例如 “error_self_signed_cert” 或 “sec_error_untrusted_issuer” 或 “err_cert_authority_invalid”来访问你的内容。这意味着用户必须手动点击“接受风险”按钮才能打开您的网站。
- 警告页面会极大地影响你网站的流量。如果访问者在你的网站上感到不安全,他们一定会离开。这意味着他们更有可能访问竞争对手的网站,你可能会失去生意。
- 当一个网站被标记为“不安全”时,人们会对分享他们的个人信息(如信用卡号、银行详细信息、密码、出生日期、电话号码、电子邮件地址、实际地址等)感到谨慎。
- 攻击者很容易制作自签名证书来执行中间人(MitM)攻击。因此,一旦用户绕过安全警告,他们就会面临数据盗窃和网络攻击。
- 对于提供付费订阅/会员资格、处理用户税务信息或健康记录、接受捐赠/慈善或在线筹款或拥有电子商务设施的网站来说,自签名证书风险很高。
六、什么是证书签名请求(CSR)?
CSR的定义
证书签名请求(CSR)是获得您自己的SSL/TLS证书的第一步。CSR是在您计划安装证书的同一台服务器上生成的,它包含证书颁发机构(CA)将用于创建证书的信息(例如,通用名称、组织、国家)。它还包含将包含在证书中的公钥,并使用相应的私钥进行签名。我们将在下面详细介绍这些键的作用。
CSR包括哪些信息?
CA将使用来自CSR的数据来构建SSL证书。关键信息包括以下内容。
1.关于您的业务和您试图使用SSL的网站的信息,包括:通用名称(CN)、组织(O)、组织单位(OU)、城市/地区(L)、州/县/地区(S)、国家(C),电子邮件地址。
2.将包含在证书中的公钥。SSL使用公钥加密(或非对称)在SSL会话期间加密传输的数据。公钥用于加密,对应的私钥用于解密。
3.关于密钥类型和长度的信息。最常见的密钥大小是RSA 2048,一些CA机构例如GlobalSign,支持更大的密钥大小(例如RSA 4096+)或ECC密钥。
获取和应用SSL证书的通常过程:
1.创建CSR。
2.向CA提交CSR。
3.CA将CSR与数字签名绑定,并返回证书。
4.将证书应用到您的域。
SSL相关的重要术语:
七、常用的CA管理工具
OpenSSL(命令演示)
1.生成CSR和私钥:
# openssl req -out CSR.csr -new -newkey rsa:2048 -keyout privatekey.key
2.生成一个4096位的CSR,可以用rsa:4096替换rsa:2048语法.
# openssl req -out CSR.csr -new -newkey rsa:4096 -keyout privatekey.key
3.从XCC/TSM下载CSR后生成证书(这里csr_client.der为CSR文件)
# openssl genrsa -aes128 -out self.signed.key 2048
# self.signed.key csr_client.der (now two files ready here)
# openssl req -new -key self.signed.key -x509 -sha256 -days 1095 -out self.signed.crt (generate root CA)
# openssl req -in csr_client.der -inform DER -out csr_client.pem -outform PEM (Convert CSR to PEM format)
# openssl x509 -sha256 -req -days 365 -in csr_client.pem -CA self.signed.crt -CAkey self.signed.key -CAcreateserial -out self-signed.der -outform DER (generate certificate file)
这里,self-signed.der文件就是新生成并签名的证书。将此.der文件导入XCC或TSM。
certreq and certutil
- certreq命令可用于从证书颁发机构(CA)请求证书、从CA检索对先前请求的响应、从.inf文件创建新请求、接受并安装对请求的响应、从现有CA证书或请求构造交叉认证或合格从属请求,以及对交叉认证或合格从属请求进行签名。
- Certutil.exe是一个命令行程序,作为证书服务的一部分安装。certutil.exe用于转储和显示CA (Certificate authority)配置信息、配置证书服务、备份和恢复CA组件、验证证书、密钥对和证书链。
访问微软网站了解更多
GUI形式的CA管理工具
- gnoMint允许任何人运行一个证书颁发机构,为任何目的创建证书:电子邮件签名和/或加密;通过web、vpn或其他协议进行TLS认证;它的开发是由于缺乏一个“刚刚工作”的CA软件:通过开源命令行实用程序从零开始创建CA是可能的,但要记住所有必要的参数是不舒服的。
- TinyCA是用Perl/Gtk编写的一个简单的图形用户界面,用于管理一个小型的证书颁发机构。TinyCA作为openssl的前端。
- XCA(X -证书和密钥管理)用于创建和管理X.509证书、证书请求、RSA、DSA和EC私钥、智能卡和crl。实现了CA所需的一切。所有ca都可以递归地对子ca签名。这些证书链清晰地显示出来。为了便于在全公司范围内使用,有可用于生成证书或请求的可定制模板。
八、XCC自签名证书配置
首先,在没有配置SSL证书的时候,这是我们在登录BMC时经常看到的界面。
1.从XCC Web界面生成CSR,BMC Configuration – Security SSL Certificate Management – Generate CSR。选择正确的密钥算法与根CA相同,“通用名称(Common Name)”使用“服务器SN”。
2.从XCC Web下载CSR,BMC Configuration – Security SSL Certificate Management – Download CSR。选择“DER”格式下载CSR文件或者复制原始数据。
3.这里我们使用XCA进行CA管理,根CA已经生成。点击“Certificate signing requests” – “Import”,J302TN40是新的导入CSR。
4.点击“Certificates” –“New Certificate”
5.选择“Sing this CSR”,选择要签名的CSR文件。
6.选择用于对csr文件签名的根CA。
7.选择模板,对于XCC/TSM,默认的TLS_Server是可以的,如果你有自己的模板,确保它适用于https。
8.Apply all and OK。
9.导出证书,选择DER格式
10.返回XCC,导入证书文件。
11.新的SSL证书将自动激活。在旧版本的XCC上,需要重新启动XCC才能激活新的SSL证书。
12.关闭并重新打开浏览器,登录到XCC,它将显示链接是安全的挂锁。
九、TSM自签名证书配置
1.从TSM Web生成CSR,Home – Settings – SSL Settings。以TSM的IP地址为CN,密钥算法与根CA保持一致。
2.从TSM Web下载CSR,Home – Settings – SSL Settings。选择“DER”格式下载CSR文件或者复制原始数据。
3.生成并导出证书,与前面所讲的XCC一样。特殊要求:点击“扩展”选项卡,然后点击“编辑”X509v3主题备选名称。添加IP地址修改后请确保X509v3主题替代名称如下所示。
4.转换证书文件格式,使用openssl将cer文件转换为der文件。
# openssl x509 –in 10.245.54.168.cer –inform DER –out 10.245.54.168.pem –outform PEM
# openssl x509 –in 10.245.54.168.pem –out 10.245.54.168 –outform DER
5.将证书导入TSM,Home – Settings – SSL Settings。上传证书文件到TSM后,退出TSM并关闭浏览器。重新打开浏览器并再次登录到TSM。
6.现在浏览器将显示连接链接是安全的挂锁。