zoukankan      html  css  js  c++  java
  • 如何让你的网站支持https

    如何让你的网站支持https

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

    https request

    http request

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

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

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

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

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

    总结

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

  • 相关阅读:
    JQuery onload、ready概念介绍及使用方法
    jquery获取第几个元素的方法总结
    CSS中隐藏内容的3种方法及属性值
    jQuery获取页面及个元素高度、宽度【转】
    数据仓库原理<2>:数据仓库系统的体系结构
    数据仓库原理<1>:数据库与数据仓库
    题注在论文图表编号中的使用
    初见Python<7>:Python操作mysql
    初见Python<5>:条件、循环和其他语句
    初见Python<4>:字典
  • 原文地址:https://www.cnblogs.com/pugang/p/5343377.html
Copyright © 2011-2022 走看看