期中集群架构-第十二章-HTTPS安全证书访问连接实践配置
=========================================

01:网络安全涉及的问题:
①. 网络安全问题-数据机密性问题
     传输的数据可能会被第三方随时都能看到

②. 网络安全问题-数据完整性问题
      传输的数据不能随意让任何人进行修改

③. 网络安全问题-身份验证问题
     第一次通讯时,需要确认通讯双方的身份正确

02:网络安全涉及的问题:
①. 网络安全问题-数据机密性问题解决
a) 利用普通加密算法解决机密性
       利用相应算法,对传输数据(明文数据)进行加密(密文数据);再利用对应算法,将加密数据解密变为真实数据
       优点:实现了数据机密传输,避免了明文传输数据的危险性。
       缺点:利用加密算法,将明文改密文,如果第三方获得加密算法,即可将传输密文再次变为明文

b) 利用对称加密算法解决机密性(重要的一种加密方式)
       对称加密算法就好比将普通算法的规则手册放入到了保险柜里,只有获取保险柜和保险柜钥匙才能获取《算法手册》
       优点:密钥加密算法计算速度非常快;解决了普通加密算法的安全问题
       缺点:加解密过程的安全性完全依赖于密钥,并且对称加密密钥是公开的,当通讯加密对象过多时,无法解决密钥管理问题。

②. 网络安全问题-数据完整性问题解决
a) 利用单项加密算法(全网备份数据完整性)
       根据数据生成特征码(数据指纹信息);接收数据方获取数据信息算出特征码,验证是否与发送过来的特征码一致
       若特征码一致,表示数据完整性没被破坏;若特征码不一致,表示数据已被破坏,直接丢弃
****************************************************************************
扩展说明:
01:不同数据的特征码(数据指纹信息)是不可能一致的
单项加密算法特征
· 数据输入一样,特征码信息输出必然相同
· 雪崩效应,输入的微小改变,将造成输出的巨大改变
· 定长输出,无论源数据多大,但结果都是一样的
· 不可逆的,无法根据数据指纹,还原出原来的数据信息。
****************************************************************************

优点:有效的解决了数据完整性问题
缺点:没有考虑中间人攻击对数据信息的影响 

b) 利用单项加密算法(加密特征码)
       利用对称加密算法对数据加密的同时,也对特征码进行加密;
       接收方拥有和发送方一样的密钥,才可以解密加密后的数据和特征码
       而中间人加密的特征码是没有办法让接收方进行解密的,所以接收方获取不了特征码,直接丢弃数据
****************************************************************************
扩展说明:
01:那么对称密钥如何有效的让通讯双方获取呢
需要进行对称密钥协商过程,即通过密钥交换机制(Internet key exchange IKE)
实现密钥交换机制的协议称为diffie-hellman协议
****************************************************************************

③. 网络安全问题-身份验证问题解决
a)利用非对称密钥加密算法(公钥加密算法)
       发送方建立私钥和公钥,将公钥发送给接收方,从而实现发送数据方的身份验证

让你的母亲验证你的爸爸身份信息,你的母亲就称为证书颁发机构
       公钥信息在网站访问过程中,被称为证书(身份证)

网络安全问题结论:实现网络安全性,需要解决问题的顺序为
1. 解决身份验证问题
2. 解决数据完整性问题
3. 解决数据机密性问题

03:网络安全证书由来:
根据上述结论可知,网络安全性最首先要解决的就是身份验证问题;

而解决身份验证问题,最主要的方式就是借助私钥和公钥
而最主要的公钥信息获取就变得尤为重要;利用第三方公正者,公正公钥信息

目前标准的证书存储格式是x509,还有其他的证书格式,需要包含的内容为:
证书==身份证
? 公钥信息,以及证书过期时间
? 证书的合法拥有人信息
? 证书该如何被使用(不用关注)
? CA颁发机构信息
? CA签名的校验码

04: OpenSSL软件详细说明   获取OpenSSL软件的版本信息:   rpm -qa openssl

   openssl version <- 查看openssl版本信息

获取OpenSSL配置文件信息:
   /etc/pki/tls/openssl.cnf <- openssl配置文件,主要用于配置成私有ca时进行使用
   说明:基本上openssl配置文件不需要运维过多修改配置

利用openssl软件实现HTTPS访问过程
实现HTTPS:
   第一步:创建出一个私钥文件(出生证明) --- 运维人员需要会
      openssl genrsa 2048 >server.key <- 创建私钥信息,并指定私钥的长度为2048,并将生成
      的私钥信息保存在一个文件中
      openssl genrsa -out server.key 2048 <- 将私钥信息直接进行保存,加密长度一定要放在输出
      文件后面

chmod 600 server.key  设置600权限保证安全
      (umask 077;openssl genrsa -out server1024.key 1024)
      <- 利用小括号,实现子shell功能,
      临时修改umask,使之创建的私钥文件权限为600

第二步:生成证书文件信息
      ①. 生成自签发证书 --- 运维人员可以自行操作
         [root@NFS-server-01 ~]# openssl req -new -x509 -key server.key -out server.crt -days 365
         req            <- 用于请求创建一个证书文件
         new           <- 表示创建的是新的证书
         x509          <- 表示定义证书的格式为标准格式
         key            <- 表示调用的私钥文件信息
         out             <- 表示输出证书文件信息
        days           <- 表示证书的有效期
        You are about to be asked to enter information that will be incorporated
        into your certificate request.
        What you are about to enter is what is called a Distinguished Name or a DN.
        There are quite a few fields but you can leave some blank
        For some fields there will be a default value,
        If you enter '.', the field will be left blank.
        -----
        Country Name (2 letter code) [XX]:CN                                               <- 定义生成证书的国家
        State or Province Name (full name) []:BJ                                           <- 定义生成证书的省份
        Locality Name (eg, city) [Default City]:BJ                                           <- 定义生成证书的城市
        Organization Name (eg, company) [Default Company Ltd]:oldboy  <- 定义生成证书的组织
        Organizational Unit Name (eg, section) []:it                                        <- 定义生成证书的职能部门
        Common Name (eg, your name or your server's hostname) []:oldboy.com.cn <- 定义主机服务器名称
        说明:此输出信息非常重要,客户端在获取证书前,会利用主机名与相应服务器之间建立连接,然后获得证书
        Email Address []:填写正确的email

②. 向证书颁发机构申请证书                                      --- ca证书版本机构完成
        生成请求证书文件 (户口本)                              --- 运维人员完成
        openssl req -new -key httpd.key -out httpd.csr
        获取得到证书文件 (身份证)                             --- ca颁发机构完成
        省略

第三步:配置网站服务,加载私钥和证书信息
官方区块说明:
   server {
      server_name YOUR_DOMAINNAME_HERE;
      listen 443;
      ssl on;
      ssl_certificate /server/key/server.crt;
      ssl_certificate_key /server/key/server.key;
   }

 #设置永久跳转为https使输入www.etiantian.org也能实现https访问

 #listen 监听的端口不再是http的80端口 需要改成https的443端口。

server {
      listen 80;
      server_name www.etiantian.org;
      rewrite ^(.*)$ https://$host$1 permanent;

   }
   server {
      listen 443;
      server_name www.etiantian.org;
      ssl on;
      ssl_certificate /server/key/server.crt;
      ssl_certificate_key /server/key/server.key;
      root html/www;
      index index.html index.htm;
   }

平滑重启

第四步:利用浏览器访问测试

ssl模块官方链接:http://nginx.org/en/docs/http/ngx_http_ssl_module.html

十二.HTTPS网站安全访问实践的更多相关文章

  1. “全栈2019”Java第七十二章:静态内部类访问外部类成员

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. Docker系列(十二):Kubernetes的分布式网络实践

    tip:本节课的学习视频没有找到,所以有的地方可能不是很清晰. 可选的几种网络方案 openvswitch 是一种主流的虚拟化大二层技术 灵活 对现有物理网络没要求 业界主流 软件封装导致性能低 复杂 ...

  3. 扒一扒HTTPS网站的内幕

    215年6月,维基媒体基金会发布公告,旗下所有网站将默认开启HTTPS,这些网站中最为人所知的当然是全球最大的在线百科-维基百科.而更早时候的3月,百度已经发布公告,百度全站默认开启HTTPS.淘宝也 ...

  4. (二十二)SpringBoot之使用Druid连接池以及SQL监控和spring监控

    一.引入maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  5. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  6. JSP网站开发基础总结《十二》

    前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...

  7. java jvm学习笔记十二(访问控制器的栈校验机制)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...

  8. 如何一步一步用DDD设计一个电商网站(十二)—— 提交并生成订单

    阅读目录 前言 解决数据一致性的方案 回到DDD 设计 实现 结语 一.前言 之前的十一篇把用户购买商品并提交订单整个流程上的中间环节都过了一遍.现在来到了这最后一个环节,提交订单.单从业务上看,这个 ...

  9. MINA、Netty、Twisted一起学(十二):HTTPS

    由于HTTPS协议是由HTTP协议加上SSL/TLS协议组合而成,在阅读本文前可以先阅读一下HTTP服务器和SSL/TLS两篇博文,本文中的代码也是由这两篇博文中的代码组合而成. HTTPS介绍 上一 ...

随机推荐

  1. 18.flannel的配置

    Kubernetes网络通信: (1) 容器间通信:同一个Pod内的多个容器间的通信, lo (2) Pod通信:Pod IP <--> Pod IP (3) Pod与Service通信: ...

  2. windows下零基础gulp构建

    在学习前,先谈谈大致使用gulp的步骤,给读者以初步的认识.首先当然是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置 ...

  3. docker的安装,升级,与删除(最新版)

    docker安装在ubuntu上 以前叫做 Docker engine安装现在叫做docker-ce的 第一种安装办法: root下执行,sudo su - root apt-get update - ...

  4. BATCH+VBS脚本自动执行命令

    打开cmd,然后执行run.bat s 1就会执行tmpsw.vbs的内容,1是作为id传进去的参数. run.bat: @echo off set type=%1 set id=%2 :打开一个te ...

  5. python学习日记(OOP——类的内置方法)

    __str__和__repr__ 改变对象的字符串显示__str__,__repr__ 我们先定义一个Student类,打印一个实例: class Student(object): def __ini ...

  6. To the moon HDU - 4348 (主席树,区间修改)

    Background To The Moon is a independent game released in November 2011, it is a role-playing adventu ...

  7. 联想的笔记本有隐藏分区 导致无法安装win10 eufi启动 报错:windows无法更新计算机的启动配置。无法安装

    联想的笔记本都带着类似一键还原等的系统恢复软件,这些软件往往是将出厂设置备份在单 独的一个分区,此分区默认为隐藏,在 Windows 的磁盘管理中可以看到.打开磁盘管理器 的方法是右击计算机——管理, ...

  8. SQL随记(三)

    1.关于package: 包的作用:可以将任何出现在块声明的语句(过程,函数,游标,游标,类型,变量)放入包中,相当于一个容器. 包的好处:在包中的(过程,函数,游标,游标,类型,变量)相当于sql/ ...

  9. Go-常用库的介绍

    一.Go常用包介绍  fmt.它实现了格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开 发者使用最为频繁的函数.  io.它实现了一系列非平台相关的IO相关接口 ...

  10. 映像文件工具srec

    目录 映像文件工具srec 介绍与帮助 常用例子 常用选项 一个实际的例子 hex转bin 数据填充 文件合并 文件分割 加入CRC 查看信息 使用命令集合的文本 详细文件格式的描述 附录:MDK的例 ...