单点登录:HTTPS相关知识

朴灿烈づ我的快乐病毒、 2022-06-16 04:17 345阅读 0赞

一.什么是HTTPS

二.HTTPS和HTTP的区别

三.HTTPS解决的问题

四.为什么HTTPS没有被普及

五.Tomcat中配置Https连接

一.什么是HTTPS

是以安全为目标的HTTP通道,简单讲是HTTP的安全版。目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。

二.HTTPS和HTTP的区别

1.https协议需要到ca申请证书,一般免费证书很少,需要交费。

2.http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。1. 一般意义上的https,就是服务器有一个证书。

三.HTTPS解决的问题
1.信任主机的问题

采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。所以所有的银行系统网站,关键部分应用都是https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,但是银行更侧重安全。这一点对局域网对内提供服务处的服务器没有任何意义。局域网中的服务器,采用的证书不管是自己发布的还是从公众的地方发布的,其客户端都是自己人,所以该局域网中的客户端也就肯定信任该服务器。

2.通讯过程中的数据的泄密和被篡改

  1. 1.一般意义上的https,就是服务器有一个证书。
  2. a) 主要目的是保证服务器就是他声称的服务器,这个跟第一点一样。
  3. b)服务端和客户端之间的所有通讯,都是加密的。
  4. i. 具体讲,是客户端产生一个对称密钥,通过服务器的证书来交换密钥,即一般意义上的握手过程。
  5. ii. 接下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义,因为他没有密钥,当然篡改也就没有什么意义了。
  6. 2.少许对客户端有要求的情况下,会要求客户端也必须有一个证书。
  7. a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码,还有一个CA 认证过的身份。因为个人证书一般来说是别人无法模拟的,所有这样能够更深的确认自己的身份。
  8. b) 目前大多数个人银行的专业版是这种做法,具体证书可能是拿U盘(即U盾)作为一个备份的载体。

四.为什么HTTPS没有被普及
HTTPS意味着连接是安全的,但为什么主要是网上银行等服务使用HTTPS加密连接,互联网不全面应用HTTPS?
真正的问题是HTTPS增加了响应时间,失去了缓存能力。如果服务器和客户端在同一地区,这不是问题,但如果是间隔天南地北,用户肯定希望能有缓存加快访问。此外,SSL初始密钥交换也会增加延迟。另一个问题是虚拟主机不支持HTTPS,廉价的虚拟主机供应商让多个网站使用相同的IP地址,这种方式能在HTTP下工作,但不能用于HTTPS,一种解决方法是TLS Extensions协议,但还不成熟。未来随着宽带速度的增加,服务器对安全连接的优化,网民对安全而不是速度的关注将会推动HTTPS的部署。
五.Tomcat中配置Https连接

1.首先需要配置jdk,不然tomcat无法启动。

2.其次按照教程生成证书,导入jdk。http://www.linuxidc.com/Linux/2014-02/96446.htm
2.1 使用 JDK 的 keytool 命令生成密钥库(keystore)

keytool -genkeypair -alias cas -keyalg RSA -storepass changeit

查看 keypair:keytool -list -storepass changeit

删除 keypair:keytool -delete -alias <别名> -storepass changeit

2.2从 keystore 中导出证书

keytool -exportcert -alias cas -file cas.crt -storepass changeit

2.3 导入证书到 JVM 中

keytool -importcert -alias cas -file cas.crt -keystore “%JAVA_HOME%\jre\lib\security\cacerts” -storepass changeit -noprompt

3.打开 Tomcat 的 conf/server.xml 文件。

开打https,也就是8443端口,并且配置keystoreFile=”g:/sso/ssodemo.keystore” keystorePass=”michaelpwd”,告诉JDK从哪里生成证书。

4.注销/重启即可。

注意:

服务器生成的证书给给用户,用户可能不知道这个证书,或者说这个证书太低级了,所以需要在上面把证书导入到JDK。
之前出过错误,因为Web应用没有用这个JDK,而用其他的JDK,其他的JDK又没有先导入这个证书,所以导致出错。
总之:记得用同一个JDK。

发表评论

表情:
评论列表 (有 0 条评论,345人围观)

还没有评论,来说两句吧...

相关阅读

    相关 登录

    1:什么事单点登录: SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主

    相关 登录

    以Cookie作为凭证媒介 最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。 用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用

    相关 登录

    什么是单点登录? 单点登录(Single Sign On)说的简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其它系统中登录。也就是用户的一次登录能得到其它所有