SSL服务器证书.docx
- 文档编号:30640667
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:13
- 大小:432KB
SSL服务器证书.docx
《SSL服务器证书.docx》由会员分享,可在线阅读,更多相关《SSL服务器证书.docx(13页珍藏版)》请在冰豆网上搜索。
SSL服务器证书
1SSL简介
在网络上,信息在由源主机到达目的主机的传输过程中会经过其他计算机。
一般情况下,中间的计算机不会监听路过的信息。
但在访问网上银行或者进行信用卡交易时,网络上的信息有可能被非法分子监听,从而导致个人隐私的泄露。
由于Internet和Internet体系结构存在一些安全漏洞,总会有某些人能够截获并替换用户发出的原始信息。
随着电子商务的不断发展,人们对信息安全的要求也越来越高,于是Netscape公司提出了SSL(ServerSocketLayer)协议,旨在达到在开发网络(Internet)上安全、保密地传输信息的目的,这种协议在Web上获得了广泛的应用。
1.1SSL简介
SSL(ServerSocketLayer)是一种保证网络上的两个节点进行安全通信的协议。
IETF(InternetEngineeringTaskForce)组织对SSL作了标准化,制订了RFC2246规范,并将其称为TLS(TransportLayerSecurity)。
从技术上讲,目前TLS1.0与TLS3.0的差别非常微小。
如下表所示,SSL和TLS建立在TCP/IP协议的基础上,一些应用层协议,如HTTP和IMAP协议都可以采用SSL来保证通信的安全。
建立在SSL协议上的HTTP被称为HTTPS协议。
HTTP使用的默认端口为80,而HTTPS使用的默认端口为443.
协 议 层
协 议
应用层
HTTP、IMAP、NNTP、Telnet、FTP等
安全套接字层
SSL、TLS
传输层
TCP
网络层
IP
当用户在网上商店购物时输入信用卡信息,进行网上支付交易时,存在以下不安全因素:
∙用户的信用卡信息在网络上传输时有可能被他人截获。
∙用户发送的信息在网络上传输时可能被非法篡改,数据完整性被破坏。
∙用户正在访问的Web站点是个非法站点,专门从事网上欺诈活动,比如骗取客户的资金。
∙非法用户访问一个合法的Web站点,该非法用户试图窃取Web站点的机密信息。
∙其它的可能存在的不安全因素。
SSL采用加密技术来实现安全通信,保证通信数据的保密性和完整性,并且保证通信双方可以验证对方的身份。
1.2加密通信
当客户与服务器进行通信时,通信数据有可能被网络上的其它计算机非法监听,SSL使用加密技术实现会话双方信息的安全传递。
加密技术的基本原理是:
数据从一端发送到另一端时,发送者先对数据加密,然后再把它发送给接收者。
这样,在网络上传输的是经过加密的数据。
如果有人在网络上非法截获了这些数据,由于没有解密的密钥,就无法获得真正的原始数据。
接收者收到加密的数据后,先对数据进行解密,然后再处理。
客户机和服务器的加密通信需要在两端同时进行。
下图显示了采用SSL加密的通信过程:
基于SSL的加密通信
1.3安全证书
除了对数据加密通信,SSL还采用了身份认证机制,确保通信双方都可以验证对方的真实身份。
它和现时日常生活中我们使用身份证来证明自己的身份很相似。
比如你到银行去取钱,你自称自己叫张三,如何让银行相信你的真实身份呢?
最有效的方法就是出示你的身份证。
每个人都拥有唯一的身份证,这个身份证上记录了你的真实信息,身份证由国家权威机构颁发,不允许伪造。
在身份证不能被别人假冒复制的前提下,只要你出示身份证,就可以证明你的确是你自称的那个人。
个人可以通过身份证来证明自己的身份,对于一个单位,比如商场,可以通过营业执照来表明身份,营业执照也是由国家权威机构颁发,不允许伪造,它保证了营业执照的可信性。
SSL通过安全证书来证明客户或服务器的身份。
当客户通过安全的连接和服务器通信时,服务器会先向客户出示它的安全证书,这个证书声明该服务器是安全的,而且的确是这个服务器。
每一个证书在全球范围内都是唯一的,其他非法服务器无法假冒原始服务器的身份。
可以把安全证书比做电子身份证。
获取安全证书是一件麻烦的事情。
一些服务器会向客户出示自己的安全证书,但另一方面,为了扩大客户群并且便于客户访问,许多服务器不要求客户出示安全证书。
在某些情况下,服务器也会要求客户出示安全证书,以便核实客户的身份,这主要用于B2B(BusinesstoBusiness)事务中。
获取安全证书有两种方式,一种方式是从权威机构购买证书,还有一种方式是创建自我签名的证书。
1.3.1从权威机构获得证书
安全证书可以有效地保证通信双方身份的可信性。
安全证书采用加密技术制作而成,他人几乎无法伪造。
安全证书由国际权威的证书机构(CertificateAuthority,CA)如VeriSign()和Thawte()颁发,它们保证了证书的可信性。
申请安全证书时,必须支付一定的费用。
一个安全证书只对一个IP地址有效,如果用户的系统环境中有多个IP,那么必须为每个IP地址购买安全证书。
1.3.2创建自我签名证书
在某些场合,通信双方只关心数据在网络上可以安全传输,并不需要对对方进行身份验证,在这种情况下,可以创建自我签名(self-assign)的证书,比如通过SUN公司提供的keytool工具就可以创建这样的证书。
这样证书就像用户自己制作的名片,缺乏权威性,达不到身份认证的目的。
当你向对方递交你的名片,声称自己是某个大公司的老总,信不信只能由对方自己去判断。
既然自我签名证书不能有效地证明自己的身份,那么有何意义呢?
在技术上,无论是从权威机构获得的证书,还是自己制作的证书,采用的加密技术都是一样的,使用这些证书,都可以实现安全的加密通信。
2SSL握手通信过程
安全证书既包含了用于加密数据的密钥,又包含了用于证实身份的数字签名。
安全证书采用公钥加密技术。
公钥加密是指使用一对非对称的密钥进行加密或解密。
每一对密钥由公钥和私钥组成。
公钥被广泛发布。
私钥是隐秘的,不公开。
用公钥加密的数据只能够被私钥解密。
反过来,使用私钥加密的数据只能被公钥解密。
这个非对称的特性使得公钥加密很有用。
在安全证书中包含这一对非对称的密钥。
只有安全证书的所有者才知道私钥。
当通信方A将自己的安全证书发送给通信方B时,实际上发给通信方B的是公开密钥,接着通信方B可以向通信方A发送用公钥加密的数据,只有通信方A才能使用私钥对数据进行解密,从而获得通信方B发送的原始数据。
安全证书中的数字签名部分是通信方A的电子身份证。
数字签名告诉通信方B该信息确实由通信方A发出,不是伪造的,也没有被篡改。
客户与服务器通信时,首先要进行SSL握手,SSL握手主要完成以下任务:
∙协商使用的加密套件。
加密套件中包括一组加密参数,这些参数指定了加密算法和密钥的长度等信息。
∙验证对方的身份,此操作是可选的。
∙确定使用的加密算法。
SSL握手过程采用非对称加密方法传递数据,由此来建立一个安全的SSL会话。
SSL握手完成后,通信双方将采用对称加密方法传递实际的应用数据。
以下是SSL握手的具体流程:
(1)客户将自己的SSL版本号、加密参数、与SSL会话有关的数据及其他一些必要信息发送到服务器。
(2)服务器将自己的SSL版本号、加密参数、与SSL会话有关的数据及其他一些必要信息发送给客户,同时发给客户的还有服务器的证书。
如果服务器需要验证客户身份,服务器还会发出要求客户提供安全证书的请求。
(3)客户端验证服务器证书,如果验证失败,就提示不能建立SSL连接。
如果成功,那么继续下一步骤。
(4)客户端为本次SSL会话生成预备主密码(pre-mastersecret),并将其用服务器公钥加密后发送给服务器。
(5)如果服务器要求验证客户身份,客户端还要对另外一些数据签名后,将其与客户端证书一起发送给服务器。
(6)如果服务器要求验证客户身份,则检查签署客户证书的CA(CertificateAuthority,证书机构)是否可信。
如果不在信任列表中,结束本次会话。
如果检查通过,服务器用自己的私钥解密收到的预备主密码(pre-mastersecret),并用它通过某些算法生成本次会话的主密码(mastersecret)。
(7)客户端与服务器端均使用此主密码(mastersecret)生成此次会话的会话密钥(对称密钥)。
在双方SSL握手结束后传递任何消息均使用此会话密钥。
这样做的主要原因是对称加密比非对称加密的运算量要低一个数量级以上,能够显著提高双方会话时的运算速度。
(8)客户端通知服务器此后发送的消息都使用这个会话密钥进行加密,并通知服务器客户端已经完成本次SSL握手。
(9)服务器通知客户端此后发送的消息都使用这个会话密钥进行加密,并通知客户端服务器已经完成本次SSL握手。
(10)本次握手过程结束,SSL会话已经建立。
在接下来的会话过程中,双方使用同一个会话密钥分别对发送和接收的信息进行加密和解密。
3TomcatSSL配置及TomcatCA证书安装
Tomcat既可以作为独立的Servlet容器,也可以作为其他HTTP服务器附加的Servlet容器。
如果Tomcat在非独立模式下工作,通常不必配置SSL,由它从属的HTTP服务器来实现和客户的SSL通信。
Tomcat和HTTP服务器之间的通信无须采用加密机制,HTTP服务器将解密后的数据传给Tomcat,并把Tomcat发来的数据加密后传给客户。
如果Tomcat作为独立的JavaWeb服务器,则可以根据安全需要,为Tomcat配置SSL,它包含以下两个步骤:
(1) 准备安全证书。
(2) 配置Tomcat的SSL连接器(Connector)。
3.1准备安全证书
获得安全证书有两种方式:
一种方式是到权威机构购买,还有一种方式是创建自我签名的证书。
这里就介绍第二种获取证书的方式。
SUN公司提供了制作证书的工具keytool。
在JDK1.4以后的版本中都包含了这一工具,它的位置为
此外,也可以到SUN的网站上下载,下载地址如下:
通过keytool工具创建证书的命令为:
1.keytool -genkeypair -alias "tomcat" -keyalg "RSA"
以上命令将生产一对非对称密钥和自我签名的证书,这个命令中几个参数的意思如下:
∙-genkeypair:
生成一对非对称密钥。
∙-alias:
指定密钥对的别名,该别名是公开的。
∙-keyalg:
指定加密算法,本例中的采用通用的RAS加密算法
首先会提示输入keystore的密码,这里我输入的密码是sunchis。
然后提示输入个人信息,如姓名、组织单位和所在城市等,只要输入真实信息即可。
接着会提示输入信息是否正确,输入“y”表示信息正确。
最后要求输入
keytool生成证书的过程
以上命令将在操作系统的用户目录下生成名为“.keystore”的文件。
我当前登录到操作系统的用户名是XuLiang,那么在Wnidows下,文件的位置为:
C:
\DocumentsandSettings\XuLiang\.keystore
证书存放的路径
在Linux下,该文件的位置为:
home\XuLiang\.keystore
另外,如果希望生成的keystore文件存放在其他目录中,可以再keytool命令中加入-keystore参数,这个参数用来指定keystore文件的存放位置,例如以下命令将在D:
\下生成名为“sunchis.keystore”的文件:
1.keytool -genkeypair -alias "tomcat" -keyalg "RSA" –keystore "D:
\sunchis.keystore"
查看已生成的证书的命令为:
1.keytool -list -keystore "C:
\Documents and Settings\XuLiang\.keystore"
查看证书信息
3.2配置SSL连接器
在Tomcat的server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把
1.
—
2.Define a SSL HTTP/1.1 Connector on port 8443
3.This connector uses the JSSE configuration, when using APR, the
4.connector should be using the OpenSSL style configuration
5.described in the APR documentation
6.-->
7.
8. 9. maxThreads="150" scheme="https" secure="true" 10. clientAuth="false" sslProtocol="TLS" 11. keystoreFile="C: \Documents and Settings\XuLiang\.keystore" 12. keystorePass="SUNCHIS" 13. ciphers="sunchis" 14./> 实际上,基于SSL的HTTPS使用的默认端口是443。 但Tomcat在这里将HTTPS端口设置为8443。 属 性 描 述 clientAuth 如果设为true,表示Tomcat要求所有的SSL客户出示安全证书,对SSL客户进行身份验证 keystoreFile 指定keystore文件的存放位置,可以指定绝对路径,也可以指定相对于 如果此项没有设定,默认情况下,Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。 keystorePass 指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用“changeit”作为默认密码。 sslProtocol 指定套接字(Socket)使用的加密/解密协议,默认值为TLS,用户不应该修改这个默认值。 ciphers 指定套接字可用的用于加密的密码清单,多个密码间以逗号(,)分隔。 如果此项没有设定,在默认情况下,套接字可以使用任意一个可用的密码。 3.3访问支持SSL的Web站点 由于SSL技术已建立到绝大多数浏览器和Web服务器程序中,因此,仅需在Web服务器端安装服务器证书就可以激活SSL功能了。 如果上述的第一步和第二步已经配置完毕,那么就可以重启Tomcat服务器了,然后从IE浏览器中以HTTPS方式来访问在Tomcat服务器上的任何一个Web应用。 现在我们就来访问一下这个地址: https: //localhost: 8443 当Tomcat收到这一HTTPS请求后,会向客户的浏览器发送服务器的安全证书,IE浏览器接受到证书后,将向客户显示安全警报窗口,如下图: 在安全警报窗口中的第一行提示信息为: “您与该站点交换的信息不会被其他人查看或更改。 但该站点的安全证书有问题。 ”这句话的意思是,一方面,该安全证书非权威机构颁发,不能作为有效的验证对方身份的凭据。 另一方面,假如与对方通信,通信数据会经过加密后在网络上传输,因此不会被他人监视或修改。 如果单击“【否】”按钮,就表示不信任该服务器出示的安全证书,因此浏览器会结束与Tomcat服务器的通信。 如果单击“【是】”按钮,表示信任Tomcat服务器出示的安全证书,浏览器将建立与Tomcat服务器的SSL会话,Tomcat服务器就会把客户请求的数据发送过来。 如果单击“【查看证书】”按钮,将出现证书窗口,如下图: 证书窗口 从图中可以看到证书的“颁发者”和“颁发给”都是同一个人,这说明是自我签名的证书,非权威机构颁发。 证书的详细信息 从证书的详细信息中可以看出,在证书中公布了证书发送者的身份和公钥。 而私钥只有证书发送者拥有,不会向证书接受者公开。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSL 服务器 证书