正规流程:去CA机构申请SSL证书

域名型https证书(DVSSL):信任等级一般,只需验证网站的真实性便可颁发证书保护网站;

企业型https证书(OVSSL):信任等级高,须要验证企业的身份,审核严格,安全性更强;

增强型https证书(EVSSL):信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最好,同时可以激活绿色网址栏

1. CA证书理解?CA证书的作用?

CA证书顾名思义就是由CA(Certification Authority)机构发布的数字证书。要对CA证书完全理解及其作用,首先要理解SSL。SSL(security sockets layer,安全套接层)是为网络通信提供安全及数据完整性的一种安全协议。SSL3.0版本以后又被称为TLS。SSL位于TCP与各应用层之间,是操作系统向外提供的API。SSL如何保证网络通信的安全和数据的完整性呢?就是采用了两种手段:身份认证和数据加密。首先身份认证就需要用到CA证书了。先了解CA证书具体包括哪些内容:

颁发者 
使用者 
版本 
签名算法 
签名哈希算法 
使用者 
公钥 
指纹 
指纹算法 
…… 
上述中颁发者、使用者、版本等内容好理解,颁发者就是CA机构,下面会讲到。对于签名算法、签名哈希算法的理解,首先要先理解签名是什么东东?联系到实际情况,当我们向某机构提供报告时,往往在报告最后加上个人的名字,以表示该报告是我本人的。签名在网络通讯中的应用称为数字签名,当服务器向客户端发送信息时,会将报文生成报文摘要,同时对报文摘要进行hash计算,得到hash值,然后对hash值进行加密,然后将加密的hash值放置在报文后面,这个加密后的hash值就称为签名。服务器将报文、签名和数字证书一同发送给客户端。客户端收到这些信息后,会首先验证签名,利用签名算法对签名进行解密,得到报文摘要的hash值,然后将得到的报文生成报文摘要并利用签名hash算法生成新的hash值,通过对比这两个hash值是否一致,就能判断信息是否完整,是否是由真正的服务器发送的。可知签名有两个作用确认消息发送方可靠,确认消息完整准确。

上面提到了hash值的加密,我们还需要理解SSL的加密机制,在使用SSL的网络通讯过程中,消息在请求和响应中都是加密传送的。首先要知道加密算法分为两种:对称加密和非对称加密。对称加密就是发送双发使用相同的密钥对消息进行加解密,常见的对称加密为DES、3DES,AES等。非对称加密是发送双方各自拥有一对公钥私钥,其中公钥是公开的,私钥是保密的。当发送方向接收方发送消息时,发送方利用接收方的公钥对消息进行加密,接收方收到消息后,利用自己的私钥解密就能得到消息的明文。其中非对称加密方法有RSA、Elgamal、ECC等。此处只是简单了说明了这两种加密机制的过程,若要深入理解它们的原理、过程请搜索相应的资料,很容易搜索到。

好了,了解了签名原理和两种加密机制,我们继续理解网络通讯中是怎么利用CA证书进行身份认证的?客户端与服务端需要经过一个握手的过程才能完成身份认证,建立一个安全的连接。握手的过程如下:

  1. 客户端访问服务器(比如:https://www.12306.cn),发送ssl版本、客户端支持的加密算法、随机数等消息。
  2. 服务器向客户端发送ssl版本、随机数、加密算法、证书(证书出现了)等消息。
  3. 客户端收到消息后,判断证书是否可信(如何判断可信,看下文介绍),若可信,则继续通信,发送消息包括:向服务器发送一个随机数,从证书中获取服务器端的公钥,对随机数加密;编码改变通知,表示随后信息都将使用双方协定的加密方法和密钥发送;客户端握手结束通知。
  4. 服务器端对数据解密得到随机数,发送消息:编码改变通知,表示随后信息都将使用双方协定的加密方法和密钥发送。

以上就是整个握手的过程,在第三步实际上就完成了身份的认证,第四、五步是进行密钥的商定,因为非对称加密算法对数据加密非常慢,效率低,而对称加密加密效率很高,因此在整个握手过程要生成一个对称加密密钥,然后数据传输中使用对称加密算法对数据加密。可知ssl整个握手过程包括身份认证、密钥商定。上述讲述ssl的握手过程比较简单,想要深入理解ssl原理,下面这篇博文讲的不错: 
https://segmentfault.com/a/1190000002554673 
一定要看上面的博文,否则无法彻底理解证书使用的原理。

2.客户端是如何验证CA证书是可信任的?

一般来说,现在公共网站数据传输都是使用SSL,即通过https协议访问。Https就是http加SSL。在上面SSL握手过程中,客户端是如何验证服务器发送的CA证书呢?我们以12306网站为例进行说明,此时,客户端就是浏览器,如果我们是第一次访问12306网站,使用https://www.12306.cn地址访问,返回如下结果: 

提示此网站的安全证书有问题,说明证书不可信,如果我们忽略证书不可信,继续访问网站,打开12306网页,在首页提供一个根证书的下载,见下页面:

下载根证书,安装完毕,再次访问12036网站,就不会提示网站的安全证书有问题了。这是什么机制呢?

打开【工具】菜单(360浏览器为例),然后选择【内容】选项卡,点击【证书】按钮,打开证书窗口,选择【中级证书颁发机构】,会看到已经安装的12306的证书:

只要安装上12306证书,就说明证书是可信的。使用https协议访问时,服务器发送证书向浏览器时,首先查找该证书是否已在信任列表中,然后对证书进行校验,校验成功,那么就证明证书是可信的。另外,证书的认证是安装证书链执行的,证书链的意思是有一个证书机构A,A生成证书B,B也可以生成证书C,比如在证书窗口中有一个360证书,见下图:

360证书的颁发者是certification authority of wosign,在【受信任的根证书颁发机构】中,我们会看到该证书:见下图,

也就是说,certification authority of wosign生成360证书,360可以生成其它的证书。A证书或者certification authority of wosign证书在整个证书链上就被称为根证书,证书验证的机制是只要根证书是受信任的,那么它的子证书都是可信的。比如说,我们使用https协议访问了需要360证书的网站,即使我们不安装360证书,那么网站也不会提示证书不安全,因为,生成360证书的根证书certification authority of wosign证书,在受信任的证书列表中。如果一个证书的根证书是不可信的,那么这个证书肯定也是不可信任的。

由以上可知,根证书在证书验证中极其重要,而且,根证书是无条件信任的,只要我们将根证书安装上,就说明我们对根证书是信任的。比如我们安装12306的根证书,是出于我们对国家的信任,对网站的信任,我们才放心安装这个根证书。对于一些不安全的网站的证书,一定要慎重安装。

另外需要知道的是,【受信任的根证书颁发机构】中的证书是windows预先安装的一些证书,都是国际上很有权威的证书机构,他们证书的生成都有很严格的流程,因此他们的证书被认为是安全,就像我们相信银行是安全,所以把钱存入到银行。

3.有哪些CA机构?

世界上较早的数字认证中心是美国的verisign公司,在windows的证书窗口中可以看到好多verisign公司生成的证书,见下图:

另外还有加拿大的ENTRUST公司,也是很著名的证书机构。中国的安全认证体系分为金融CA和非金融CA。在金融CA方面,根证书由中国人民银行管理,在非金融CA方面,由中国电信负责。中国CA又可分为行业性CA和区域性CA,行业性CA中影响最大是中国金融认证中心和中国电信认证中国;区域性CA主要是以政府为背景,以企业机制运行,其中广东CA中心和上海CA中影响最大。

4.自签名证书的如何生成、安装?

有时候,我们在内部系统传输数据需要使用SSL协议,对数据加密,但是我们又不想花钱去申请CA,这个时候可以使用自签名CA,实现数据加密传输的功能。首先要明确一点就是自签名证书是不安全的,存在安全漏洞,具体看下面的博文介绍:

为什么”自签名SSL证书”不安全? 
https://www.wosign.com/FAQ/selfsigned_SSL_insecure.htm

自签名证书使用jdk中的keytool生成即可,看似神秘,但实际上比较简单,见下博文:

如何利用keytool工具生成数字证书 
https://jingyan.baidu.com/article/b0b63dbfe18eff4a483070f4.html

自签名证书的安装也很简单,见下博文:

添加自签发的 SSL 证书为受信任的根证书 
https://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/

在java编程中,使用socket网络编程,实现SSL协议,对服务器的证书需要导入到客户端的秘钥库中,这样才能完成自动认证,具体实现见下博文:

JAVA SSL SOCKET通信服务器端客户端证书双向认证 
http://blog.csdn.net/matt8/article/details/45071815

理解服务器证书 CASSL相关推荐

  1. 证书服务器 过期,iis7服务器证书过期如何换新的以及证书服务器

    随着计算机的普及,越来越多的人都在使用计算机来工作,随之而来的就是计算机中遇到的各种各样的问题,因为毕竟不是每个人都是学习计算机出身的,而且对计算机的了解也不是特别的透彻,比如说怎样请求证书?服务器证 ...

  2. https详解之 根证书、服务器证书、用户证书的区别 jg证书

    关键句:根证书是第三方被大家信任的认证机构自签名的证书,通常浏览器会内置. 原文:根证书.服务器证书.用户证书的区别_容sir的博客-CSDN博客_根证书和服务器证书https://blog.csdn ...

  3. 微信支付HTTPS服务器证书验证(PHP)

    PHP代码验证是否包含CA证书 如果无法通过验证,请点击连接查看官方操作,安装相应的ca证书即可 # test_wechat_ca.php <?php $data = array('mch_id ...

  4. 服务器证书安装配置指南(Nginx)-天威诚信

    服务器证书安装配置指南(Nginx) 一.生成证书请求 您需要使用CSR生成工具来创建证书请求.    1.下载AutoCSR:   http://www.itrus.cn/soft/autocsr. ...

  5. GDC服务器主机与证书不匹配,调用web服务soap时,错误https URL主机名与客户端信任库中服务器证书上的公用名(CN)不匹配...

    嘿,我想用SAAJ调用soap web服务 我用野蝇10 我试图将此系统属性添加到standalone.xml,但无法工作 20: 53:08208错误[stderr](默认任务-21),原因是:ja ...

  6. 转 openssl 建立服务器证书

    openssl 建立服务器证书 ##  1,建立目录和文件     set path=D:/openssl/bin     D:     cd D:/openssl/conf/     ren ope ...

  7. 服务器证书CA的相关操作

    证书颁发模块 一. 实验环境 1. 证书服务器的ip地址 2. Web服务器的ip地址 3. 客户端的ip地址 4. 客户端访问Web网站 二. Web服务器申请证书 a) 首先要信任CA 1. 选择 ...

  8. mysql服务器证书验证提供信任库_连接到MySQL数据库时有关SSL连接的警告

    连接到MySQL数据库时有关SSL连接的警告 通过以下两个类,我尝试连接到MySQL数据库.但是,我总是得到这个错误:Wed Dec 09 22:46:52 CET 2015 WARN:不建议在没有服 ...

  9. 200 ssl服务器证书无效_服务器证书无效网站显示异常怎么办?

    我们每天都在运用网络, 所以说网络的正常对于我们来说是太重要了.但是在遇到网络问题的时候,有时候我们真的是特别苦恼,因为不会解决,那么现在我就给大家来介绍一些关于网络问题的一个解决方法,首先我们就来看 ...

  10. ca服务器证书鉴定计划,Let’s Encrypt 项目计划自动化地提供免费的 CA 证书

    Let's Encrypt Mozilla.思科.Akamai.IdenTrust.EFF 和密歇根大学研究人员联合宣布了 Let's Encrypt CA 项目,计划为网站提供免费的基本 SSL 证 ...

最新文章

  1. 一个好的网站,应该用什么样的空间or服务器?建站基础知识普及
  2. n!mod p 的求法 数学
  3. golang import 导入包语法介绍 点 别名 下划线
  4. 【错误记录】Android Studio 中 build.gradle 配置 buildFeatures prefab 错误处理 ( AS 4.1 以上开发环境 | Gradle及插件版本 )
  5. torch expand
  6. 第一阶段_第三部分_光照与GI
  7. java通过对.class文件字节码加密,不被轻易反编译出源代码,分析及其实现。
  8. Android入门之常用控件
  9. Visual Studio Code环境变量配置
  10. 子窗体列表在菜单中的实现
  11. jug java_架构大型企业Java项目–我的虚拟JUG会话
  12. ntext字段的REPLACE处理示例.sql
  13. lsof 命令实用用法介绍
  14. Spring 访问数据库
  15. RocketMQ-0.1
  16. 【正则表达式系列】零宽断言
  17. Final Project Proposal ——陈稳霖
  18. datagrid不显示 easy_[Easy UI ]DataGrid 首次进入页面时,不加载任何数据
  19. 蓝桥杯java 大纲,2019 第十届蓝桥杯Java省赛B组个人总结
  20. errors collectiions

热门文章

  1. 期货市场间竞争的比较优势分析
  2. 用 SwiftUI 编写真正的 app
  3. 自然语言处理相关:英文词性缩写一览表
  4. oracle between and 边界查询用法
  5. vue中清除路由缓存
  6. linux cat 压缩文件,Linux cat和zcat命令可能比你意识到的更有用
  7. 千人基因组计划基因分型数据下载
  8. 开源天气时钟项目删减和更新
  9. 利用漏洞溢出掉360安全卫士逆向分析
  10. 用Python来合并图片(SoEasy)