前言:要实现服务器Tomcat的Https连接,需要将下载的证书安装到Tomcat服务器上。Tomcat支持PFX格式和JKS两种格式的证书,你可根据你Tomcat版本选择其中一种格式的证书安装到服务器Tomcat上,这里以PFX格式证书为例,介绍安装SSL实现Https的流程。
在介绍之前,先来科普一下,为什么说Https是安全的?
现在世界上绝大多数网站都已经切换到了https,切换的原因很简单,因为https更加安全,而且由于它更安全,从http切换到https是一个必然的趋势,未来的某一天,https必然会完全的取代http。
要说https为什么是安全的,得先说一下http为什么是不安全的,他不安全在什么地方?
我们的手机和电脑在进行http请求的时候,实际上是你的应用程序,比如浏览器或者某个手机软件,它把一个http的请求报文给发送给了服务器,然后服务器接收到这个请求后,去处理,处理之后再返回一个相对应的报文,这样一个响应报文就结束了。但是这个请求是怎样到达对方服务器的呢?它可不是通过一个叫做网线的东西蹭得一下就到对方服务器去了。
在实际的网络中,你的每个消息都会经过很多很多的中间节点,比如家里的路由器,比如小区的网关…… 这些节点会以接力的形式,帮你一步步的去转发这些消息,一步步的让消息达到目标服务器,然后最终你的服务器接收到这个消息他就知道,谁谁谁给我发了一个什么什么消息,现在我要去给他处理什么的。那么,这就有问题了,这些转发者他们是怎么转发这些消息的呢?这当然是我把消息发给它,它再把消息原封不动的转发出去呀。理想中它是那么美好,然而……如果它是一个坏人,他把我的消息篡改了以后再转发出去,那怎么说?比如我要转账给我二大爷,但是这个坏人他把我的消息篡改了,他把这个转账地址改成了他自己的地址了,那我的钱不就都跑到他的兜里去了吗?另外,不只是篡改,单纯的窃听对于我们来说也是风险,比如我的消息是账号和密码,在往对方服务器发送的时候,路上的每一个节点都能看到,这听上去是不是很阔怕?而且其实不只是中间节点,网络上的其它节点也是可以对消息进行窃听的。网络 从本质上它就不可避免的会让别人看到你发送和接收到的消息,这也就是http不安全的原因之一。但是你想让别人看不到你的消息 这 是不现实的,网络的结构他就是这样子的,我们总不可能把网络的结构改了吧?
还有就是要说到http不安全的另外一个原因,明文传输。
所谓明文传输,指的就是把你的消息内容不做任何加工就直接传输,与之对应的一个概念叫做加密,https就是通过加密来让消息变得安全。https把http消息进行加密以后再传输,这样就算别人拦截到了,他拿到了消息也看不懂,这样也就做到了安全。
具体来说,https是由 对称加密和非对称加密还有hash算法 共同作用,来在性能和安全性上达成一个平衡。加密是会影响性能的,尤其是非对称加密,因为它的算法比较复杂。
好了,有上课走神的小盆友就会问:既然加密传输这么好用,那我干脆把http加密再传输不就完事了吗?为什么我要搞一个新东西叫https出来呢?因为我们知道,新东西总是伴随着各种问题的,比如兼容性,比如大众接受度,比如换代周期,对吧?新东西成熟之前,我们是能不用就不用的呀。
哈哈,如果有这样的疑问,那么我要告诉你,https就是这么做的。https它并不是一种新的协议,而是它使用了一种叫做TLS的安全层,一个额外的安全层,这个安全层它提供了数据加密的支持,让http消息运行在这个安全层上面,也就做到了安全,而运行在安全层上面的Http就叫做https —— http secure,https 也是http。
还有,加密了就安全了吗?不是的,https除了对消息进行加密之外,还会对通信的对象进行身份验证,比如我在网页里面打开www.yorkyue.com ,我需要知道我的这个访问对象真的就是我的那个网站,而不是别的一个什么男人,那个男人拦截了我的网络请求,然后给我转到了一个别的什么地址。这种拦截 在http里面是可以做到的,而且神不知鬼不觉的呢,从客户端是根本查看不出来的;但是https被拦截了也没啥,https引入了证书机制,通过证书链你可以对你的访问对象进行身份验证,能够保证你访问的那个对象一定就是你证书肯定的那个对象,而不会是别的那个什么什么男人。要不然,你的浏览器就会给你警告提醒,或者如果你是开发APP的,出现这种情况的话你的代码就会给你报异常。这样就保证了我们不会被恶意的一方欺骗到。
好了,下面就来给网站实现https啦。
1.Ubuntu安装Samba
我们在Ubuntu中安装samba,以ubuntu给windows分享文件的模式来实现我们想要的文件共享。
1.1 Ubuntu中Samba安装
使用命令:
apt-get install samba
如遇到:
下列软件包有未满足的依赖关系:
samba: 依赖: samba-common (= 2:3.4.7~dfsg-1ubuntu3) 但是2:3.4.7~dfsg-1ubuntu3.8 正要被安装
依赖: libwbclient0 (= 2:3.4.7~dfsg-1ubuntu3) 但是2:3.4.7~dfsg-1ubuntu3.8 正要被安装
E: 破损的软件包
---------------------
解决方法:
卸载这两个出问题的软件包,
root@ubuntu:~#apt-get remove samba-common
root@ubuntu:~#apt-get remove libwbclient0
中间会出现其他依赖的包也被删除了,不要管,同意就行。如果软件需要那些被删除的软件包,它会再自动安装的。
卸载成功后,再安装samba就可以成功了!
1.2 打开Samba配置文件
打开Samba配置文件,创建共享目录:
sudo vi /etc/samba/smb.conf
这里就是配置要共享的文件夹,加入以下配置信息:
[york_share]
comment = '这是该共享的注释'
path = /home/york_share
public = yes
writable = yes
valid users = york
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup
available = yes
browseable = yes
保存退出。
1.3 为共享的用户设置密码
smbpasswd -a york
输入两次密码即可完成设置。
1.4 重启Samba服务
修改了配置文件,需要重启一下Samba服务
sudo service smbd restart
2.在Windows查看共享文件夹
最后一步了,验证在Windows查看是否可以看到york_share文件夹,能看到,输入york 和密码就完成了Samba的文件共享了
3.扩展
其实我们登录服务器也是用的samba,具体看下:
3.1 Ubuntu 用Samba访问服务器
- 1.打开 --文件—连接到服务器
- 2.输入:smb://192.168.0.241/work1/
- 如遇到问题:
ubuntu连接到服务器没有服务类型
- 解决办法:
执行 :sudo apt-get install gvfs-backends 再重启下电脑就可以解决.
- 3.输入用户名和密码就可以进入服务器了