ssl安全协议(Secure Sockets Layer 安全套接层) 以及 认证

什么是协议

平时访问网页的时候,默认都是访问的 http 协议,比如 http://abc.cn 即便在地址栏没有明确写 http, 只写了一个 abc.cn, 实际上浏览器也会自动补充上 http:// 的。

http 就是协议的名称。 协议是什么概念? 就是浏览器和服务端事先约定好的规则,按照预定的规则,服务器和浏览器之间能够互相理解。

http 协议的缺陷,这里主要谈安全方面的缺陷。 http 协议是明文传输的,无论数据,账号,密码都是在网络上明文传输的,所以就存在巨大的安全隐患。一个是容易泄露密码,再一个容易被劫持,效果就是访问 http://abc.cn 的时候,会跳转到不可预知的网站去。

http劫持

用户要获取 abc.cn的数据,是不会直接从 服务器上去取的。

首先找运营商,然后运营商去把数据取出来,取出来之后,再发给用户。

目前有3个主要的运营商(移动,电信,联通),他们就扮演者中介的角色。

一般说来,这个中介什么都不会做,把从阿里云拿到的数据,返回给用户就完了。

但是,如果有黑客,或者运营商内部不可描述的原因,拿到的数据被动了手脚,那么再发给用户的数据,就不是原来的数据了。

abc.cn 被劫持,就是本应该返回正常的 html, 但是却被粗暴地修改成了下面这样:

<html>
<body>
<script>location.href="不可预知.com"</script>
</body>
</html>

ssl是什么

因为 http 是明文传输的,所以很容易就被纂改, 于是就出现了被劫持的现象。

为了解决这个问题,我们需要在 http 协议上做一个增强,这个增强方式就是 进行 ssl 认证。 认证完成之后, http 协议就变成了 https协议啦。

https 协议从理论上来讲也会和 http 一样会被纂改,但是其难度和代价就是指数级别的上升了,所以从概率上来讲,再出现被劫持的现象就小了很多很多啦

ssl 证书

概念

要进行ssl 认证,就需要先有 ssl 证书(这个证书最好是被广泛认可的权威机构颁发的,这样大家才信任它。)。

3种类型ssl 证书

域名验证型(DV)SSL证书

证书名称:域名型SSL证书(Domain Validation SSL Certificate)

适合对象:中小型企业网站、中小型电子商务网站、电子邮局服务器、个人网站等

组织验证型(OV)SSL证书

证书名称:企业型 SSL 证书(Organization Validation SSL Certificate)

适合对象:企业网站、电子商务网站、证券、金融机构

扩展验证型(EV)SSL证书

证书名称:增强型 SSL 证书(Extended Validation SSL Certificate )

适合对象:银行、保险、金融机构、电子商务网站、大型企业

DV最简单,也有免费的,EV和OV都必须是付费的,费用高昂。

DV免费渠道:通过权威机构申请,比如 Symantec 赛门特克

ssl认证:阿里云免费认证

免费地址:https://common-buy.aliyun.com/?spm=5176.2020520163.cas.3.342dbsGJbsGJeT&commodityCode=cas#/buy

  1. 选择免费型 DV SSL, 自动选择 Symantic
  2. 进入阿里云控制台,左边的产品与服务-> 搜搜 ssl -> 就出来 SSL 证书(应用安全)了。
  3. 看到未签发的证书,点击 证书申请
  4. 填写基本信息,其他选项默认
  5. DNS 验证:域名解析里填写域名授权验证类型、记录类型、主机记录、记录值
  6. 等待审核通过
  7. 下载证书:在已签发栏目里,选择服务器的证书(选择Tomcat 和 Nginx)下载

配置 Nginx的ssl认证

nginx的ssl证书(一般有两个文件)

123456_abc.cn.key
123456_abc.cn.pem

把证书复制到 nginx 根目录下

配置 nginx.conf

server {
listen:80;
listen 443 ss1;
server_name localhost;
ssl_certificate E://chrome_ down1oad//nginx//123456_abc.cn.pem; # 这个是证书的crt文件所在目录
ssl_certificate_key E://chrome_ download/ /nginx//123456_abc.cn.key; # 这个是证书key文件所在目录

修改host文件(添加)

C:\Windows\System32\drivers\etc

127.0.0.1 abc.cn

重启访问nginx

配置Tomcat的ssl认证

tomcat的ssl证书(一般有两个文件)

123456_abc.cn.pfx
pfx-password.txt

复制证书

把证书(pfx 文件)复制到 tomcat/conf/cert 目录下(cert 目录手动创建cert 目录)

配置 server.xml(修改)

在 节点下,主要有两个改动:

  1. keystoreFile 要指定 pfx 的路径。
  2. keystorePass使用 pfx-password.txt文件里的密码
	<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="F:/chrome_download/tomcat/conf/cert/2992871_how2j.cn.pfx"
keystoreType="PKCS12"
keystorePass="pfx-password.txt文件里的密码"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

修改host文件(添加)

C:\Windows\System32\drivers\etc

127.0.0.1 abc.cn

重定向 localhost/a.jsp 问题

重定向写的是 /a.jsp, 那么就会跑到 http://localhost/a.jsp 这个地方去了,就不再是访问的 https://localhost/a.jsp。

修改 server.xml(节点修改)

在80端口对应的 Connector 这里,增加下面4个。

secure="true"
scheme="https"
proxyPort="443"
redirectPort="443"

重启访问

SSL 安全协议 以及 如何认证的更多相关文章

  1. 基于SSL协议的双向认证 - SSL协议 [1]

    1  概要说明 在互联网通信方式中,目前用的最广泛的是HTTPS配合SSL和数字证书来保证传输和认证安全了. 2  详细介绍 2.1    HTTPS HTTPS全称:Hypertext Transf ...

  2. SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  3. SSL/TLS协议运行机制

      转载自http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行 ...

  4. 【转】SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  5. SSL/TLS 协议详解

    SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议.TLS ...

  6. nginx配置ssl加密(单双向认证、部分https)

    nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...

  7. SSL/TLS协议运行机制的概述(转)

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  8. 理解SSL/TLS协议

    理解SSL/TLS协议 背景 早期我们在访问web时使用HTTP协议,该协议在传输数据时使用明文传输,明文传输带来了以下风险: 1.信息窃听风险,第三方可以获取通信内容 2.信息篡改风险,第三方可以篡 ...

  9. [转帖]nginx配置ssl加密(单/双向认证、部分https)

    nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627   nginx下配置ssl本来是很简单的,无论是去认证 ...

随机推荐

  1. oracle之PLSQL导出-导入-表-存储过程等操作--亲测好用

    1.背景 实际开发中考虑到安全,不会将生产库的数据和本地开发数据进行同步操作,而是采用导入导出sql语句的方式操作; 例如在开发环境写好的存储过程要更新到生产环境,那么就需要使用导出和导入功能. 2. ...

  2. map put相同的key

    Map添加相同的key 2018年09月09日 10:37:12 Airport_Le 阅读数:6479   HashMap是的key是不能重复的,如果有相同的key,最后一个key对应的value会 ...

  3. Ftp站点搭建的详细过程(包括指定用户登录)

    最近接到要部署一个Ftp站点的一个任务,然后过程中有点小插曲踩了一些坑(指定用户登录,用户名和密码都是对的,输入了超级多遍,还是不行,登录不上,后面详细说明解决方案),特此记录一下.避免大家踩坑. 参 ...

  4. QuickStart系列:Docker部署PostgreSQL

    docker镜像地址: https://hub.docker.com/_/postgres/ https://www.widuu.com/chinese_docker/examples/postgre ...

  5. SLF4J: Failed to load class "org.slf4j.impl.StaticLo

    今天在修改项目是修改了pom中的配置启动后提示下面的错误, SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder&qu ...

  6. [SDIO].SDIO总线详解

    转自:https://blog.csdn.net/liuhan33025/article/details/51131848 SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的 ...

  7. HTML&CSS基础-meta标签

    HTML&CSS基础-meta标签 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见字符集 1>ASCII 我们知道计算机是由外国人发明的,他们当时也没有考虑到 ...

  8. Appium启动淘宝APP,输入搜索内容

    # -*- coding:utf-8 -*- from appium import webdriver from time import sleep desired_caps ={ 'platform ...

  9. js插件---videojs的使用

    js插件---videojs的使用 一.总结 一句话总结: 网上有各种细致的现成的代码可以拿来用,没必要自己死专 1.video.js有两种初始化方式? 一种是在video的html标签之中 一种是使 ...

  10. LGOJP3959 宝藏

    题目链接 题目链接 题解 一开始想了一个错误的状压dp,水了40分. 这里先记录一下错误的做法: 错解: 设\(g[i,j,S]\)从\(i\)到\(j\),只经过集合\(S\)中的点的最短路,这个可 ...