环境说明
1、apache版本: Apache/2.2.15 (Unix)
2、weblogic版本: 10.3.6
https的工作原理
HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的简单描述如下:
1.浏览器将自己支持的一套加密规则发送给网站。
2.网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3.获得网站证书之后浏览器要做以下工作:
a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。
c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。
4.网站接收浏览器发来的数据之后要做以下的操作:
a) 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
b) 使用密码加密一段握手消息,发送给浏览器。
5.浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。
这里浏览器与网站互相发送加密的握手消息并验证,目的是为了保证双方都获得了一致的密码,并且可以正常的加密解密数据,为后续真正数据的传输做一次测试。另外,HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而HASH算法用于验证数据的完整性。由于浏览器生成的密码是整个数据加密的关键,因此在传输的时候使用了非对称加密算法对其加密。非对称加密算法会生成公钥和私钥,公钥只能用于加密数据,因此可以随意传输,而网站的私钥用于对数据进行解密,所以网站都会非常小心的保管自己的私钥,防止泄漏。
TLS握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。
证书的验证过程
参考: http://www.cnblogs.com/jfzhu/p/4064055.html
Q1: 我为什么不能使用ca签发给我的证书,再去签发其他证书?
答:因为ca签发的证书是终端证书(服务器证书),不能再继续签发了。
证书链的层级一般为3层(根证书 中级证书 服务器证书),有的会有交叉证书变成4层
亚洲诚信证书的安装过程
weblogic安装步骤
https://www.trustasia.com/help/weblogic-cert-install.htm
apache安装步骤
https://www.trustasia.com/help/apache2-install-ssl-certificate.htm
查看证书是否安装成功的命令
openssl s_client -connect localhost:7010 -state -debug
apache配置
<VirtualHost *:443>
DocumentRoot "/var/www/html"
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/httpd/conf/cer/domain.crt
SSLCertificateKeyFile /etc/httpd/conf/cer/domain.key
SSLCertificateChainFile /etc/httpd/conf/cer/CA.crt
#web-A
ProxyRequests Off
ProxyPreserveHost on
ProxyPass /web-A http://172.16.9.137:8090/web-A
ProxyPassReverse /web-A http://172.16.9.137:8090/web-A
ProxyPass /cc https://tuotuo.XXXX.com.cn:7014/cc
ProxyPassReverse /cc https://tuotuo.XXXX.com.cn:7014/cc
</VirtualHost>
Q1:通过访问https://tuotuo.XXXX.com.cn/web-A之后,获取的抓包数据如下:
过滤条件 ip.src == 172.16.XXX.XX && ip.dst == 172.16.9.137 && data
GET /web-A HTTP/1.1
Host: tuotuo.XXXX.com.cn
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: Hm_lvt_4e42f3810ab58451dc11277aa62ca512=1477554100,1478164674; Hm_lvt_416b1ab2cd19be52c35938635a3cf5c5=1477554101,1478164674
X-Forwarded-For: 10.0.11.49
X-Forwarded-Host: tuotuo.XXXX.com.cn
X-Forwarded-Server: 111.207.XXX.XXX
Connection: Keep-Alive
过滤条件 ip.src == 172.16.9.137 && ip.dst == 172.16.XXX.XX && data
HTTP/1.1 302 Found
Server: Apache-Coyote/1.1
Location: http://tuotuo.XXXX.com.cn/web-A/
Transfer-Encoding: chunked
Date: Fri, 04 Nov 2016 05:53:13 GMT
如何通过apache的配置,修改protocol?
答:方法一:使用 mod_headers.so 模块
1、打开 mod_headers.so 模块
2、RequestHeader set X-Forwarded-Proto "https"
3、代码里面使用 request.getHeader("X-Forwarded-Proto") 来获取协议
方法二:使用weblogic插件mod_wl_22.so
1、加载 mod_wl_22.so 模块
2、RequestHeader set WL-Proxy-SSL "true"
WLProxySSL ON
3、在weblogic控制台启用集群和server的weblogic插件
WLProxySSL 参数说明:
从http协议重定向到https
方法一:通过域名服务器配置实现
方法二:通过apache的mod_rewrite.so模块实现
步骤1:将80端口重定向到443端口
步骤2:将www.XXXX.com.cn、www.XXXX.cn、www.XXXX.org 重定向到www.XXXX.com
https的耗时测试
使用curl 测量TCP握手和SSL握手的具体耗时
curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}\n" -so /dev/null https://www.alipay.com
后续工作
1、个人中心升级https,同时支持http和https协议
2、升级https后对 http 接口调用的影响

https工作原理及CA证书部署相关推荐

  1. SSL/TLS协议的运行原理浅析—https通信过程及CA证书诠释

    互联网是开放环境,通信双方都是未知身份,这为协议的设计带来了很大的难度.而且,协议还必须能够经受所有匪夷所思的攻击,这使得SSL TLS协议变得异常复杂.理清https原理与CA证书体系 互联网的通信 ...

  2. 深入理解HTTPS工作原理

    前言 近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器.搜索引擎.CA机构.大型互联网企业的共同促进下,互联网迎来了"HTT ...

  3. 深入浅出HTTPS工作原理 1

    深入浅出HTTPS工作原理 看了这么多篇讲https和加密算法的文章,只有阮一峰老师和这位老师的总结比较好.特此转载. 本文经授权转自腾讯蓝鲸(微信号:Tencent_lanjing) 蔡卓伦 14年 ...

  4. 超详细的jenkins持续集成工作原理、功能、部署方式等介绍

    文章由LinuxBoy分享于2019-08-30 11:08:39 超详细的jenkins持续集成工作原理.功能.部署方式等介绍 1. 概念 jenkins是一个开源项目,提供了一种易于使用的持续集成 ...

  5. Android https 自签名和CA证书验证(基于OkHttp)

    Android HTTPS自签名和CA证书验证(基于OkHttp) HTTPS介绍 CA证书 自签名证书 问题描述 域名校验 OkHttp设置 总结 HTTPS介绍 HTTPS是一种通过计算机网络进行 ...

  6. BurpSuite抓https的包/BurpSuite CA证书下载

    BurpSuite抓https的包/BurpSuite CA证书下载 Burp Suite要抓HTTPS的包的话,是需要有Burp Suite的CA证书的 为什么要证书这里就不说了,下面是具体步骤 1 ...

  7. HTTPS协议工作原理(SSL数字证书)

    目录 HTTPS SSL协议的工作过程 SSL数字证书的查看 HTTPS 我们都知道HTTP协议是明文传输的,并且不能验证对方的身份,而且不能保证数据的完整性.而当我们在网络上进行购物电子交易时,电子 ...

  8. HTTPS 那些事 用 java 实现 HTTPS 工作原理

    作者:诺维斯基2021 诺维斯基2021 架构设计 2016/02/02 11:15 阅读数 7.3K 今天被问到关于 https 原理的问题,结果由于知识掌握不牢靠,停留于表面,很多细节都无法回答清 ...

  9. 你了解HTTPS工作原理吗?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术 来源:8rr.co/stqK 当你打开浏览器,访问某个网站,如果网 ...

  10. HTTPS 工作原理

    一.简介 HTTPS对于客户端开发人员来说并没有什么需要特别注意的地方,因为代码和写HTTP请求时并没有什么两样.但也正是因为这个原因,导致许多客户端开发人员对HTTPS并不了解,只知道它是安全的加密 ...

最新文章

  1. 《iPhone与iPad开发实战—iOS经典应用剖析》连载二
  2. tftp下载内核和文件系统
  3. mysql 数据库dbhelp_C# VS连接数据库DBhelp
  4. 这个大数据时代,算法的重要性你要意识到
  5. Struts2_模块包含 及Action总结
  6. mysql gtid 主主_mysql GTID主从复制(主库在线,添加新丛库)
  7. 物理学家张首晟:如果世界末日来临,我会带这几句话上诺亚方舟|研习社演讲实录...
  8. 二手机Q1行情报告:iPhone 11、华为Mate、P40(5G)等小幅涨价
  9. Angular 7 和 .Net Core 2.2——全球天气(第1部分)
  10. 洛谷 P1187 3D模型
  11. 安装linux没有raid驱动程序,LINUX 无法在 RAID 上安装的问题
  12. Redis常见配置文件详解
  13. 首页增加了“阅读排行”
  14. Java J2SE 系列视频教程(北京上学堂马士兵老师经典java讲义)
  15. python 图表控件_10款好用的.NET图表控件推荐
  16. stvd使用中的一些问题
  17. 国人创造中文编程语言的优势
  18. 【新书推荐】杰夫·惠勒:帝泉传奇系列(共3册)
  19. 带你破解时间管理的谜题
  20. 每天坚持收小钱,能改命!

热门文章

  1. VS下使用LoadLibrary加载dll失败
  2. HTML+CSS大作业—汽车商城-功能齐全(42页) 大学生汽车商城网页设计模板代码 网购网页作业成品 汽车商城网站设计成品
  3. PC发卡机器人 v1.0
  4. roaringbitmap java,数据结构-RoaringBitmap概要
  5. 用命令启动java我的世界_我的世界Minecraft Mod开发学习笔记 - 实现一个简单的命令Mod...
  6. aix系统日志转存日志服务器,AIX查看系统日志
  7. 老罗的工匠精神是不是有唯一性
  8. 由于找不到MSVCR110.dll,无法继续执行代码........启动的解决方法
  9. 婆媳关系处理不好本质上是没有大局观
  10. localhost拒绝连接解决办法