原文地址: http://blog.csdn.net/erice_e/article/details/53486071

  1. 客户端认证服务器:

    正规的做法是:到国际知名的证书颁发机构,如VeriSign申请一本服务器证书,比如支付宝的首页,点击小锁的图标,可以看到支付宝是通过VeriSign认证颁发的服务器证书:

    我们用的操作系统(windows, linux, unix ,android, ios等)都预置了很多信任的根证书,比如我的windows中就包含VeriSign的根证书,那么浏览器访问服务器比如支付宝www.alipay.com时,SSL协议握手时服务器就会把它的服务器证书发给用户浏览器,而这本服务器证书又是比如VeriSign颁发的,自然就验证通过了。

    国内许多公司的做法:自己做根证书CA(自己充当类似于VeriSign的角色),然后让用户下载安装根CA(当然了,其中只含有公钥)到机器中,12306就是这样干的(SRCA就是12306的根证书),然后再自己给自己颁发服务器证书,这样用户机器上也有他的CA,服务器发来的服务器证书也是这本CA颁发的,当然也顺利通过了。

  2. 服务器认证客户端:

    服务器端通过根CA给客户端颁发客户端证书,在制作客户端证书时加上和机器相关的信息就可以保证在特定的时候某个帐号只能在这台机器上和服务器交换报文,比如我们用支付宝时必须下载安装数字证书时,可以命名这本证书叫"我的笔记本"或者是"公司电脑"之类的,就是支付宝给用户颁发证书,只能在这台机器上用,你换了机器就必须重新申请。建立SSL连接时,先是服务器将自己的服务器证书发给客户端,验证通过后,客户端就把自己的客户端证书发给服务器进行验证,如果通过,再进行后面的处理。

下面来说说如何自己制作根CA证书以及服务器证书和客户端证书:

客户端安装服务器根证书ca.crt到客户端信任证书库中,服务器端安装服务器根证书ca.crt到服务器信任证书库中。

SSL握手时,服务器先将服务器证书server.p12发给客户端,客户端会到客户端信任证书库中进行验证,

因为server.p12是根证书CA颁发的,所以验证通过;然后客户端将客户端证书client.p12发给服务器,同理因为client.p12是根证书CA颁发的,所以验证通过。

先下载安装xca工具,地址是http://xca.hohnstaedt.de/

先用xca创建一本ca证书

xca打开的界面

依次File, New DataBase,选择xdb文件保存路径,再输入密码

切换到Certificates页面,点击New Certificate

出现如下界面

因为要创建根证书,这里选择序号为1的自认证证书,签名算法选择SHA 256,证书模版选择默认CA,再点击Apply all(这个不能漏)如下所示:

再切到Subject页面,填好各个字段,都可以随便填

再点击Generate a new key生产私钥

最后点击OK,CA证书做好了,有效期默认10年

将根证书导出成只包含公钥的证书格式,这本根证书就是放在网站上供用户下载安装,或主动安装到客户机器中的:

制作服务器证书、客户端证书和制作CA证书差不多,只有两个地方不一样:

  1. 选择已经制作好的根CA,然后点击New Certificate

    签名时,选择使用根证书,这里是hangzhou进行签名颁发,然后证书模版选择服务器(制作客户端证书就选择HTTPS_client),其他都和制作根证书一样,然后点击Apply all(这个一定不能忘),然后再切到Subject、Extension页面填写相应的东西就OK了

    制作完成:

    然后再将服务器证书导出来,选择p12格式

    同理制作客户端证书,并将之导出,也是p12格式的证书,包含私钥

自建CA 颁发证书相关推荐

  1. 部署自建CA颁发证书实现https加密

    理论忽略:百度上很多 需求:自建证书并实现域名的https加密 部署: 在linux机器上执行以下命令生成私钥 mkdir -p /opt/ssl-cert cd  /opt/ssl-cert 1.# ...

  2. ca 自建 颁发证书_自建 ca 及使用 ca 颁发证书

    创建CA: 一.安装openssl [root@localhost ~]# yum install -y openssl 二.创建CA的相关文件及目录 mkdir /opt/root_ca & ...

  3. 自建ca根证书_如何创建私有 CA 并签发证书

    为什么需要自己的 CA? 因为公共 CA (比如排名前几的这几家:Comodo, Symantec, GlobalSign, DigiCert, StartCom)颁发证书要收费,而且价格很贵.当然现 ...

  4. 自建ca根证书_独立根CA的安装与证书申请

    独立根 CA 的安装与证书申请  独立根 CA 与企业 CA 不同,独立 CA 不需要使用 Active Directory 目录服务.独 立 CA 最初是为了用作 CA 层次结构中的受信任的脱机根 ...

  5. openssl 自建CA签发证书 网站https的ssl通信

    <<COMMENT X509 文件扩展名 首先我们要理解文件的扩展名代表什么.DER.PEM.CRT和CER这些扩展名经常令人困惑. 很多人错误地认为这些扩展名可以互相代替.尽管的确有时候 ...

  6. Java实现自签名证书,CA颁发证书

    产生证书库,并创建CA    X500Name 就是你的个人信息了,查查JAVA API 就行了 import java.io.File; import java.io.FileInputStream ...

  7. ca 自建 颁发证书_openssl自建CA后颁发证书

    一 自签证书实践 在介绍颁发证书之前先做一个试验,用自签证书来通过chrome访问: 1 通过openssl一键自签证书,生成证书和私钥: sudo openssl req -x509 -nodes ...

  8. 自建CA给内部网站颁发SSL证书

    Windows Server - 建设篇 第二章 自建CA给内部网站颁发SSL证书 Windows Server - 建设篇 系列文章回顾 下章内容 前言 实施步骤 Openssl申请证书签发请求(带 ...

  9. openssl 自建ca,颁发客户端证书

    openssl 自建ca,颁发客户端证书 概念理解 数字证书: 数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而 ...

  10. 搭建开源CA认证-申请颁发证书

    文章目录 一.CA机构分级管理 二.OpenSSL (一)生成随机数: (二)ASCII编码与Base64编码转换: (三)随机数生成器: 三.搭建私有CA (一)证书申请及签署步骤: (二)搭建CA ...

最新文章

  1. RabbitMQ 学习
  2. Java项目构建打包规范,jenkins2.121.1构建java项目环境,一键打包发布
  3. 微服务架构的优势与不足(三)
  4. 前端那些年--npm
  5. 终端编译opengl程序编译运行_ubuntu编译opengl和demo之二(glfw版本)
  6. docker国内镜像链接
  7. 字符(串)输入输出函数
  8. LeetCode 107. Binary Tree Level Order Traversal II
  9. Site-Site Ipsec ×××配置和验证
  10. html给看板娘添加语音,用html代码给网页加个live2d看板娘吧
  11. EDEM中对几何体(机械设备)表面的精确受力分析
  12. Tiny6410 的NandFlash(K9GAG08U0E)
  13. 弘辽科技:淘宝商品入池怎么设置?技巧有哪些?
  14. 上滑解锁流程 - 安卓R
  15. 概率论与数理统计——几何分布的无记忆性证明
  16. svn导出历史版本、指定版本
  17. 以太坊的区块和存储(一):区块头
  18. c/c++中的标识符解析
  19. 多个图元合并其中相邻的图元
  20. 中国292座城市政商关系排行榜(2020)

热门文章

  1. Repeated DNA
  2. uva 563 Crimewave
  3. Windows10动态壁纸Wallpaper软件
  4. BIGEMAP如何发布百度离线地图及二次开发API
  5. Python GUI - 利用Tkinter制作个性签名设计软件!
  6. 8年开发,连登陆接口都写这么烂...
  7. 本地Navicat连接阿里云数据库RDS for MySQL(全网最详细,没有之一!)
  8. sigmoid代码实现
  9. java 多线程抢票_多线程抢票详解
  10. todd li 保留_用Todd Motto对JavaScript进行解密