什么是http

HTTP是一个客户端和服务器端请求和应答的标准(TCP)。用户请求网站的响应过程也就是终端请求服务器的过程。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。

什么是https

网络上有关https的解析文章和视频很多可以自行百度,简而言之就是https是以安全为目标的http请求,s是指secure。可以随意打开一个网站按F12查看Security选项查看该网站是否属于安全网站及其证书信息(查看证书信息可能需要浏览器属于比较新的版本)
未加密网页的security:
TIM截图20180501131031.png

已加密网页的security:
TIM截图20180501131154.png

以下是我截取B站的安全验证截图,点击View certificate可以看到证书的详细信息。
TIM截图20180501131540.png
从证书当中你能获取一些比较通用的网站信息,但是别想着做什么奇怪的事(严肃)。
https的诞生就是因为网络中的信息传递太过于不安全(计算机网络有学过信息的接受和转发),所以截取用户请求伪造网站响应的所谓黑客就有了可乘之机。
下面是个人觉得一个能很好的讲解HTTPS机制的一篇文章:
一个故事讲解https
我认为无论是计算机行业无论从事的是前后端都最好阅读一下这个,能增加不少见识,而且下面的知识是我默认了你看了上面这个博客后写的。
证书是提供安全的物理道具,可以通过一系列的渠道获得,例如调用JDK自带的keytool命令生成,服务器平台生成,或者直接购买证书。免费的证书多数是1年有效。
最后证书的配置环节,查看了网络上的很多博客其实都有写,但是一千个服务器就有一千种奇奇怪怪的问题,这里我就讲解下有关我以前给咱工作室网站配置ssl证书所遇到的坑以供后来者避险和参考:
首先是端口问题,以下是CENTOS7下的配置和命令:
查看端口:netstat -tunpl
查看自己的443端口有没有被占用,一般不会被占用,但是XAMPP有时候会莫名的卡着这个端口变成僵尸进程,需要重启才能解决。
使用你所得到的证书文件配置在tomcat上,步骤为:
复制 证书文件到所需要配置的toncat的根目录下(我有试过不使用根目录但是都失败了,后来者如若有别的了解请留言)。
启用编辑命令 vim /tomcat的目录/conf/server.xml

       <Connector port="80" protocol="HTTP/1.1"
       connectionTimeout="20000"
       redirectPort="443" />
       <Connector port="443" protocol="HTTP/1.1"
       maxThreads="150" SSLEnabled="true" 
       scheme="https" secure="true" 
       keystoreFile="根目录下的pfx文件" 
       keystoreType="PKCS12" 
       keystorePass="解密私钥"
       clientAuth="false" sslProtocol="TLS" />

       <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

重启tomcat,访问网站(最好是域名访问,IP访问会提示危险)查看证书是否正确部署。
补充:
在新增了443connector以后,在今后的tomcat部署启动中会导致出现两个启动提示,这个是正常的,因为一个启动是连接到80的端口,一个启动是连接到443的端口,只有出现了两个启动提示才能算是完成了整个项目的启动。有时候会卡着在第一个启动提示中,要么等待,要么shutdown掉再重新strat就可以(个人推荐这个,没必要浪费时间等待),请注意观察tomcat的log。
完。

标签: none

已有 3 条评论

  1. 靓仔锋 靓仔锋

    https不能访问http资源,楼主有解决方法吗

    1. coda coda

      这个属于一个典型的问题,引用一下别人的回复:
      浏览器默认是不允许在HTTPS里面引用HTTP资源的,一般都会弹出提示框,用户确认后才会继续加载,用户体验非常差。

      而且如果在一个HTTPS页面里动态的引入HTTP资源,比如引入一个js文件,会被直接block掉的。

      Chrome 21之后,在SSL加密页面embed非SSL的Flash会怎样呢?会被默默的屏蔽掉,只留下一句console报告。

      浏览器为了安全,https下跨协议调用http的是不行的,控制台里会有警告。

      所以你只能去找https协议的 css、js资源了。也有文章说https页面中可引用http的图片,发现虽然不会报红错,但是会有黄色的提醒。最好的方法是使用https的资源。

    2. coda coda

      可以使用相对协议 例如 通过去除https 或者http头,然后浏览器会通过https请求去获取资源,详情请参考:
      https://segmentfault.com/a/1190000004200361

添加新评论