当前位置: 首页 > Linux

什么是ssl证书

时间:2023-04-07 00:47:29 Linux

什么是SSL证书SSL证书是一种加密技术,用于在WEB服务器、浏览器和客户端之间建立加密链接。通过配置和应用SSL证书启用HTTPS协议,保护互联网数据传输。每天,全球有数亿个网站使用HTTPS来确保数据安全和保护用户隐私。通过示例了解SSL服务器证书SSL证书的作用是为您的网站访问者和企业建立信任,并为网络安全加密私人数据。防止您的访客隐私信息(账号、地址、手机号码等)被地址栏安全锁劫持或窃取。地址栏顶部的“锁定”图标可让您的访问者放心地浏览网页,提高用户信任度并加快页面加载速度。改善用户体验并防止客户流失符合PCI标准。SSL是PCI合规性安全身份验证的关键组件。验证网站真实性,防止钓鱼网站,提高SEO排名。提高搜索排名顺序,为企业带来更多的访问量,防止网页被篡改。防止数据在运输过程中被篡改,保护用户体验,提升品牌形象。有利于企业获得更多的利润,在与竞争对手的竞争中占据主动。InstallandListRootCACertificateonLinuxPreventsman-in-the-middleattacksMan-in-the-MiddleAttack(“MITM攻击”)是指通信的两端创建独立的连接并交换它们接收到的数据,使得通信的两端都以为自己是通过私有连接直接与对方对话,但实际上整个会话完全被攻击者所控制。1、信息篡改:主机A与主机B通信时,由主机C作为转发的中介完成。A和B之间没有真正的直接通信,他们也不会意识到。这样,主机C就成了中间人,不仅可以窃听A和B之间的通信,还可以篡改通信信息再传递给双方。这样,C就可以向A、B传递恶意信息,达到自己的目的。2、信息窃取:A与B通信时,C并不主动“转发”他们,只是对其传输的数据进行备份,以获取用户网络活动,包括账号、密码等敏感信息。这是被动攻击,也很难发现。使用Openssl命令理解X509证书使用示例理解安全证书创建安全链接SSL证书如何工作浏览器和服务器通过SSL握手快速验证和交换密钥以实现安全加密1、服务器将其非对称公钥的副本发送给浏览器。2.浏览器创建一个对称会话密钥,用服务器的非对称公钥加密后发送给服务器。3、服务器使用自己的非对称私钥对加密后的会话密钥进行解密,得到对称会话密钥。4、服务器和浏览器之间建立了安全通道,所有传输的数据都通过会话密钥进行加密和解密。只有浏览器和服务器知道对称会话密钥,并且会话密钥仅用于该特定会话。如果浏览器第二天连接到同一台服务器,则会创建一个新的会话密钥。GetSSLservercertificatefromServerwithOpenssls_clientExploringSSLConnectionwithOpenSSLS_clientCommandSSL证书含义:认证服务:确认当前访问的网页是它声明的网页。数据完整性服务:确认彼此之间传输的数据未被修改。数据保密服务:即数据的加密,没有密钥的第三方无法知道数据的具体内容。不可否认服务:从技术上保证网站和用户对其行为的认可。例如:如果你在淘宝或其他地方消费,SSL证书会从技术上证明用户确实进行了消费,服务商确实收到了资金,??服务商确实支付了与资金相匹配的服务。公平服务:通过技术手段证明数据的有效性和正确性。安全锁显示所有安全连接都有一个挂锁图标,但其中一些可能还有一个绿色地址栏。只有当网站使用特定类型的SSL证书(扩展验证证书)时,才会出现绿色地址栏。该证书可用于证明该网站是由真实合法的公司运营的。浏览器通过在URL左侧显示公司名称来识别站点。当您看到绿色地址栏时,您就可以放松了——您很安全。绿色地址栏是无法欺骗的,是网站身份和扩展可靠性无可辩驳的证明提高网页加载速度(HTTP/2)我们使用客户端(浏览器)通过互联网,服务器响应请求,最终获取内容的过程是基于HTTP协议的。HTTP协议版本从HTTP/0.9、HTTP/1.0、HTTP/1.1发展到现在的HTTP/2。与HTTP/1.x相比,HTTP/2极大地提升了Web性能,提高了网页加载速度,实现了低延迟和高吞吐量。OpenSSL命令概述语法格式:openssl命令[command_opts][command_args]常用命令:version用于查看版本信息enc用于加解密cipherslistciphersuitesgenrsa用于生成私钥rsaRSA密钥管理(例如:fromprivatekeyextractpublickey)reqgeneratecertificatesigningrequest(CSR)crlcertificaterevocationlist(CRL)managementcaCA管理(如签名证书)dgstgenerateinformationsummaryrsautl用于完成RSA签名、验证、加解密功能passwdgenerationHashpasswordrandgeneratepseudo-randomnumberspeed用于测试加解密速度s_client通用SSL/TLS客户端测试工具X509X.509证书管理verifyX.509证书验证pkcs7PKCS7协议数据管理opensslreq用于生成self-signedcertificates申请证书SSL常用于身份验证、数据加密等应用。要使用SSL,我们的密码有自己的证书。数字证书一般需要到专业的认证公司(如VeriSign)申请,都是收费的。在某些情况下,我们只想使用加密数据通信而不关心认证。这时候我们就可以自己制作证书了。证书有两种方式,一种是SelfSigned,另一种是自己做一个CA,然后由这个CA颁发我们需要的证书。下面介绍这两种方法。GenerateSelfSignedcertificate#生成一个key,你的私钥,openssl会提示你输入密码,可以输入,也可以不输入,#输入的话每次使用这个都要输入密码以后的key,为了安全起见,应该还是有密码保护的opensslgenrsa-des3-outselfsign.key4096使用上面生成的key,生成证书签名请求(CSR)如果你的key有密码保护,openssl会先问你密码,然后问你一系列的问题,其中CommonName(CN)是最重要的,它代表了你的证书应该代表的目标,如果你为网站申请证书,你需要添加您的域名。opensslreq-new-keyselfsign.key-outselfsign.csrGenerateSelfsigncertificateselfsign.crt就是我们生成的证书opensslx509-req-days365-inselfsign.csr-signkeyselfsign.key-outselfsign.crtCreateselfsignedcertificatewithOpensslCommand#另一种相对简单的方法是使用以下命令生成密钥和证书opensslreq-x509-nodes-days365-newkeyrsa:2048-keyoutprivateKey.key-outcertificate.crt4检查SSL证书过期的方法date主要命令选项:-new:生成证书请求文件的说明-x509:生成自签名证书的说明-key:指定一个已有的秘钥文件生成秘钥请求,只与generatecertificaterequest选项配合-新的。-newkey:-newkey与-key互斥,-newkey表示在生成证书请求或自签名证书时自动生成一个密钥,然后生成的密钥名称由-keyout参数指定。[-newkeyrsa:bits]指定newkey选项时,后面指定rsa:bits表示生成rsa密钥,位数由bits指定。如果未指定选项-key和-newkey,则默认自动生成密钥。-out:-out指定生成的证书请求或自签名证书的名称-config:ubuntu上默认参数为/etc/ssl/openssl.cnf,可以使用-config指定特殊路径的配置文件-nodes:如果指定了-newkey,则秘钥是自动生成的,所以-nodes选项表示生成的秘钥不需要加密,即不需要进入passphase。-text:以文本方式读取证书信息-batch:指定非交互方式,直接读取config文件的配置参数,或者使用默认参数值查看证书查看KEY信息opensslrsa-noout-text-inmyserver.key查看CSR信息opensslreq-noout-text-inmyserver.csr查看证书信息opensslx509-noout-text-inca.crt验证证书会提示selfsignedopensslverifyselfsign。crtGetSSLservercertificatefromServerwithOpenssls_clientExploringUnabletogetLocalIssuerCertificate因为myserver.crt是由ca.crt颁发的,所以会验证成功opensslverify-CAfileca.crtmyserver。crtUnderstandingSSLservercertificateswithExamplesExploringSSLcipherwithExamples不同格式证书的转换一般证书有三种格式:PEM(.pem)由前面的命令以这种格式生成,DER(.cer.der)Windows上常见的PKCS12文件(.pfx.p12)Mac上常见的PEM转换为DERopensslx509-outformder-inmyserver.crt-outmyserver.derDER转换为PEMopensslx509-informder-inmyserver.cer-outmyserver.pemPEM转换为PKCSopensslpkcs12-export-outmyserver.pfx-inkeymyserver.key-inmyserver.crt-certfileca.crtPKCStoPEMopensslpkcs12-inmyserver.pfx-outmyserver2.pem-nodesConvertingCERCRTDERPEMPFXCertificatewithOpensslopenssl测试证书CheckSSLCertificatewithOpenSSLOpensslprovides可以使用简单的客户端和服务器工具来模拟SSL连接以进行测试连接远程服务器openssls_client-connectwww.google.com.hk:443模拟HTTPS服务可以返回Openssl相关信息-accept用于指定监听端口号-cert-key用于指定密钥和证书提供服务openssls_server-accept443-certmyserver.crt-keymyserver.key-wwwExploringSSLConnectionwithOpenSSLS_client命令可以将密钥和证书写入同一个文件catmyserver.crtmyserver.key>myserver.pem时只提供一个using参数都可以openssls_server-accept443-certmyserver.pem-www可以保存服务器证书openssls_client-connectwww.google.com.hk:443remoteserver.pem转为DER文件,windows下可以直接查看opensslx509-outformder-inremoteserver.pem-outremoteserver.cer什么是证书链?浏览器如何识别可信网站的SSL证书?实际上,当客户端访问服务器时,浏览器会查看SSL证书,并对SSL证书的真实性进行快速验证。浏览器在验证SSL证书认证中的动作是基于证书链的内容。那么什么是证书链呢?在获得SSL证书之前,用户必须首先生成证书签名请求(CSR)和私钥。在最简单的迭代中,用户将生成的CSR发送给证书颁发机构,然后证书颁发机构使用CA根证书的私钥签署用户的SSL证书,并将SSL证书发回给用户。当浏览器检测到SSL证书时,它会查看该证书是否由其受信任的根证书之一签名(使用根的私钥签名)。由于浏览器信任根,因此浏览器也信任由根证书签名的任何证书。证书链由两个链接组成——信任锚(CA证书)链接和签名证书链接。信任锚证书CA链接可以签署中间证书;中间证书的所有者可以用自己的私钥签署另一个证书。两者结合形成证书链。理解SSL证书链SSL和TLS的区别SSL:(SecureSocketLayer,安全套接字层),介于面向可靠连接的网络层协议和应用层协议之间的一个协议层。SSL通过相互认证、数字签名保证完整性、加密保证隐私来实现客户端和服务器之间的安全通信。该协议由两层组成:SSL记录协议和SSL握手协议。TLS:(TransportLayerSecurity,传输层安全协议),用于在两个应用程序之间提供机密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。SSL与TLS以及如何在Linux中检查TLS版本什么是端口443?您可以将端口443理解为用于保护Web浏览器通信或HTTPS服务的Web浏览端口。它将通过安全端口提供加密和传输。因此,您通过此连接传输的数据可以高度抵抗第三方的窃听和中断。此外,您可以放心地验证远程连接的服务器的身份。建立连接后,网络浏览器会在窗口的状态区显示挂锁、未破解的钥匙等标志,告知您安全连接。虽然443端口是HTTPS通信的标准端口,但是HTTPS的443端口也可以支持HTTP站点。如果站点使用HTTPS但无法通过端口443加载,则处理所有未加密HTTPWeb流量的端口80会介入以加载启用HTTPS的网站。通过示例探索SSL端口