SSL 原理及 https 配置
SSL 原理
SSL 简介
SSL (Secure Socket Layer), 中文名称 安全套接字.
SSL 的出现, 主要是为了解决Web浏览器和Web服务器之间的安全传输问题.
主要概念
SSL 中主要有如下几个概念:
- 传输加密: 所有消息加密后传输
- 身份验证: 客户端验证可选, 服务端验证强制
- 传输完整性: 传输的消息的完整性检查 (使用 MAC)
建立安全连接的过程
过程图:

步骤说明:
- client 发送 clientHello 信息给 server
- server 识别之后发送 serverHello 给 client, 这个过程建立安全能力, 包括协议版本, sessionID, 加密算法, 压缩方法, 随机数.
- 此时 SSL 握手的第一阶段完成
- server 会向 client 发送server的证书 (证书中有 server 端的公钥)
- server 向 client 发送密钥交换信息. 同时还会请求 client 端的证书.
- server 发送 Hellodone 信息, 表示 server 端的请求结束.
- 此时 SSL 握手的第二阶段完成
- client 发送client证书 (client没有证书的话, 可以回复 server 无证书)
- client 生成一个对称密码, 并发送给 server (这里的信息用收到的 server 端公钥来加密)
- 如果 client 发送了client证书, 那么还会发送证书验证信息
- 此时 SSL 握手的第三阶段完成
- client 通知 server 以后通信用之前发送的对称密码加密, 并结束握手
- server 通知 client 以后通信用之前发送的对称密码加密, 并结束握手
https 配置 (以 nginx 为例)
centos6.6 x86_64 上实验
生成证书
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
设置 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;
}
}
重启 nginx
nginx -s reload
从浏览器中可以查看是否配置成功 (https://hostip/)
SSL 原理及 https 配置的更多相关文章
- 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...
- SSL证书与Https应用部署小结
为了提高网站的安全性,一般会在比较敏感的部分页面采用https传输,比如注册.登录.控制台等.像Gmail.网银等全部采用https传输. https/ssl 主要起到两个作用:网站认证.内容加密传输 ...
- https原理及tomcat配置https方法
一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不 ...
- (HTTPS)-https原理及tomcat配置https方法
一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传 输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常 ...
- 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 ...
- Linux centosVMware Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl
一.Nginx负载均衡 vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容 upstream qq_com { ip_hash; 同一个用户始终保持 ...
- Linux下Nginx配置阿里云 SSL证书实现HTTPS访问
这篇文章主要介绍了nginx配置ssl证书实现https访问的示例 1.服务器系统:Centos 2. 阿里云申请SSL证书 选择“免费版DV SSL”,点击立即购买: 下载证书 列表中找到已签发的证 ...
- nginx配置ssl证书实现https访问
一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的 ...
- nginx普通配置/负载均衡配置/ssl/https配置
1.nginx普通配置 server { listen ; server_name jqlin.lynch.com; access_log /var/log/nginx/main.log main; ...
随机推荐
- OJ:析构函数实现多态
Description 下面程序的输出结果是: destructor B destructor A 请完整写出 class A. 限制条件:不得为 class A 编写构造函数. #include & ...
- 【转载】ASP.NET自定义404和500错误页面
在ASP.NET网站项目实际上线运行的过程中,有时候在运行环境下会出现400错误或者500错误,这些错误默认的页面都不友好,比较简单单调,其实我们可以自行设置这些错误所对应的页面,让这些错误跳转到我们 ...
- 快速搭建一个Quartz定时任务【转载,好文 ,值得收藏,亲身试用 效果不错】
Quartz.NET 入门 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔 ...
- C# IE浏览器 判断是否已经打开了指定Url
引用Microsoft HTML Object Library 引用 -> com -> Microsoft HTML Object Library 引用后,显示如图 1.判断ie浏览器是 ...
- Linux CentOS 虚拟机下联网
这里用VM 提供虚拟环境 虚拟机网络连接模式用的NAT 在编辑处 打开 查看你的子网ip 类型是NAT 的 我们这是是18 192.168.18.~ 去看dhcp 设置看自动分配的地址范围 也可 ...
- webpack 笔记
webpack.config.json entry:入口,可有多个 devtool:'inline-source-map' source map,遇到错误时,追踪到原文件,而不是编译后的文件 ...
- [日常] nginx与负载均衡策略
upstream mail.sina.net { #upstream的负载均衡,weight是权重,可以根据机器配置定义权重.weigth参数表示权值,权值越高被分配到的几率越大. server we ...
- Netty实战三之Netty的组件和设计
有关Netty,我们可以从两个视角来讨论Netty:类库的视角以及框架的视角,对于使用Netty编写高效的.可重用的和可维护的代码来说,两者缺一不可. Netty解决了两个响应的关注领域,可以大致标志 ...
- C# Dev XtraReport 简单测试
using System; using System.Collections.Generic; using System.Linq; using System.Text; using DevExpre ...
- Phaser.js之简单的跑酷游戏
采用的物理引擎是Phaser.js 官网地址:http://phaser.io/ 在这里对此引擎不做过多介绍(因为我也是小白,嘿嘿) 效果展示: 源码(详细源码图片资源可点击文章下方或屏幕右上方的gi ...