欢迎来到网际学院,让您的头脑满载而归!

为什么要使用 SSL 证书?

发布日期:2018-01-30 14:58:58 作者:管理员 阅读:1070

网络安全是一个永恒的话题,保护网络安全有很多方法,其中应用最为广泛的就是使用 SSL 证书来保护 C/S 或者 B/S 的通信安全。但是其实很多时候,我们并不知道如何管理和配置 SSL 证书。本篇文章,笔者将会以一个生动的例子,自己搭建一个

为什么要使用 SSL 证书?

网络安全是一个永恒的话题,保护网络安全有很多方法,其中应用最为广泛的就是使用 SSL 证书来保护 C/S 或者 B/S 的通信安全。但是其实很多时候,我们并不知道如何管理和配置 SSL 证书。本篇文章,笔者将会以一个生动的例子,自己搭建一个测试Web站点,并和大家分享如何配置Tomcat让其支持https。如果读者觉得不错,请收藏点赞并转发,如果收藏和转发数量大于100,我将继续分享下面的主题:

  • 什么是对称加密和非对称加密

  • Window 操作系统下如何管理 SSL 证书?

  • 如何从 HTTPS 网站导出 CA 证书

  • 自签名证书 VS CA 证书

  • 如何通过可视化工具生成和管理公钥和私钥

为什么要使用 SSL 证书?

通过Secure socket layer(SSL),能够帮助系统在客户端和服务器之间建立一条安全通信通道。SSL安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。通过激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。

为什么要使用 SSL 证书?

下面我们举一个例子,看SSL是如何保证通信的安全。我们的实验就是用Tomcat快速搭建一个基于HTTPS(在HTTP协议上使用SSL)的Web应用,大家可以先到Tomcat的网站下载一个Window的安装包, 下载完成后,解压缩到 比如,D:apache-tomcat-9.0.1,然后在D:apache-tomcat-9.0.1webappsexamplesssldemo.html,内容如下:

为什么要使用 SSL 证书?

然后启动Tomcat9,在打开浏览器之前,请先下载一个名字叫做Fiddler的软件,百度百科对Fiddler的介绍如下:

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。

我们可以在下面这个地址下载这个免费的工具并安装Fiddler 。

为什么要使用 SSL 证书?

假设我们已经安装并打开了Fiddler,在浏览器输入下面的地址,我们将看到下面的内容:http://localhost:8080/examples/ssldemo.html

为什么要使用 SSL 证书?

这个时候Fiddler监测到的内容如下:

为什么要使用 SSL 证书?

根据Fiddler截获的信息,我们知道在客户端和服务器传输的信息完全是明文,如果有不怀好意的人或者黑客,截取了浏览器和这个站点之间的所有的http请求的话,其上面传输的信息,所见即所得,被一览无余。在浏览器和Web服务器之间,如果传输只是一般的文本信息,比如CSDN的博客等,问题也不大。但是如果传输的是银行账号和密码呢?如果传输的是身份证信息或者信用卡信息呢?如果没有一种很好的机制去保护的话,如果被监听到了,后果将是灾难性的。那如何破这个局呢?其中一种很常见的方式,就是搭建一个基于SSL的Web服务器,让所有的信息通过https协议来传输。

下面笔者来配置一下Tomcat服务器,让其来支持https,因为本文更偏向于实战,所以笔者列出了其具体步骤。

1. 创建一个SSL的证书

假设我们机器上已经安装了JDK并配置了JAVA Home,然后打开命令行,确保keytool命令能用,如果不用请到JDK的安装目录下bin子目录寻找。在命令行中输入下面的命令:

keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.jks

然后按照提示,输入first name and last name等相关信息,这样就会生成一个证书对并存储到tomcat.jks文件中,另外在生成tomcat.jks文件的时候,其会让我们提示输入密码,假设输入的密码是:changeit

2. 保存好JKS文件

把tomcat.jks拷贝到Tomcat的安装目录下,笔者的安装目录是:D:apache-tomcat-9.0.1,所以笔者将其拷贝到D:apache-tomcat-9.0.1conf omcat.jks。 当然也可以不用拷贝,但是需要知道tomcat.jks文件的全路径,因为这个路径在后面需要用到。

3. 配置Tomcat的Server.xml文件

在Tomcat的安装目录下打开server.xml文件,笔者的电脑上是,D:apache-tomcat-9.0.1confserver.xml文件,然后编辑这个文件。把已有的8080端口的Connector注释起来,然后加入下面新的8443端口的Connector。

为什么要使用 SSL 证书?

文本形式的配置如下:

 <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="D:/apache-tomcat-9.0.1/conf/tomcat.jks" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/>

4. 重启启动Tomcat服务器

在浏览器输入,https://localhost:8443/examples/ssldemo.html。这个时候,我们发现其走的https协议,也就是用SSL保护了的http协议。这个时候在回头来看Fiddler监听的信息的结果。

为什么要使用 SSL 证书?

从上面的结果来看,我们的Fiddler监听到的已经是加过密的信息,看了这些信息,压根就不知道Web服务器向浏览器传输了什么信息,因为其是密文的,只有知道其秘钥的工具才能把其破解成明文。这样妈妈再也不同担心我们在网上传输个人的信息了。

  • 如果你对笔者的分享感趣的话,请收藏并关注我的公众号;

  • 如果你想继续深入SSL的话,请给我在文末留言。

  • 如果你有任何疑问需要探讨,欢迎在文章末尾留言,我尽量在第一时间个大家回复。


Copyright oneie ©2014-2017 All Rights Reserved. 所有资料来源于互联网对相关版权责任概不负责。如发现侵犯了您的版权请与我们联系。 网际学院 版权所有
免责声明  商务合作及投稿请联系 QQ:86662817