SSL 原理

SSL 简介

SSL (Secure Socket Layer), 中文名称 安全套接字.

SSL 的出现, 主要是为了解决Web浏览器和Web服务器之间的安全传输问题.

主要概念

SSL 中主要有如下几个概念:

  • 传输加密: 所有消息加密后传输
  • 身份验证: 客户端验证可选, 服务端验证强制
  • 传输完整性: 传输的消息的完整性检查 (使用 MAC)

建立安全连接的过程

过程图:

步骤说明:

  1. client 发送 clientHello 信息给 server
  2. server 识别之后发送 serverHello 给 client, 这个过程建立安全能力, 包括协议版本, sessionID, 加密算法, 压缩方法, 随机数.
  3. 此时 SSL 握手的第一阶段完成
  4. server 会向 client 发送server的证书 (证书中有 server 端的公钥)
  5. server 向 client 发送密钥交换信息. 同时还会请求 client 端的证书.
  6. server 发送 Hellodone 信息, 表示 server 端的请求结束.
  7. 此时 SSL 握手的第二阶段完成
  8. client 发送client证书 (client没有证书的话, 可以回复 server 无证书)
  9. client 生成一个对称密码, 并发送给 server (这里的信息用收到的 server 端公钥来加密)
  10. 如果 client 发送了client证书, 那么还会发送证书验证信息
  11. 此时 SSL 握手的第三阶段完成
  12. client 通知 server 以后通信用之前发送的对称密码加密, 并结束握手
  13. server 通知 client 以后通信用之前发送的对称密码加密, 并结束握手

https 配置 (以 nginx 为例)

centos6.6 x86_64 上实验

  1. 生成证书

    cd /etc/nginx
    openssl genrsa -des3 -out server.key 1024 # 设置证书密码
    openssl req -new -key server.key -out server.csr # 根据提示输入各种信息
    cp server.key server.key.org
    openssl rsa -in server.key.org -out server.key
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  2. 设置 https 的证书

    cat /etc/nginx/ssl.conf
    # HTTPS server
    #
    server {
    listen 443 ssl;
    server_name localhost; ssl_certificate /etc/nginx/server.crt;
    ssl_certificate_key /etc/nginx/server.key; ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on; location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    }
    }
  3. 重启 nginx

    nginx -s reload
  4. 从浏览器中可以查看是否配置成功 (https://hostip/)

SSL 原理及 https 配置的更多相关文章

  1. 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...

  2. SSL证书与Https应用部署小结

    为了提高网站的安全性,一般会在比较敏感的部分页面采用https传输,比如注册.登录.控制台等.像Gmail.网银等全部采用https传输. https/ssl 主要起到两个作用:网站认证.内容加密传输 ...

  3. https原理及tomcat配置https方法

    一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不 ...

  4. (HTTPS)-https原理及tomcat配置https方法

    一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传 输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常 ...

  5. Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL

    6月12日任务 12.17 Nginx负载均衡12.18 ssl原理12.19 生成ssl密钥对12.20 Nginx配置ssl扩展 针对请求的uri来代理 http://ask.apelearn.c ...

  6. Linux centosVMware Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl

    一.Nginx负载均衡 vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容 upstream qq_com { ip_hash; 同一个用户始终保持 ...

  7. Linux下Nginx配置阿里云 SSL证书实现HTTPS访问

    这篇文章主要介绍了nginx配置ssl证书实现https访问的示例 1.服务器系统:Centos 2. 阿里云申请SSL证书 选择“免费版DV SSL”,点击立即购买: 下载证书 列表中找到已签发的证 ...

  8. nginx配置ssl证书实现https访问

    一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的 ...

  9. nginx普通配置/负载均衡配置/ssl/https配置

    1.nginx普通配置 server { listen ; server_name jqlin.lynch.com; access_log /var/log/nginx/main.log main; ...

随机推荐

  1. CSS的简单复习总结

    如果说网页是人的话那么CSS就是化妆品了哈哈哈,所以网页离不开CSS的装饰.id选择器和Class选择器    二者都是用来选择元素进行装饰的,我个人理解是类选择器包含了id选择器,class选择器不 ...

  2. WPF 水平进度条

    WPF设计界面过程中,有时需要设计一种可以手动滑动修改并实时显示的进度条 进度条,效果如下: 颜色.图标.节点什么的,都可以重新替换. 前端XAML代码: <UserControl x:Clas ...

  3. VM虚拟机Linux和主机数据传输

    虚拟机 Linux CentOS7 vm和主机通信是利用 vm tools  点击安装 点击后系统内有一个 打开 把 拖到桌面 打开终端 cd /home/whoami/桌面 ls 查看这个.tar. ...

  4. SQL--server事物

    事物 特点: 1.原子性:事物必须是一个自动工作的单元, 2.一致性:事物结束的时候,所有内部数据都是正确的 3.隔离性:并发多个事物时,各个事物不干涉内部数据,处理的都是另外一个事物处理之前或之后的 ...

  5. 18.QT-QPlainEdit 信号与槽

    QPlainEdit编辑功能 Public Slots void appendHtml ( const QString & html ) void appendPlainText ( cons ...

  6. 7. Callable 创建线程的方式三

    package com.gf.demo06; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionEx ...

  7. JavaScript定时器实现的原理分析

    原文链接:http://www.cnblogs.com/st-leslie/p/6082450.html 一.储备知识 在我们在项目中一般会遇见过这样的两种定时器,第一种是setTimeOut,第二种 ...

  8. 【转录】原来Github上的README.md文件这么有意思——Markdown语言详解

    之前一直在使用github,也在上面分享了不少的项目和Demo,每次创建新项目的时候,使用的都是默认的README.md文件,也不曾对这个文件有过什么了解.但是在看到别人写的项目的README.md里 ...

  9. VMWAR-workstatuon : 安装win10、server 2008 r2、server 2012 r2

    最新版的VMWAR 不是很文档,建议大家还是下载稳定版,截止当前最新版的为15,用了,有点问题. 换成14~ 可以了.(15创建虚拟机安装vmware tools 怎么都安装不了). 关于创建虚拟机, ...

  10. es6 语法 (解构赋值)

    1.结构赋值 { let a,b,c; [a,b] = [1,2]; console.log(a,b); //1,2} { let a,b,rest; [a,b,...rest] = [1,2,3,4 ...