当前位置:文档之家› https双向认证

https双向认证

https双向认证
https双向认证

第一步:为服务器生成证书

在dos中写入以下命令:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500

在命令行填写必要参数:

A、输入keystore密码:此处需要输入大于6个字符的字符串(一般为:changeit)

B、“您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或

者IP[如:https://www.doczj.com/doc/e15356619.html, 或者 10.1.25.251](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”

C、“你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区

域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”

时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息

D、输入的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与

keystore的密码一致,设置其它密码也可以

第二步:为客户端生成证书

为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,使用如下命令生成:

keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\mykey.p12

双击mykey.p12文件,即可将证书导入至浏览器(客户端)

第三步:让服务器信任客户端证书

由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

keytool -export -alias mykey -keystore D:\mykey.p12 -storetype PKCS12 -storepass changeit -rfc -file D:\mykey.cer

通过以上命令,客户端证书就被导出到“D:\mykey.cer”文件了。下一步,是将该文件导入到服务器的证书库,添加为一个信任证书:

keytool -import -v -file D:\home\mykey.cer -keystore D:\tomcat.keystore 通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一

个是受信任的客户端证书:

keytool -list -keystore D:\tomcat.keystore

第四步:让客户端信任服务器证书

由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:

keytool -keystore D:\tomcat.keystore -export -alias tomcat -file D:\tomcat.cer

通过以上命令,服务器证书就被导出到“D:\tomcat.cer”文件了。双击tomcat.cer 文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。

第五步:配置tomcat

打开Tomcat根目录下的/conf/server.xml,找到如下配置段,修改如下:

SSLEnabled="true" maxThreads="150" scheme="https"

secure="true" clientAuth="true" sslProtocol="TLS"

keystoreFile="e:\\tomcat.keystore" keystorePass="changeit"

truststoreFile="e:\\tomcat.keystore" truststorePass="changeit" />

第六步:访问网站

在浏览器中输入:https://localhost:8443/

HTTPS协议简介

下面我们来一起学习一下 HTTPS ,首先问你一个问题,为什么有了 HTTP 之后,还需要有 HTTPS ?我突然有个想法,为什么我们面试的时候需要回答标准答案呢?为什么我们不说出我们自己的想法和见解,却要记住一 些所谓的标准回答呢?技术还有正确与否吗? HTTPS 为什么会出现 一个新技术的出现必定是为了解决某种问题的,那么 HTTPS 解决了 HTTP 的什么问题呢? HTTPS 解决了什么问题 一个简单的回答可能会是HTTP 它不安全。由于 HTTP 天生明文传输的特性,在 HTTP 的传输过程中,任何人都有可能从中截获、修改或者伪造请求发送,所以可以认为 HTTP 是不安全的;在 HTTP 的传输过程中不会验证通信方的身份,因此 HTTP 信息交换的双方可能会遭到伪装,也就是没有用户验证;在 HTTP 的传输过程中,接收方和发送方并不会验证报文的完整性,综上,为了解决上述问题,HTTPS 应用而生。 什么是 HTTPS 你还记得 HTTP 是怎么定义的吗?HTTP 是一种超文本传输协议(Hypertext Transfer Protocol) 协议,它是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范,那么我们看一下 HTTPS 是如何定义的HTTPS 的全称是Hypertext Transfer Protocol Secure,它用来在计算机网络上的两个端系统之间进行安全的交

换信息(secure communication),它相当于在 HTTP 的基础上加了一 个Secure 安全的词眼,那么我们可以给出一个 HTTPS 的定义:HTTPS 是一个在计算机世界里专门在两点之间安全的传输文字、图片、音频、视频等超文本数据的约定和规范。HTTPS 是 HTTP 协议的一种扩展,它本身并不保传输的证安全性,那么谁来保证安全性呢?在 HTTPS 中,使用传输层安全性(TLS)或安全套接字层(SSL)对通信协议进行加密。也就是 HTTP + SSL(TLS) = HTTPS。 HTTPS 做了什么 HTTPS 协议提供了三个关键的指标 ?加密(Encryption), HTTPS 通过对数据加密来使其免受窃听者对数据的监听,这就意味着当用户在浏览网站时,没有人能够监听他和网站之间的信息交换,或者跟踪用户的活动,访问记录等,从而窃取用户信息。 ?数据一致性(Data integrity),数据在传输的过程中不会被窃听者所修改,用户发送的数据会完整的传输到服务端,保证用户发的是什么,服务器接收的就是什么。 ?身份认证(Authentication),是指确认对方的真实身份,也就是证明你是你(可以比作人脸识别),它可以防止中间人攻击并建立用户信任。 有了上面三个关键指标的保证,用户就可以和服务器进行安全的交换信息了。 那么,既然你说了 HTTPS 的种种好处,那么我怎么知道网站是用 HTTPS 的还是 HTTP 的呢?给你两幅图应该就可以解释了。

SSL证书验证过程解读

SSL证书验证过程解读及申请使用注意事项 SSL证书和我们日常用的身份证类似,是一个支持HTTPS网站的身份证明,由受信任的数字证书颁发机构CA(如沃通CA)验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。SSL证书里面包含了网站的域名,证书有效期,证书的颁发机构以及用于加密传输密码的公钥等信息,由于公钥加密的密码只能被在申请证书时生成的私钥解密,因此浏览器在生成密码之前需要先核对当前访问的域名与证书上绑定的域名是否一致,同时还要对证书的颁发机构进行验证,如果验证失败浏览器会给出证书错误的提示。 本文将对SSL证书的验证过程以及个人用户在访问HTTPS网站时,对SSL证书的使用需要注意哪些安全方面的问题进行描述。 一、数字证书的类型 实际上,我们使用的数字证书分很多种类型,SSL证书只是其中的一种。证书的格式是由X.509标准定义。SSL证书负责传输公钥,是一种PKI(Public Key Infrastructure,公钥基础结构)证书。 我们常见的数字证书根据用途不同大致有以下几种: 1、SSL证书:用于加密HTTP协议,也就是HTTPS。 2、代码签名证书:用于签名二进制文件,比如Windows内核驱动,Firefox插件,Java 代码签名等等。 3、客户端证书:用于加密邮件。 4、双因素证书,网银专业版使用的USB Key里面用的就是这种类型的证书。 这些证书都是由受认证的证书颁发机构CA(Certificate Authority)来颁发,针对企业与个人的不同,可申请的证书的类型也不同,价格也不同。CA机构颁发的证书都是受信任的证书,对于SSL证书来说,如果访问的网站与证书绑定的网站一致就可以通过浏览器的验证而不会提示错误。 二、SSL证书申请与规则 SSL证书可以向CA机构通过付费的方式申请,也有CA机构提供免费SSL证书如沃通CA。 CA机构颁发的证书有效期一般只有一年到三年不等,过期之后还要再次申请,在ssl 证书应用中企业网站应用较多。但是随着个人网站的增多,以及免费SSL证书的推出,个人网站ssl证书应用数量也在飞速增加。在百度开放收录https网站后,预计https网站将迎来井喷。 在申请SSL证书时需要向CA机构提供网站域名,营业执照,以及申请人的身份信息等。网站的域名非常重要,申请人必须证明自己对域名有所有权。此外,一个证书一般只绑定一个域名,比如你要申请域名时绑定的域名是https://www.doczj.com/doc/e15356619.html,,那么只有在浏览器地址是

Apache配置HTTPS协议

Apache配置HTTPS协议搭载SSl配置全过程 1.安装必要的软件 从Apache官方(https://www.doczj.com/doc/e15356619.html,)下载必要的ApacheHttpServer安装包,可以直接官方提供的绑定openssl的apache.文件名是: httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi(我用的是Apache2.2.15for windows的版本,你可以点击此处下载最新的版本进行安装,最好选择含有openssl版本的哦) 否则单独安装windows下的openssl比较麻烦,要么找到一个第三方的编译结果,要么自己编译 安装完毕后检查检查在Apache安装路径的bin下是否有以下文件: openssl.exe

ssleay32.dll libeay32.dll 2. 生成服务器证书 安装好在bin目录下有一个openssl.exe文件,用来生成证书和密钥。 1). 生成服务器用的私钥文件server.key (注:在Windows操作系统环境下需先设置Openssl环境变量:在DOS命令下进入conf目录,执行命令行:set OPENSSL_CONF=..\conf\https://www.doczj.com/doc/e15356619.html,f;请在执行之前确保https://www.doczj.com/doc/e15356619.html,f存在,否则会出现:WARNING: can't open config file: /usr/local/ssl/https://www.doczj.com/doc/e15356619.html,f 信息提示。还有在windows系统下.cnf 默认会被当成快捷方式,看不到扩展名。) 在DOS命令下进入bin目录,执行命令行 命令:openssl genrsa 1024> server.key 说明:这是用128位rsa算法生成密钥,得到server.key文件>是输出文件的标识符这种生成方法生成的是没有密钥的私钥文件,当然,Apache提供了加入密钥(Password)的命令,就是加入参数-des3,全部的命令为: 命令:openssl genrsa 1024-des3 > server.key 使用 openssl genrsa -des3 > 1024 server.key生成私钥文件是需要输入密钥的,运行的时候会让你输入并确认你的密钥,但是在Windows环境下会导致以下错误: 错误:Apache启动失败,错误提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....) 原因是window下的apache不支持加密的私钥文件。可不使用des3加密。注:生成的证书中RSA密钥对的默认长度是1024,取值是2的整数次方。建议使用4096以上。

SSL与TLS 区别和联系 ssl证书类型区分

SSL与TLS 区别和联系 ssl证书类型区 分 什么是ssl SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。 SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 什么是tls 安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。TLS记录协议用于封装各种高层协议。作为这种封装协议之一的握手协议允许服务器与客户机在应用程序协议传输和接收其第一个数据字节前彼此之间相互认证,协商加密算法和加密密钥。该协议由两层组成:TLS 记录协议(TLS Record)和TLS 握手协议(TLS Handshake) Ssl与tls的关系 ,是SSL 3.0的后续版本。在TLS与SSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作。 SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS(Transport Layer Security,传输层安全协议)是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议。最新版本的TLS 1.0,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1。 Ssl与tls的功能 1. 在互联网上传输加密过的资料以达到防窃取的目的。 2. 保持从端点A到端点B的传送路途中资料的完整性。 3. 透过SSL证书内的公共金钥加密资料传输至服务器端,服务器端用私密金钥解密来证明自己的身份。 何谓有效无效ssl(tls)证书?

ssl证书购买申请流程是什么

现在这个时代人们都到了物质上的好,也得.到了心情上的好,但是在使用智能产品的时候都是有很多的迷茫,有很多事情都是不明白的,有很多人都想知道ssl证书是怎么一回事儿,因为他们觉得知道了这些知识在遇到问题的时候,就是可以自己去解决的。 一、ssl证书 它是一种证书的形式,它的作用也是保证在传输过程中,或者登录网页的过程中,文件的安全性和在交易的过程中的交易安全性的,人们在使用这种证书的时候也很注重他的申请机构,毕竟正规的申请机构出来的证书才是可以正常使用的,一般普通的,有时候会出现无效或者不能配置的问题,所以我们尽量去找一个正规的机构去申请。 二、购买 这个时候一定不要贪图便宜,一定要到正规的机构去购买,因为虽然别的网站比较便宜一些,但是在用的过程当中容易出现一些问题,只有到正规的机构去购买的才可以更好的使用,也相对来说更能保证文件和个人信息的安全,这也是人们在购买 ssl证书看重的安装证书的,原因也是为了保证企业的机密不被泄露,或者是个人的信息不被泄露,还有就是在交易的过程当中,不会被一些不法人员窃取信息。 三、申请

他的身体是比较简单的,只要从正规的网站申请就是可以的, 进入证书申请网站,根据他的提示,我们按照步骤操作就是可以的,只要有相关的知识操作的时间是比较快的,如果自己没有相关知识 也没有实现经验的话,那么尽量是找专.业的人员给你操作,而且申 请的时间是比较快,又可以更好的帮助你安装,这样是效果比较好的。 以上的内容就是大家想知道的关于ssl证书的一些知识,他详 细的讲解了购买方式和申请流程,以及其他的一些内容,我们可以 通过上面的内容更加的了解并使用。

HTTPS传输协议原理介绍

HTTPS传输协议原理介绍 Hatter Jiang Apr 9th, 2008我们常常在使用网上银行时看到的连接都是以“https”开始的,那么这个https是什么呢?这其实是表示目前连接使用了SSL进行加密,能保证客户端到服务器端的通信都在被保护起来,那么浏览器是如果实现的呢?下面我们介绍一下SSL的基本实现方法。 首先我们有两种基本的加解密算法类型:对称加密,非对称加密(公私钥加密),现在介绍一下这两种加密算法的特点: 对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等,示意图如下: 图1 对称加密 非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等,示意图如下: 图2 非对称加密 根据上面的两种加密方法,现在我们就可以设计一种无法让他人在互联网上知道你的通讯信息的加密方法: 1.在服务器端存在一个公钥及私钥 2.客户端从服务器取得这个公钥 3.客户端产生一个随机的密钥 4.客户端通过公钥对密钥加密(非对称加密) 5.客户端发送到服务器端 6.服务器端接受这个密钥并且以后的服务器端和客户端的数据全部通过这个密钥加 密(对称加密) HTTPS通信过程的时序图如下:

图3 HTTPS通信时序图 正如上图所示,我们能保证下面几点: 1.客户端产生的密钥只有客户端和服务器端能得到 2.加密的数据只有客户端和服务器端才能得到明文 3.客户端到服务端的通信是安全的 当然实际的SSL实现算法复杂的多,并有数据校验、身份验证等功能,如果需要更多了角请参看RFC2246及RFC4346文档。 参考文献: [1] RFC2246 T. Dierks, C. Allen The TLS Protocol Version 1.0 [2] RFC4346 T.Dierks, E. Rescorla The Transport Layer Security (TLS) Protocol Version 1.1

WebService绕过https证书认证方法

Java语言使用websercive服务器绕过https安全证书访问 主要就是调用两个方法: trustAllHttpsCertificates(); HttpsURLConnection.setDefaultHostnameVerifier(hv); 将这两个方法放到开始连接url的前面就可以。 具体实现如下面:直接复制就可以 /** * 跳过https访问webserivce的方法start */ HostnameVerifier hv = new HostnameVerifier() { publicboolean verify(String urlHostName, SSLSession session) { System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost()); returntrue; } }; privatestaticvoid trustAllHttpsCertificates() throws Exception { https://www.doczj.com/doc/e15356619.html,.ssl.TrustManager[] trustAllCerts = new https://www.doczj.com/doc/e15356619.html,.ssl.TrustManager[1]; https://www.doczj.com/doc/e15356619.html,.ssl.TrustManager tm = new miTM(); trustAllCerts[0] = tm; https://www.doczj.com/doc/e15356619.html,.ssl.SSLContext sc = https://www.doczj.com/doc/e15356619.html,.ssl.SSLContext .getInstance("SSL"); sc.init(null, trustAllCerts, null); https://www.doczj.com/doc/e15356619.html,.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc .getSocketFactory()); } staticclass miTM implements https://www.doczj.com/doc/e15356619.html,.ssl.TrustManager, https://www.doczj.com/doc/e15356619.html,.ssl.X509TrustManager { public java.security.cert.X509Certificate[] getAcceptedIssuers() { returnnull; } publicboolean isServerTrusted( java.security.cert.X509Certificate[] certs) { returntrue; } publicboolean isClientTrusted( java.security.cert.X509Certificate[] certs) {

ssl数字证书申请流程 申请材料

ssl证书购买申请流程 一、准备相关材料 1)提供域名信息; 2)提供最终用户联系人信息(包括名称、地址、电话、邮件、职位) 3)提供证书签名请求(会提供指导文档支持) 4)营业执照复印件 二、签定购买合同 买卖双方签定数字证书购买合同,可以以传真,扫描,快递等方式完成。 三、客户方付款 以电汇,支票等方式向CA机构支付数字证书款项。 四、提交数字证书申请资料 购买SSL证书的客户请提交以下资料: 1 最新年检的企业法人营业执照副本复印件 2 填写《SSL证书申请表》 3 提交CSR。 五、等待审核验证。 CA机构wosign会严格的按照国际标准来做身份鉴证。 六、签发证书 最终数字证书以邮件的形式发到申请表中技术联系人的邮箱,并协助进行证书安装。 ssl证书是什么 ssl证书是数字证书中的一种,由受信任的数字证书颁发机构CA如[沃通CA]在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能,因其要配置在服务器上,所以也称SSL服务器证书。由合法CA机构颁发的ssl证书遵循ssl协议,通过在客户端浏览器和Web服务器之间建立一条SSL安全通道,对传送的数据进行加密和隐藏;确保数据在传送中不被篡改和窃取,保障数据的完整性和安全性,ssl安全协议是由网景(Netscape Communication)公司设计开发主要用来提供对用户和服务器的认证,目前已成为该领域中全球化的标准。ssl 证书购买申请流程ssl证书广泛应用于网上银行,金融系统,购物网站以及政府组织机构等领域,用来保障网站客户端与服务器端的数据传输安全和网站真实身份认证。

ssl证书需要到合法的第三方CA机构申请购买,国产SSL数字证书使用更方便也更安全。建议广大站长在ssl证书的时候要注意以下几点: 1、选择国产合法CA机构购买ssl证书!为什么不买国外的?“棱镜门”事件只能让你"呵呵"了! 2、选择全球信任的ssl证书签发机构!并不是所有CA机构签发的ssl证书都受浏览器信任,不受浏览器信任的ssl证书会报错“该证书不受信任”。 3、选择通过国际WebTrust认证的CA机构,WebTrust认证门槛高,中国目前只有三家合法CA通过了WebTrust认证。 4、选择访问速度快并且售后服务好的ssl证书签发机构。 关于ssl证书费用问题,不同品牌和类型的ssl证书价格上存在很大差异。品牌上面,国产证书相交国外证书性价比更高,安全性也不低于国外证书。无论是从性能价格优势上还

抓包实验

:利用Wireshark软件进行数据包抓取 1.3.2 抓取一次完整的网络通信过程的数据包实验 一,实验目的: 通过本次实验,学生能掌握使用Wireshark抓取ping命令的完整通信过程的数据包的技能,熟悉Wireshark软件的包过滤设置和数据显示功能的使用。 二,实验环境: 操作系统为Windows 7,抓包工具为Wireshark. 三,实验原理: ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议。 四,验步骤: 1.确定目标地址:选择https://www.doczj.com/doc/e15356619.html,作为目标地址。 2.配置过滤器:针对协议进行过滤设置,ping使用的是ICMP协议,抓包前使用捕捉过滤器,过滤设置为icmp,如图 1- 1

图 1-1 3.启动抓包:点击【start】开始抓包,在命令提示符下键入ping https://www.doczj.com/doc/e15356619.html,, 如图 1-2

图 1-2 停止抓包后,截取的数据如图 1-3 图 1-3 4,分析数据包:选取一个数据包进行分析,如图1- 4

图1-4 每一个包都是通过数据链路层DLC协议,IP协议和ICMP协议共三层协议的封装。DLC协议的目的和源地址是MAC地址,IP协议的目的和源地址是IP地址,这层主要负责将上层收到的信息发送出去,而ICMP协议主要是Type和Code来识别,“Type:8,Code:0”表示报文类型为诊断报文的请求测试包,“Type:0,Code:0”表示报文类型为诊断报文类型请正常的包。ICMP提供多种类型的消息为源端节点提供网络额故障信息反馈,报文类型可归纳如下: (1)诊断报文(类型:8,代码0;类型:0代码:0); (2)目的不可达报文(类型:3,代码0-15); (3)重定向报文(类型:5,代码:0--4); (4)超时报文(类型:11,代码:0--1); (5)信息报文(类型:12--18)。

如何通过SSL证书开启服务器443端口

如何通过SSL证书开启服务器443端口 前阵子遇到个问题,因为我们的网站是外贸网站,需要通过Paypal付款,但是,客户通过PP付款之后居然不能生成订单号,后来发现服务器的443端口是关闭状态,好了,问题来了:如何开启服务器的443端口呢? 深圳国际快递https://www.doczj.com/doc/e15356619.html,在这里分享一下开启443端口的经验: 第一:当然是配置硬件,把防火墙令443端口放行!具体办法朋友可以去百度一下哈,其实落伍里面也有! 第二,创建SSL证书,我个人觉得这个比较重要,下面把具体的方法分享给一下。 #LoadModule ssl_module modules/mod_ssl.so 的#去掉,开启SSL功能。 然后我们要新建一个SSL虚拟目录,监听443端口 一般情况下我使用centos的虚拟列表都会放到/etc/httpd/conf.d/目录下 依旧是在这个目录下新建一个ssl.conf,并且在你的网站列表新建一个ssl文件夹,我的习惯是/var/www/vhosts/ssl 将你的server.crt和ca-server.crt文件以及你原来生成的server.key文件一起上传到ssl文件夹内。 进入/etc/httpd/conf.d/ 输入 vi ssl.conf 使用vi编辑器编辑ssl.conf内容如下 DocumentRoot "/var/www/vhosts/site_dir/httpdocs" SSLEngine on SSLProtocol all -SSLv2 SSLCertificateFile /var/www/vhosts/ssl/server.crt SSLCertificateKeyFile /var/www/vhosts/ssl/server.key SSLCACertificateFile /var/www/vhosts/ssl/ca-server.crt SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 然后将你的域名强制https进行访问 将 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 当然,这个证书是在自己服务器上创建的,自己使用还是可以的,但是在浏览器中,这

https握手与密钥协商过程

https握手与密钥协商过程 https握手与密钥协商过程 基于RSA 握手和密钥交换的客户端验证服务器为示例详解握手过程。 1.client_hello 客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下: 支持的最高TSL协议版本version,从低到高依次SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,当前基本不再使用低于TLSv1 的版本; 客户端支持的加密套件cipher suites 列表,每个加密套件对应前面TLS 原理中的四个功能的组合:认证算法Au (身份验证)、密钥交换算法KeyExchange(密钥协商)、对称加密算法Enc (信息加密)和信息摘要Mac(完整性校验); 支持的压缩算法compression methods 列表,用于后续的信息压缩传输; 随机数random_C,用于后续的密钥的生成; 扩展字段extensions,支持协议与算法的相关参数以及其它辅助信息等,常见的SNI 就属于扩展字段,后续单独讨论该字段作用。 2.server_hello+server_certificate+sever_hello_done (a) server_hello, 服务端返回协商的信息结果,包括选择使用的协议版本version,选择的加密套件cipher suite,选择的压缩算法compression method、随机数random_S等,其中随机数用于后续的密钥协商; (b)server_certificates, 服务器端配置对应的证书链,用于身份验证与密钥交换;

大型互联网站点HTTPS实践(一):详解HTTPS协议和原理

大型互联网站点HTTPS实践(一):详解HTTPS协议和原理1 前言 百度作为搜索巨头,一举一动都牵动着大家神经。近日百度率先实行全站https加密搜索,默认将HTTP请求跳转成HTTPS,这一举措引起公众广泛关注和讨论。那么到底什么是https呢?全站部署https有什么重大意义?本文将重点介绍。 2 HTTPS 协议概述 HTTPS 可以认为是HTTP + TLS。HTTP 协议大家耳熟能详了,目前大部分WEB 应用和网站都是使用HTTP 协议传输的。 TLS 是传输层加密协议,它的前身是SSL 协议,最早由netscape 公司于1995 年发布,1999 年经过IETF 讨论和规范后,改名为TLS。如果没有特别说明,SSL 和TLS 说的都是同一个协议。 HTTP 和TLS 在协议层的位置以及TLS 协议的组成如下图: 图1 TLS 协议格式 TLS 协议主要有五部分:应用数据层协议,握手协议,报警协议,加密消息确认协议,心跳协议。

TLS 协议本身又是由record 协议传输的,record 协议的格式如上图最右所示。 目前常用的HTTP 协议是HTTP1.1,常用的TLS 协议版本有如下几个:TLS1.2, TLS1.1, TLS1.0 和SSL3.0。其中SSL3.0 由于POODLE 攻击已经被证明不安全,但统计发现依然有不到1% 的浏览器使用SSL3.0。TLS1.0 也存在部分安全漏洞,比如RC4 和BEAST 攻击。 TLS1.2 和TLS1.1 暂时没有已知的安全漏洞,比较安全,同时有大量扩展提升速度和性能,推荐大家使用。 需要关注一点的就是TLS1.3 将会是TLS 协议一个非常重大的改革。不管是安全性还是用户访问速度都会有质的提升。不过目前没有明确的发布时间。 同时HTTP2也已经正式定稿,这个由SPDY 协议演化而来的协议相比HTTP1.1 又是一个非常重大的变动,能够明显提升应用层数据的传输效率。 3 HTTPS 功能介绍 百度使用HTTPS 协议主要是为了保护用户隐私,防止流量劫持。 HTTP 本身是明文传输的,没有经过任何安全处理。例如用户在百度搜索了一个关键字,比如“苹果手机”,中间者完全能够查看到这个信息,并且有可能打电话过来骚扰用户。也有一些用户投诉使用百度时,发现首页或者结果页面浮了一个很长很大的广告,这也肯定是中间者往页面插的广告内容。如果劫持技术比较低劣的话,用户甚至无法访问百度。 这里提到的中间者主要指一些网络节点,是用户数据在浏览器和百度服务器中间传输必须要经过的节点。比如WIFI 热点,路由器,防火墙,反向代理,缓存服务器等。 在HTTP 协议下,中间者可以随意嗅探用户搜索内容,窃取隐私甚至篡改网页。不过HTTPS 是这些劫持行为的克星,能够完全有效地防御。

HTTPS请求工具类汇总

HTTPS请求 package com.sunzk.dreamsunlight.weixin.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import https://www.doczj.com/doc/e15356619.html,.ConnectException; import https://www.doczj.com/doc/e15356619.html,.URL; import https://www.doczj.com/doc/e15356619.html,.ssl.HttpsURLConnection; import https://www.doczj.com/doc/e15356619.html,.ssl.SSLContext; import https://www.doczj.com/doc/e15356619.html,.ssl.SSLSocketFactory; import https://www.doczj.com/doc/e15356619.html,.ssl.TrustManager; import net.sf.json.JSONException; import net.sf.json.JSONObject; import org.apache.log4j.Logger;

import com.sunzk.dreamsunlight.weixin.certificate.MyX509 TrustManager; import com.sunzk.dreamsunlight.weixin.model.Menu; import com.sunzk.dreamsunlight.weixin.token.AccessToken; /** * * @ClassName: WeiXinHttpsUtil * * @Description: TODO(微信HTTPS请求工具类) * * @author sunzk-dreamsunlight-QQ(1131341075) * * @date 2016-11-14 上午10:05:56 * */ public class WeiXinHttpsUtil {

SSL证书工具使用说明

天威诚信SSL证书工具使用说明 天威诚信SSL证书工具专业版,集CSR生成、CSR校验、证书格式转换和证书配置检测于一体,在客户端上即可完成CSR 在线自动生成并能快速校验CSR信息,实现不同证书间的格式互转,快速有效的检测出证书的安装状态,操作简单,易于上手,是SSL证书安装使用过程中不可或缺的得力干将。 一,CSR生成 按照工具提示的信息填写您申请证书的真实信息,点击生成CSR文件。下图为填写示例:

*注:目前主流密钥算法为RSA,长度为2048位,签名算法为SHA256。 通过点击保存私钥文件和CSR文件,保存文件到本地。私钥文件您需要在本地备份并妥善保管,CSR申请文件需要提交给商务人员。 二,CSR校验 字符串校验:您可以打开制作的CSR文件,并把字符串复制到空白框中并点击“验证CSR 文件”。

文件校验:通过添加本地CSR文件并进行验证。 二,证书格式转换 1,PEM转JKS 1,首先准备好server.pem证书文件和server.key私钥文件。 2,将证书签发邮件中的包含服务器证书代码的文本复制出来(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘贴到记事本等文本编辑器中。在服务器证书代码文本结尾,回车换行不留空行,并粘贴中级CA证书代码(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,每串证书代码之间均需要使用回车换行不留空行),修改文件扩展名,保存包含多段证书代码的文本文件为server.pem文件。 3,在源证书文件中录入server.pem,源私钥文件中录入server.key文件。(如果您的.key 私钥文件没有设置密码,源私钥密码处可以为空) 4,在“目标证书别名”选择中这是JKS文件密钥别名,并在“目标证书密码”中设置JKS 文件密码。

https证书申请流程

https证书申请流程 https 证书即ssl数字证书,是广泛用于网站通讯加密传输的解决方案,是提供通信保密的安全性协议,现已成为用来鉴别网站的真实身份,以及在浏览器与WEB 服务器之间进行加密通讯的全球化标准。 常见的https证书(ssl数字证书)由于他的加密强度不一样,分为以下几种类型,通常各个ssl数字证书的申请流程都分别需通过五个步骤: 步骤一:首先登陆GlobalSign官网; 根据自己的实际需要,选择证书类型; 步骤二:签署合同;确认支付方式; 步骤三:准备CSR 并选择确认方式; 步骤四:在线提交申请; 步骤五:确认申请;颁发证书。 各个ssl数字证书申请细则: DVSSL(域名型数字证书): 确认信息——发送电子版合同——签字确认——银行付款——开发票——颁发 需提交CSR 和管理员邮箱(admin,Admintrator, webmaster,postmaster,hostmaster 邮箱)。 OVSSL(企业型数字证书): 确认信息——发送电子版合同——签字确认——银行付款——开发票——提供资料(CSR,公司信息,管理员邮箱,企业营业执照副本复印件加盖最新的年检章或企业公章,第三方认证)——审核资料(若公司中英文名称不一致,则需提供邓白氏公司出具的邓白氏编码或外商投资企业备案登记)——审核通过颁发证书,一般为2-3个工作日内颁发、

EVSSL(增强型数字证书): 确认信息——发送电子版合同——签字确认——银行付款——开发票——提供资料(CSR,域名,公司信息,管理员邮箱,企业营业执照副本复印件加盖最新的年检章或企业公章,邓白氏编码或律师事务所出具的律师函)——审核资料(若公司中英文名称不一致,则需提供邓白氏公司出具的邓白氏编码或外商投资企业备案登记)——审核通过颁发证书,一般为7个工作日内颁发。 目前越来越多的网站会安装有权威机构(如GlobalSign)发布的ssl数字证书,使用ssl数字证书可以给企业主与客户之间提供数据安全的保障,同时为企业网站带来更多的访问者,带来更多的客户。

HTTPS协议

https HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。 一、信任主机的问题. 采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。所以目前所有的银行系统网站,关键部分应用都是

https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,但是银行更侧重安全。这一点对我们没有任何意义,我们的服务器,采用的证书不管是自己发布的还是从公众的地方发布的,其客户端都是自己人,所以我们也就肯定信任该服务器。 二、通讯过程中的数据的泄密和被篡改 1.一般意义上的https,就是服务器有一个证书。 a) 主要目的是保证服务器就是他声称的服务器,这个跟第一点一样。 b) 服务端和客户端之间的所有通讯,都是加密的。 i. 具体讲,是客户端产生一个对称的密钥,通过服务器的证书来交换密钥,即一般意义上的握手过程。 ii. 接下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义,因为他没有密钥,当然篡改也就没有什么意义了。 2.少许对客户端有要求的情况下,会要求客户端也必须有一个证书。 a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码,还有一个CA 认证过的身份。因为个人证书一般来说是别人无法模拟的,所有这样能够更深的确认自己的身份。 b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘(即U盾)作为一个备份的载体。[1] 限制 概述 它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持. 一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与服务器的加密连接中能保护银行卡号的部分,只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的,这点甚至已被攻击者利用,常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生,攻击者会尝试窃听传输中的数据。 商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关,仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户攻击和损害。 TLS 1.1之前 这段仅针对TLS 1.1之前的状况。因为SSL位于http的下一层,并不能理解更高层协议,通常SSL服务器仅能颁证给特定的IP/端口组合。这是指它经常不能在虚拟主机(基于域名)上与HTTP正常组合成HTTPS。

使用wireshark分析HTTPS流程的建立

使用wireshark分析HTTPS流程的建立

使用wireshark分析HTTPS流程的建立 摘要: https流程 一、概要 为了网站以及用户的安全性,现在很多的网站都是https,大家都知道tcp通过三次握手建立连接,并且还有很多的同学对https连接建立的流程不太明白,包括我自己,通过借助于wireshark这种抓包工具,我们可以尝试着了解一下大概的流程。 (图1) 本图是客户端(10.0.45.103)访问服务端(114.215.88.85)通过wireshark 抓包显示出来的双方交互数据,访问是通过https访问服务器上的一台nginx 服务器服务。请关注第一列的No。下文中很多时候会用no表示一次交互。 图中可以很明显的看出tcp的三次握手以及之后的TLS加密流程的建立。二、tcp的三次握手 通过流程图可以看出(也可以看图1 的19368到19370这三个编号),首先客户端向服务端发起一个SYN的请求,序号(Seq)为0,确认号(ACK)也为0,这代表是本次是由客户端发起的首次请求。本次请求的数据长度为0 然后服务端给客户端响应,此时服务端的Seq也是0,值得是服务端的第一回应,并且给客户端说,你的请求我已经收到了(ACK=1),

最后返还给客户端以后,客户端的序号+1,并且对服务端的响应做出确认,最后回给服务端,此时ACK=1,Seq=1 tcp的握手过程建立成功。 三、ssl连接的建立 通过以上可以看出,SSL也是建立在TCP的基础上的,经过tcp的三次握手,接下来才是加密信道的建立。 客户端和服务端建立安全连接大致经过以下几个步骤 1.客户端:ClientHello 2.服务端:Server Hello,Server certificate,Server Exchange,Server Hello Done 3.客户端:client Exchange 4.客户端:Application Data 5.服务端:New Session 6.服务端:Application Data 接下来看这几个步骤中具体的每一个步骤传输的内容 ClientHello client首先给服务端打招呼,对服务端说hello 应用层没什么特别的

HTTPS原理及交互过程

1 HTTP及HTTPS HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像,本质上是一种不安全的请求交互方式。 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https://URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。 2 HTTP和HTTPS区别 https协议需要到ca申请证书,一般免费证书很少,需要交费。 http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http 和https使用的是完全不同的连接方式用的端口也不一样:前者是80,后者是443。 http的连接很简单,是无状态的HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全 HTTPS解决的问题: (1)信任主机的问题。 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书。 该证书只有用于对应的server 的时候,客户度才信任次主机。所以目前所有的银行系统网站,关键部分应用都是https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,但是银行更侧重安全。这一点对我们没有任何意义,我们的server,采用的证书不管自己issue 还是从公众的地方issue,客户端都是自己人,所以我们也就肯定信任该server。 (2)通讯过程中的数据的泄密和被窜改。 1)一般意义上的https,就是server 有一个证书。 a) 主要目的是保证server 就是他声称的server。这个跟第一点一样。 b) 服务端和客户端之间的所有通讯,都是加密的。 i、具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥。一般意义上的握手过程。 ii、加下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义。因为他没有密钥。当然窜改也就没有什么意义了。 2)少许对客户端有要求的情况下,会要求客户端也必须有一个证书。

相关主题
文本预览
相关文档 最新文档