精华内容
参与话题
问答
  • 什么是SSL证书

    千次阅读 2018-09-04 15:40:37
    TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的具体描述如下: 1)浏览器将自己支持的一套加密规则发送给网站。  2...

    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

    HTTPS对应的通信时序图如下:

    HTTPS协议和HTTP协议的区别:

    • https协议需要到ca申请证书,一般免费证书很少,需要交费。
    • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
    • http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
    • http的连接很简单,是无状态的 。
    • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。

    SSL 证书

    从前面我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密码。在握手过程中,网站会向浏览器发送SSL证书,SSL证书和我们日常用的身份证类似,是一个支持HTTPS网站的身份证明,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证书服务,价格相对便宜一些,国内的话400多块钱就能申请到一个,国外更是有免费的SSL证书可以申请。
在申请SSL证书时需要向CA机构提供网站域名,营业执照,以及申请人的身份信息等。网站的域名非常重要,申请人必须证明自己对域名有所有权,如果支持Hotmail.com,Gmail.com的SSL证书都可以随便申请,黑客们就不用做假证书欺骗了。

    此外,一个证书一般只绑定一个域名,如果CA机构心情好的话,会免费再绑一个,比如你要申请域名时绑定的域名是 www.runoob.com,那么只有在浏览器地址是 https://www.runoob.com 的时候,这个证书才是受信任的,如果地址是https://tt.runoob.com或者https://login.runoob.com,那么这个证书由于访问的域名与证书绑定的域名不同,仍然会被浏览器显示为不受信任的。

    CA机构也提供申请通配符域名(例如,*.runoob.com),通配符域名相当于绑定了主域名下的所有域名,因此使用起来非常方便,但是价格也超级昂贵,一个通配符域名一年大概得5000块钱,只有企业才可以申请。


    下面就来看看一个证书的信息:

    在访问hotmail的时候会跳转到login.live.com,这时IE浏览器上会有一个小锁头,点一下那个小锁头再点击里面的"查看证书"就会出现上图的证书窗口,这里面我们可以看到这个证书只有一个用途——向远程计算机证明身份信息,证书的用途会有很多,SSL只是其中之一。在"颁发给"这一项就是这个证书在申请时绑定的域名;下面的"颁发者"是证书的颁发机构。最下面的两个日期是证书申请时间以及过期的时间。这里我们可以注意一下"颁发者"的信息,里面有"Extended Validation SSL"的字样,表明了这个证书是一个EV SSL证书(扩展验证SSL证书),EV SSL证书有个特点就是可以让浏览器的地址栏变绿,同时显示出来证书所属公司的名称,如下图所示:

    EV SSL证书与其他的证书相比,费用更高。

    以上说的是向CA机构申请证书的情况,如果个人网站只为加密传输也可以自己制作SSL证书,自己制作的证书不会受到浏览器的信任,在访问的时候由于证书验证失败而给出警告。

    证书的验证过程

    证书以证书链的形式组织,在颁发证书的时候首先要有根CA机构颁发的根证书,再由根CA机构颁发一个中级CA机构的证书,最后由中级CA机构颁发具体的SSL证书。我们可以这样理解,根CA机构就是一个公司,根证书就是他的身份凭证,每个公司由不同的部门来颁发不同用途的证书,这些不同的部门就是中级CA机构,这些中级CA机构使用中级证书作为自己的身份凭证,其中有一个部门是专门颁发SSL证书,当把根证书,中级证书,以及最后申请的SSL证书连在一起就形成了证书链,也称为证书路径。在验证证书的时候,浏览器会调用系统的证书管理器接口对证书路径中的所有证书一级一级的进行验证,只有路径中所有的证书都是受信的,整个验证的结果才是受信。我们还是以login.live.com这个证书举例,在查看证书的时候,点击"证书路径"标签就会有下图的显示:

    根证书是最关键的一个证书,如果根证书不受信任,它下面颁发的所有证书都不受信任。操作系统在安装过程中会默认安装一些受信任的CA机构的根证书,可以在"运行"里面运行"certmgr.msc"启动证书管理器,如下图所示:

    根证书的有效期长,支持的用途多以方便颁发不同用途类型的中级证书;中级证书用途单一,有效期相对短一些,但是比具体的SSL证书要长很多。

    如果SSL证书验证失败根据浏览器的不同会有以下的错误提示:

    SSL证书验证失败有以下三点原因:

    • 1、SSL证书不是由受信任的CA机构颁发的
    • 2、证书过期
    • 3、访问的网站域名与证书绑定的域名不一致

    这三点原因也是IE浏览器给出的提示。

    小提示:如果你对哪个根证书CA机构比较憎恨,可以将它的根证书删除,这样所有它颁发的证书都不会受信任。

    SSL证书的安全问题

    对HTTPS最常见的攻击手段就是SSL证书欺骗或者叫SSL劫持,是一种典型的中间人攻击。不过SSL劫持并非只是用于攻击目的,在一些特殊情况下利用SSL劫持我们可以更顺畅的访问网络,我会在后文提到。

    以攻击为目的的SSL劫持如果不注意浏览器安全提示的话,很容易就中招。当网络中有中间人发起SSL劫持攻击时,攻击者需要伪造一个SSL证书发给浏览器,这个时候由于伪造的SSL证书不受信任,浏览器会给出提示。

    这里有一个误区,当SSL证书不受信任的时候,并不一定就是有SSL劫持发生,有种例外情况是:一些个人网站买不起合法的SSL证书,因此会自己制作一个SSL证书来加密传输的数据。如果你经常访问某个个人网站,而且你知道这个网站是干什么的,那么这种情况可以不用担心。但是如果你访问的是网银,在线支付,或者是hotmail.com,gmail.com等,这类公司性质的网站一定会申请合法的SSL证书(12306.cn除外),一旦SSL证书不受信任,应该果断的终止访问,这个时候网络中一定会存在异常行为,对于一些小区宽带的用户一定要注意这点。

    所以作为个人用户,你一定要知道你访问的是什么网站,如果你只是一个没有多少计算机只是的普通网民,我相信你不会经常上那些自己制作SSL证书的个人网站(12306.cn除外),因此如果你没有办法判断网络是不是有异常,只要是证书有问题的,干脆就别再访问了。

    小提示:对于12306.cn,一定要按照网站说的那样,"为保障您顺畅购票,请下载安装根证书"。

    最后我们总结一下使用SSL证书要注意的问题:

    • 1、除非必要,不要随意安装根证书。安装根证书的时候一定要明确证书的来源。
    • 2、对于网银,在线支付,重要邮箱等网站,一定要确保SSL证书是没有问题的,如果浏览器给出SSL证书错误的警告,一定要拒绝访问。一些小区宽带用户一定要注意这点。
    • 3、由于现在个人申请SSL证书比较便宜,一定要注意挂着合法SSL证书的钓鱼网站(国外比较常见)。对于钓鱼网站,一定要看清域名,另外别相信什么中奖的消息,同时要安装带有钓鱼防护功能的安全软件。
    展开全文
  • 免费SSL证书实现https请求

    万次阅读 2019-03-18 00:34:08
    总结前言近期业务需要,进行小程序的开发,但是在小程序里面请求必须要https才能正常请求数据,为了方便测试,在腾讯云SSL证书上申请了一个个人版的SSL证书进行测试;并在此记录整个配置的过程。证书申请申请入口如...

    一款更好用的证书管理工具,解放双手,推荐使用
    OHTTPS,一款免费且好用的SSL证书管理工具

    前言

    近期业务需要,进行小程序的开发,但是在小程序里面请求必须要https才能正常请求数据,为了方便测试,在腾讯云SSL证书上申请了一个个人版的SSL证书进行测试;并在此记录整个配置的过程。

    证书申请

    申请入口如下图:
    注意:由于是腾讯云的产品,官网页面也随时都在升级调整,以下是我写教程时的入口;你进去的时候可能看到的不是下面的样子,自己翻一翻,找一找就可以了,对于鹅厂来说,这种免费的东西,几乎是放在一个不起眼的角落,自己留意一下…

    资料完善

    进入以上入口需要完善个人资料并进行实名认证;如实填写资料,next–>next–>finish即可

    域名申请

    按如下步骤一步步填写完成

    • 第一步

    • 第二步
      填写域名信息及申请人邮箱等资料

    • 第三步

    • 第四步
      将得到一下记录值信息

    域名证书申请验证(二选一)

    手动DNS配置方式(推荐)

    • 找到前一步中生成的记录值,添加的域名解析中,如下图中的文本信息:
    • 添加到如下图中的域名解析中:
    • 添加完成之后刷新,如果出现下图内容,说明域名解析配置成功:
    • 点击下载按钮,下载证书文件


      其中包含了4种容器的配置证书;

    本地文件验证(麻烦,不建议,用上面推荐的方式即可)

    注意!!!! 如果已经按上面的手动DNS配置好了,请忽略这个步骤
    如果你选择的本地文件验证,可以按这个步骤操作

    • 找到如下图的记录值:

    • 本地创建以下文件目录、文件名及文件内容:

      文件目录 文件名 文件内容
      /.well-known/pki-validation fileauth.txt 201708*****(根据自己实际的只填写)

      注:window下创建.well-known文件夹时,会提示“请输入文件名”的错误信息,无法创建,可以按如下方式创建,进入cmd下,进入要穿件文件夹的盘,输入mkdir .well-known即可创建,如下图:

    • 如果申请文件验证的域名是 www.test.com,那么进行验证访问的链接地址是 http://www.test.com/.well-known/pki-validation/fileauth.txt 或者 https://www.test.com/.well-known/pki-validation/fileauth.txt

    • 如果申请文件验证的域名是泛域名 *.test.com,那么进行验证访问的链接地址是 http://test.com/.well-known/pki-validation/fileauth.txt 或者 https://test.com/.well-known/pki-validation/fileauth.txt

    • 成功之后,文件结构如下:

    • nginx配置文件请求映射

      		location /.well-known/pki-validation/
      		{
      			root E:/本地文件地址/;
      		}
      

      如前端请求:https://www.test.com/.well-known/pki-validation/fileauth.txt之后,nginx会指向本地E:/本地文件地址/.well-known/pki-validation/fileauth.txt文件

    证书配置

    所有容器的证书的配置,可参考腾讯云官网配置说明,本文以Nginx做配置演示说明:

    • 解压下载的证书,找到nginx证书文件夹,可看见以下文件:

    • 将2个文件拷贝纸nginx下的conf文件夹,如下图:

    • 修改ngnix的nginx.conf配置文件

      	server 
      	{
      			listen  443 ssl;
      			server_name www.test.com; #填写绑定证书的域名
      			ssl on;
      			# 后面接的是证书详细的路径
      			ssl_certificate 1_www.test.com_bundle.crt;
      			ssl_certificate_key 2_www.test.com.key;
      			ssl_session_timeout 5m;
      			ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
      			ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
      			ssl_prefer_server_ciphers on;
      			
      			location / {
         				 root   /usr/share/nginx/html;
         				 index  index.html index.htm;
      			}
      
      	 }
      
    • 在ng的http的节点配置DNS服务器的路径

      resolver 223.5.5.5 223.6.6.6 1.2.4.8 114.114.114.114 valid=3600s;
      


      如果没有配置的话,NG无法对域名映射的IP进行解析!

      重启nginx

    测试

    https测试

    浏览器输入:https://www.你的域名.com 能看见NG的主页说明已经正常了

    nginx如何将http请求转成https

    开发过程中,可能是中途才使用到https,之前一直是使用的http,如果按以上配置,配置了https之后,再发起http请求将无法正常的请求到;为了兼容到之前的http服务,我们可在nginx下添加一个http的服务,然后将请求转发到https即可,配置如下:

    server 
    {
    	listen 80;
    	server_name www.test.com;
    	rewrite ^/(.*) https://$server_name/$1 permanent; #跳转到Https
    }
    

    重启nginx并测试:
    浏览器输入: http://www.你的域名.com 将会被转发到: https://www.你的域名.com

    总结

    到这里ssl的证书配置即完成。

    展开全文
  • 一:https的简单介绍及SSL证书的生成 二:https在服务器端的部署,基于tomcat,spring boot 三:让服务器同时支持http、https,基于spring boot 四:https在Android客户端基于okhttp,Retrofit的使用(目前已在...

    Https系列会在下面几篇文章中分别作介绍:

    一:https的简单介绍及SSL证书的生成
    二:https的SSL证书在服务器端的部署,基于tomcat,spring boot
    三:让服务器同时支持http、https,基于spring boot
    四:https的SSL证书在Android端基于okhttp,Retrofit的使用

    所有文章会优先在:
    微信公众号“颜家大少”中发布
    之后才发布到下面博客中:
    颜家大少的博客http://blog.csdn.net/gary_yan
    转载请标明出处


    一:本文的主要内容介绍

    https的介绍
    SSL证书的介绍
    自签名SSL证书介绍及生成方法
    CA证书介绍及申请

    二:https的简单介绍

    HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL(Secure Socket Layer)。

    SSL协议提供的服务主要有:
    1)认证用户和服务器,确保数据发送到正确的客户机和服务器
    2)加密数据以防止数据中途被窃取
    3)维护数据的完整性,确保数据在传输过程中不被改变

    关于https的介绍,网上有很多更详细更专业的资料,在此只作简单介绍,让大家有一些概念性的了解,并最终完成android端和服务器端的https的实现。

    三:SSL证书的作用

    SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。
    SSL证书的两大作用:数据加密和身份认证
    SSL 证书遵守 SSL协议,通过在客户端浏览器和Web服务器之间建立一条SSL安全通道
    一个有效、可信的 SSL 数字证书包括一个公共密钥和一个私用密钥。公共密钥用于加密信息,私用密钥用于解译加密的信息。因此,浏览器指向一个安全域时,SSL 将同步确认服务器和客户端,并创建一种加密方式和一个唯一的会话密钥。它们可以启动一个保证消息的隐私性和完整性的安全会话。

    四:关于自签名SSL证书

    所谓自签名证书,就是自己颁发给自己的证书 ,所以颁证的主体是不可信任的
    自签证书是不会被浏览器信任的证书的,用户在访问自签证书时,浏览器会警告用户此证书不受信任,需要人工确认是否信任此证书,如下图:
    这里写图片描述
    既然自签证书是不可信任的,那为何还有人包括12306也在用自签证书呢?
    主要原因是:
    1)自签证书是免费的
    2)自签证书相对申请CA证书,流程更简单
    3)自签证书同样可以对数据进行加密
    4)自签证书的有效期可以设置很长,免去续签的麻烦
    5)自签证书更方便测试,比如说你想生成多少个不同服务器ip的都可以
    所以对于一些个人开发者来说使用自签证书可能会更方便,只要你能接受别人浏览你网站时弹出的提醒:不安全

    五:关于CA 签名SSL证书

    相对自签证书的自己给自己颁证,由权威的证书授权机构(Certificate Authority)颁发的签名证书,我们称之为:CA证书
    CA证书保证书持有者的身份和公钥的拥有权
    浏览器对CA证书是信任的,如下图:
    这里写图片描述

    六:自签名SSL证书的生成

    自签证书虽然提示:不安全。但还是有很多上面已提到的好处,所以下面先说说自签证书的生成,主要使用Java JDK下的:keytool.exe
    1:先下载安装Java JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    2:安装完后,根据实际的路径找到keytool.exe,如我的在此路径:C:\Program Files (x86)\Java\jdk1.8.0_101\bin\keytool.exe

    3:生成keystore。打开命令行(cmd),去到keytool所在的路径,运行:

    keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore d:\mykeystore\keystore.p12 -validity 3650  -ext san=ip:192.168.100.132 -dname "CN=garyyan, OU=mycompany, O=mycompany, L=gd, ST=gd, C=china"

    此命令中间只需要输入密码,就能生成keystore,假设密码是:123456
    其中:
    1)keystore可理解为一个数据库,可以存很多个组数据。
    每组数据主要包含下面两种数据:
    a:密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
    b:可信任的证书实体(trusted certificate entries)——只包含公钥
    2)-keystore d:\mykeystore\keystore.p12,指定在d:\mykeystore(先要手动创建此文件夹),生成keystore:keystore.p12
    3)-alias tomcat,为其指明在keystore中的唯一的别名:tomcat ,因为keystore中可能还存有其它的别名,如:tomcat 2
    4)-storetype PKCS12指明密钥仓库类型是PKCS12
    5)-keyalg RSA,指定加密算法,本例中的采用通用的RAS加密算法
    6)-keysize 2048指定密钥的长度为2048
    7)-validity 3650 指定证书的有效期为3650天
    8)-ext san=ip:192.168.100.132请根据你的服务器的IP地址设置,如果不进行设置,客户端在访问的时候可能会报错
    9)-dname “CN=garyyan, OU=mycompany,O=mycompany,L=gd, ST=gd, C=china”
    其中:”CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)”,我在测试的过程中发现随便填就行

    4:导出公钥证书(主要用于客户端)
    运行命令:

    keytool -export -keystore d:\mykeystore\keystore.p12 -alias tomcat -file mycer.cer -storepass 123456

    其中:
    1)-keystore d:\mykeystore\keystore.p12 是指上面的keystore文件
    2)-alias tomcat是指定别名为tomcat的那一组
    3)-file mycer.cer指定在当前目录生成名为mycer.cer的证书
    4)-storepass 123456是上面生成keystore 所用的密码

    七:CA证书的申请

    有很多网站能申请CA证书,如沃通,腾讯,阿里云等,大家可根据自己的喜好去申请
    CA证书又分免费和不同价钱的,当然一分钱一分货,对于我们个人开发者来说,免费的CA证书就足够了,
    我个人主要是想解决当别人访问我的https网站时弹出“不安全”的这个问题,因为“不安全”这个提示被人感觉很像钓鱼网站 :P
    下面主要讲的是去阿里云申请免费型DV SSL证书,此种证书是每个证书绑定一个域名,如有多个域名可申请多个证书
    1:找到阿里云的CA证书
    打开阿里云主页:https://www.aliyun.com/,选“产品”再选“CA证书”如下图:
    这里写图片描述
    2:选择:立即购买
    3:选择免费型DV SSL(最主要是不用钱呵 :p),点立即购买,如下图:
    这里写图片描述
    4:点“确认订单”->”去支付“
    5:点”证书控制台“
    6:点如下图的”补全“,然后填写个人资料
    这里写图片描述
    7:信息补全后点提交,提交后大概一小时左右就能收到证书申请成功的信息,接下来就下载证书:
    去到:”管理控制台“->”产品与服务”->”我的证书“,选择”下载”
    这里写图片描述
    注:如果在审核的时候说DNS有误,那是因为你的是免费证书,需要额外在你绑定的阿里云服务器上增加对此证书的解释
    这里写图片描述
    其中的记录值是你申请证书点“申请进度”页面所对应的值,如下图:

    详细的请参考:https://help.aliyun.com/knowledge_detail/48016.html
    8:阿里云能根据不同的服务器生成不同的证书,如tomcat,apache等,选择自己所要的,如下图:
    这里写图片描述

    至此,”Https系列之一:https的简单介绍及SSL证书的生成”已完成。
    更多内容请看:Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot


    更多内容,请关注微信公众号:颜家大少
    这里写图片描述

    展开全文
  • SSL证书原理

    2019-01-27 12:28:16
    证书的校验逻辑: 标准的证书链: 域名CA(用于认证www.example.com) 代理CA(作为域名的授信机构,中间商赚差价,可能有多级) 根CA(证书的签发机构); 校验逻辑: 客户端(浏览器)先看域名CA,发现证书...

    证书的校验逻辑:

    标准的证书链:

    域名CA(用于认证www.example.com) 代理CA(作为域名的授信机构,中间商赚差价,可能有多级)  根CA(证书的签发机构);

    校验逻辑:

    客户端(浏览器)先看域名CA,发现证书本身认证正常,但是授信机构不认识,认证不通过。

    于是进一步看代理CA,代理CA本身也没毛病,假设仍然不认识,不可信。

    再进一步看代理的授信方,即根CA,可信;于是校验通过。

    可能存在的场景:

    在少数情况下,部分证书厂商会把域名CA和代理CA分开提供,或者干脆不提供代理CA;

    若仅在云平台上传域名CA,那么该CA中仅仅指出本CA由哪个机构颁发,而如果客户端不认可此代理机构(代理商太多,变动大,或者或者部分安卓自带的CA库过时或不完整),那么证书会校验失败。(跟自签名证书效果相同,会导致证书的授信机构不可信)。

    解决方案:

    去证书对应的办法机构官网下载代理商自身的CA(或从浏览器导出),与域名证书合为链式。

    以私钥--->域名CA--->代理CA--->根CA为顺序合成,根CA可以不要,因为根CA大多都内置到浏览器中了,且有效期为10年或20年。合成为.pem文件然后上传。

    此时,即使客户端CA不信任域名CA与代理CA,也会信任根CA,所以根CA认为此代理可信,那么代理CA就可信,进一步代理认证的域名也就可信,校验通过。

     

     

    CA:

    CA(Certificate Authority)是证书的签发机构,它是负责管理和签发证书的第三方机构,是受到广泛信任的机构。一般在我们的电脑中,浏览器里,或者手机里都会内置一批这样的受信机构的根证书。

    证书信任链:

    比如我是CA机构我签发了一封证书 我这份证书是信任B证书的另外B证书又信任了其他的C证书......那么这条链条下去的都可以信任。所以一旦CA机构的根证书不可信了,那么所有由他签发出来的证书将全部变得不可信,后果很严重。

    公钥密码体制:

    公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:

    • 加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。 
    • 解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解密算法和私钥。注意,由公钥加密的内容,只能由私钥进行解密,也就是说,由公钥加密的内容,如果不知道私钥,是无法解密的。

    CA证书:

    顾名思义CA证书就是由CA机构签发的证书。其实证书谁都可以签,你也可以自己给自己签发证书,但是由于你自己并不是被广泛信任的机构,所以你自己签发的证书并没有什么用。公网也不会信任你的证书。服务器证书包括以下几种信息:

    • 证书的发布机构 
    • 证书的有效期 
    • 公钥 
    • 证书所有者(Subject) 
    • 签名所使用的算法 
    • 指纹以及指纹算法

    证书格式:

    .csr  证书请求文件,用于请求证书,没有实际的作用。制作.csr文件  https://www.cnblogs.com/lhj588/p/6069890.html

    Private/.key   证书私钥,用于解密

    *.PFX *.P12 是二进制格式,同时含证书和私钥,一般有密码保护。

    *.DER *.CER : 这样的证书文件是二进制格式,只含有证书信息,不包含私钥。

    *.CRT : 这样的文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与*.DER/*.CER相同。

    *.PEM : 一般是文本格式,可以放证书或私钥,或者两者都包含。 *.PEM如果只包含私钥,那一般用 *.KEY代替。

    展开全文
  • 使用JDK自带工具keytool生成ssl证书

    万次阅读 多人点赞 2018-05-17 14:36:39
    使用JDK自带工具keytool生成ssl证书 HTTPS简介 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议。...
  • 关于SSL证书之证书链

    千次阅读 2019-01-14 11:41:09
    关于SSL证书之证书链 证书链由两个环节组成—信任锚(CA 证书)环节和已签名证书环节。自我签名的证书仅有一个环节的长度—信任锚环节就是已签名证书本身。 证书链可以有任意环节的长度,所以在三节的链中,信任锚...
  • SSL证书详细介绍

    2020-02-18 20:23:33
    SSL证书详细介绍 背景介绍 每个人都有自己的身份证,身份证都是由警局进行办理,有身份证可以证明你是合法公民,没有身份证说明这个人很可能有问题。 回到正题,今天介绍的是SSL证书,那么SSL证书实际上充当上述...
  • 自签发SSL证书

    千次阅读 2018-12-08 17:42:18
    SSL证书 当网站需要启用HTTPS的时候,你就需要SSL证书了。 一个证书中包含了公钥、持有者信息、证明证书内容有效的签名以及证书有效期,和其他额外信息。 证书分为根证书(root Certificates),中间证书...
  • ssl证书

    2018-08-03 15:04:06
    访问百度: https://www.baidu.com/ 其中https是访问协议, baidu.com是域名 当在浏览器地址栏输入fanyi.baidu.com 看上去前面没有加上协议, 将基拷贝出来是 http://fanyi.baidu.com/ 其实就是使用了http...
  •   一.... 第一步:在charles里设置允许手机联网的权限,并设置接入接口 在Charles的菜单栏上选择"Proxy"...,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口),并且勾上”Enable ...
  • 获取ssl证书 可以参考这篇文章:https://blog.csdn.net/hx7013/article/details/79711288 获取下来的证书里面包含了两个文件各种平台密钥文件,这里我们选用nginx, 里面包含了两个文件,以key和pem结尾: 在...
  • SSL证书/TLS证书是什么

    千次阅读 2018-01-29 11:59:01
    A. SSL协议与TLS是什么?它们的功能是什么? 答:SSL(Security Socket Layer)是一种广泛运用在互联网上的资料加密协议;...3. 透过SSL证书内的公共金钥加密资料传输至服务器端,服务器端用私密金钥解密来证明
  • 可能很多人潜意识会觉得不需要更换ssl证书,其实大错特错,当然了这里的ssl证书不包括自签名ssl证书,因为它是由自己签发完成的,想签多少年就多少年,不受任何浏览器的信任,所以基本没什么安全保障。由受信任的ca...
  • 推荐购买GlobalSign SSL,GeoTrust SSL ,Symante SSL证书, SSL通常是因为没有正确安装证书,请再检查一下是否删除了原来的测试证书,如果网站使用的证书是正确的,请重新启动webserver。 问题:此网站出具的安全...
  • 对于这个https协议的话通常是用ssl证书来切换的。所以这个ssl证书一旦发生错误的话,那么这个https就会随之错误。那么ssl证书错误解决方法有哪些,下面可以来看一下。 1、加入你的ssl证书不是正规的一...
  • PHPWAMP集成环境安装配置https证书很简单 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf 去掉上面3个的注释 ...
  • 针对这些问题,整理出一些常见SSL证书错误代码及解决方法,快来收藏吧! 下面以火狐浏览器为例: 错误一:SSL证书不是由信任机构办法的证书,错误代码:NET-ERR-CERT-AUTHORITY-INVALID 这种错误提示是根证书...
  • Tomcat安装SSL证书

    万次阅读 热门讨论 2018-06-01 12:15:57
    前两天看到一篇文章,介绍了两个申请SSL证书的网站,具体是哪两个网站已经不记得了,只记得一个要钱,一个免费。 于是我就萌发了给自己的网站加装个SSL证书的念头,正好26号晚上的时候有兴致,也有点时间,就开始...
  • 通配符SSL证书可通过在单个证书上保护您的域无限子域来节省您的金钱时间。通配符证书的工作方式与常规SSL证书相同,允许您保护网站与客户的Internet浏览器之间的连接 - 具有一个主要优势。 单个通配符SSL证书...
  • 今天向大家说的就是OV SSL 证书EV SSL证书,相信看完,会对这两个证书留下深刻的印象。 OV组织验证型SSL证书提供了对个人或者是该机构的审核,可以准确知道对方的身份,安全性很高。它是企业组织类型的SSL证书,...
  • 网站如果想要实现HTTPS加密传输的话就需要...电子证书认证机构会审核证书申请人对域名的所有权,需要提供企业的详情信息,验证身份域名所有权安装完之后,EVSSL证书是适合所有企业类型的,因此EVSSL证书的范围非...
  • 免费SSL证书几乎泛滥,很多对SSL证书有需求的用户一直在纠结免费SSL证书是否可用,免费SSL证书与收费的SSL证书究竟有何区别。环度网信小编今天将这两种证书进行对比,仅供参考。 首先,无论您是需要免费的SSL证书...
  • SSL证书的显示形式就是在浏览器地址栏显示绿色小锁标志,给人一种安全感,那么ssl证书具体有什么作用呢? 下面是给大家总结的几点ssl证书的作用: ssl证书的作用: ...但是SSL证书错误怎么解决?我们在使用S...
  • 十大免费SSL证书:网站免费添加HTTPS加密
  • SSL证书的选择

    2016-05-20 09:26:07
    在本文中,我们将先简要介绍SSL定义及其工作原理,并探讨目前各种可用的SSL证书类型以及企业如何选择最佳的SSL。 SSL定义 SSL及传输层安全协议(TLS)是在服务器互联网客户端之间创建加密链接的安全协议,通常是在...
  • 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期

    万次阅读 多人点赞 2018-02-05 17:45:19
      有HTTPS的时候,通俗地讲所有的数据传输都会被加密,你网站之间的数据交流也就更加安全。 怎样配置 相关简介 Let’s Encrypt   如果要启用HTTPS,我们就需要从证书授权机构处获
  • 申请免费ssl证书

    千次阅读 2019-04-11 00:33:47
    目前网站业务系统要求使用https协议的场景越来越多了,因此对ssl证书的申请变成了常见的运维工作。本文介绍三种免费申请ssl证书办法: 一、阿里云服务器申请诺顿免费ssl证书 1、购买CA证书 ...
  • 免费SSL证书大全,附阿里云、百度云、腾讯云免费SSL证书申请攻略 摘要:随着这两年SSL证书的普及,使用了SSL证书启用了HTTPS协议的网站越来越多了,最近四座网为了把网站也开启全站HTTPS,特意申请了一个免费的SSL...
  • Tomcat配置 https SSL证书

    万次阅读 热门讨论 2017-08-13 16:28:11
    公司网站链接要由原来的http超文本传输协议访问改为https SSl加密传输协议访问。 HTTP与HTTPS的区别:HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私...
  • 这里说下Linux 系统怎么通过openssl命令生成 证书。  首先执行如下命令生成一个key  openssl genrsa -des3 -out ssl.key 1024  然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。...

空空如也

1 2 3 4 5 ... 20
收藏数 143,954
精华内容 57,581
关键字:

ssl证书