阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何让你的网站支持HTTPS

133次阅读
没有评论

共计 1192 个字符,预计需要花费 3 分钟才能阅读完成。

当今世界的主流网站基本都是使用 https 对外界提供服务,甚至有某些公司建议完全使用 https, 那么 https 是什么呢?请参考如下的图解,https 是在我们通常说的 tcp/ip 协议中的传输层和应用层之间加入的一层,在这层的客户端浏览器和服务器端进行了加密,如图可以看出,加密的作用只能体现在应用层以下,也就是说 tcp 层看到的是加密数据,应用层看到的还是明文,也就是说 https 对于应用层来说是透明的,通常我们的 http request, request header,key-value 还都是明码,也就是说在应用层上 http 和 https 发送的数据是一致的,区别仅仅体现在 tcp 层以下,我们来看个两个请求来说明。

如何让你的网站支持 HTTPS

https request

如何让你的网站支持 HTTPS

http request

如何让你的网站支持 HTTPS

 

对于 http 和 https 如果我们分别在 tcp 层抓包,我们就可以看到 http 是不加密的,而 https 是加密的。

如何让你的网站支持 HTTPS

 

接下来我们来说说 SSL 层是如何加密的,我们都知道非对称加密,一般网站如果希望支持 https 就需要向权威机构购买证书,证书包含一个公钥和私钥对, 公钥发送给客户端,客户端使用这个公钥进行加密,服务端使用私钥进行解密,那么有人会问了,为什么还要向权威机构申请呢,自己构造一个得了呗,可以的,  如果你只是自己使用,但是如果你想让很多人都使用,这些人又不认识你,怎么办呢?你怎么证明你是你呢?这个时候权威机构就派上用场了,我们安装的浏览器默认都是信任一些主流的权威机构的,他给你发了证书,你就可以证明你是你了,好了,这下应该讲清楚了。

下面以 JavaEE 网站为例谈谈支持 HTTPS 需要哪些配置或者代码。 买完证书如果希望自己的网站支持 https 其实并不需要改动代码,除非你有特殊需求,比如你的哪些 urls 需要支持 https 剩余的一些需要 http,其实这种需求整的很少见,但是确实是有的。Tomcat 中加入如下的配置,你的网站就可以支持 https 了,这里面的 c:\testkeystore 是你存放 key 的地方。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
           keystoreFile="c:\testkeystore"
           keystorePass="solidmango" />

那么当你配置好了以后怎么知道自己的网站是否已经完整的支持了 https 了呢?打开浏览器,看到如下的配置就说明你的 htttps 配置成功了。

如何让你的网站支持 HTTPS

 

 

总结

本文从理论到实践完整的讨论了 https 的台前幕后的细节,希望对大家有所帮助,共同进步。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/134695.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1192字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中