
SSL握手过程是HTTPS协议中的一个核心部分,它允许客户端及服务器之间进行身份验证,并确保在数据传输的过程中双方的数据都得到了加密保护。在HTTPS连接成功建立之前,SSL握手过程必须在客户端及服务器之间完成。SSL握手过程是整个HTTPS传输过程的安全基石,确保了传输过程中双方的数据即便被黑客窃取也是加密的。
SSL(Secure Socket Layer)是为了解决互联网应用的保密、完整性、验证等问题而设计的安全协议。对于HTTPS协议来说,它是在HTTP协议的基础上加上一层SSL/TLS协议,确保荷载信息在传输过程中得到安全的保护,防止被中间人窃取、伪造、篡改或者重放攻击和其他一些安全问题。
在HTTPS协议连接建立的过程中,SSL握手是不可或缺的一环。SSL握手可以认为是客户端与服务器之间进行的安全协商过程,也是整个传输过程的安全基石。SSL握手完成后,客户端和服务器之间就可以开始加密传输数据。
SSL握手的过程主要包括以下几个步骤:
1. 客户端发送ClientHello消息
客户端在建立HTTPS连接后,首先发送一个ClientHello消息,该消息包含以下信息:
- SSL/TLS协议版本。
- 支持的加密算法集合。
- 随机数(client_random)。
- 按顺序列表打算访问的服务器名。
2. 服务端响应ServerHello消息
服务器收到客户端的ClientHello消息后,根据客户端发来的协议版本信息和加密算法列表选定适合的这两项,然后发送一个ServerHello消息给客户端,该消息包含以下信息:
- 选定的协议版本。
- 选定的加密算法。
- 随机数(server_random)。
3. 服务端发送证书
服务端向客户端发送自己的数字证书,以供客户端验证确认服务器的身份。证书通常以X.509格式存储。客户端使用数字证书中的公钥,检验这个数字证书是否是可以信赖的。
如果运营商对SSL进行中间人劫持,将会伪造一个数字证书发给客户端,在这个数字证书中,证书公钥对应的所有者会是服务器名,这也是窃取机密信息或者篡改数据的原因之一。
4. 客户端验证证书
客户端收到服务端发送的证书后,按照一定的规则验证证书的合法性,如果验证通过,则开始进行下一步的交互。
5. 客户端发送ClientKeyExchange消息
客戶端发送了一个包括重定向信息、余下消息长度和随机数据的信息。它使用发给服务器的随机数和盐值生成预主密钥,并将加密后的预主密钥发送给服务器。
6. 客户端发送ChangeCipherSpec消息
客户端向服务器发送一个消息告诉服务器自己已经提前完成了所有准备工作,可以开始使用加密通信协定了。
7. 服务端发送ChangeCipherSpec消息
服务器向客户端发送一个消息告诉客户端自己已经也完成了所有准备工作,可以开始使用加密通信协定了。
8. 客户端发送Finished消息
客户端向服务器发送一个Finished消息,该消息包含了一个经过计算的验证数据,用于验证握手过程中是否存在任何修改或篡改。
9. 服务端发送Finished消息
服务端向客户端发送一个Finished消息,该消息包含了一个经过计算的验证数据,用于验证握手过程中是否存在任何修改或篡改。
当以上几步完成后,SSL握手过程就完成了。此时,客户端和服务器之间的连接是加密的,所有传输的数据都受到加密保护。
SSL握手过程是HTTPS协议的重要组成部分,可以认为是客户端与服务器之间的安全协商过程。在SSL握手完成后,客户端和服务器之间可以开始安全传输数据。因此,SSL握手过程对于保障HTTPS连接的安全性具有至关重要的作用,完整性,隐私性和可靠性。
互亿无线竭力为您提供全面的SSL证书解决方案,保障您网站的安全与信任。我们呈现丰富多样的SSL证书类型,如DV(域名验证)、OV(组织验证)和EV(扩展验证)证书,满足您各类安全需求。我们提供全面的证书类型,涵盖单域名、多域名以及通配符证书。以便适应您的网站架构需求。我们与全球证书品牌,如Globalsign、DigiCert、GeoTrust、vTrus、COMODO等建立了密切的合作关系,确保您获得高品质的SSL证书。
![]() |
一站式SSL证书购买方案 |
![]() |
享受快速签发的SSL证书服务 |
![]() |
我们提供高性价比的SSL证书价格方案 |
![]() |
提供全方位的SSL证书服务 |
当客户端向https网站发起请求时,服务器会将SSL证书发送给客户端进行验证,SSL证书中包含一个公钥。验证成功后,客户端会生成一个随机串,用受访网站的SSL证书公钥加密,然后发送给网站服务器。
网站服务器收到加密的随机串后,会用自己的私钥解密,得到客户端生成的随机串。服务器使用这个随机串,开始与客户端对称加密通信,客户端使用随机串加密服务器发送的信息。
SSL证书同时使用不对称加密和对称加密,使用不对称加密将“钥匙”运输给服务器,确保“钥匙”的安全,服务器获得“钥匙”,使用“钥匙”加密信息,整个传输过程处于加密状态,有效保证信息的完整性、准确性和安全性。
SSL证书格式主要是公钥证书格式标准X.PEM和DER定义在509中、PKCS中定义PKCS#7和PKCS#12、Tomcat专用JKS。SSL证书的常见格式及转化方法如下:
常见的SSL证书格式
DER:DistinguishedencodingRules缩写,二进制编码的证书格式,相当于PEM格式的二进制版本,证书后缀有:.DER.CER.CRT,Java平台主要用于Java平台
PEM:PrivacyEnhancedMail的缩写,Base64编码的证书格式,是将Base64二进制版本编码后,以“—–BEGIN开头,“……”—–END结尾。证书的后缀有:.PEM.CER.CRT,主要用于Apache和Nginx。
PKCS#7:PKCS(Public-KeyCryptographyStandards)PKCS标准中的PKCS#7(CryptographicMessageSyntaxStandard)。它不包含私钥,单独存储证书链和用户证书。证书后缀如下:.P7B.P7C.SPC,主要用于Tomcat和Windowsserver。
PKCS#12:PKCS(Public-KeyCryptographyStandards)PKCS#12标准PKCS#(PersonalInformationExchangeSyntaxStandard)。它包含私钥、证书链、用户证书和密码。证书后缀有:.P12.PFX,主要用于Windowsserver。
JKS:JavaKeyStore缩写,包含私钥、证书链、用户证书,并设置密码。证书后缀为.jks。主要用于Tomcat。
SSL证书格式转换方法
Webtrust认证的CA机构颁发的证书通常只提供PEM格式或PKCS#7格式。如果需要其他证书格式,可以使用以下常用方法进行格式转换。
使用OpenSSL、Keytool转化
1.pem转换pfx
openssl pkcs12 -export -in 'test.pem' -inkey 'test.key' -out 'test.p12' -passout pass:123456
2.pem转换jks
openssl pkcs12 -export -in 'test.pem' -inkey 'test.key' -out 'test.p12' -passout pass:123456
keytool -importkeystore -srckeystore 'test.p12' -srcstoretype PKCS12 -destkeystore 'test.jks' -srcstorepass 123456 -deststorepass 123456
3.pfx转换pem
openssl pkcs12 -in test.p12 -passin pass:123456 -out test3.pem -nodes
4.pfx转换jks
keytool -importkeystore -srckeystore 'test.p12' -srcstoretype PKCS12 -destkeystore 'test.jks' -srcstorepass 123456 -deststorepass 123456
5.jks转换pem
keytool -importkeystore -srckeystore 'test.jks' -srcstoretype jks -destkeystore 'test.p12' -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456
openssl pkcs12 -in test.p12 -passin pass:123456 -out test3.pem -nodes
6.jks转化pfx
keytool -importkeystore -srckeystore 'test.jks' -srcstoretype jks -destkeystore 'test.p12' -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456SSL
1、首先,根据场景不同选择适合的适配于浏览器的SSL证书类型。
2、然后,在相关机构或公司的帮助下,完成SSL证书的申请。
3、接着,提交对应的CSR文件,经IP地址验证,等待审核通过。
4、最后,下载并安装SSL证书,当然,不同的服务器需要安装不同的步骤。
在线咨询
150,000家
企业客户
21年
行业经验
2V1
2对1客户支持