目录

  • TLS双向认证需要的认证文件
  • 制作根证书
    • 第三方机构的根证书
    • 自签根证书(基于openssl)
    • 根证书签发证书
      • 服务端证书
      • 客户端证书
      • 最终需要使用的文件

TLS双向认证需要的认证文件

  • 服务端:server.crt、server.key
  • 客户端:client.crt、client.key
  • 双方信任的:root.crt

说明:服务端和客户端都需要这三个重要的认证文件:

  • 根证书,双方必须信任这个证书,因为对方的证书就是由此根证书颁发的
  • 自己的证书,TLS通讯的加密基础
  • 自己的密钥,TLS通讯的加密基础

制作根证书

第三方机构的根证书

这是比较常见的根证书,一般以付费的方式购买签发的证书,这种的好处就是作为客户端、或某些服务器而言通讯基础建立在app、浏览器上。作为C端不用再去信任根证书(默认已经安装了服务商的根证书),但我们作为tcp层的自研通讯而言,在不涩及开放、生态、系统级的通讯规范下,用自己生成的根证书即可

自签根证书(基于openssl)

mkdir -p /home/tls/root
cd /home/tls/root #文件有点多所有先创个文件夹放着
# 1,生成根证书密钥、牢记密码(root.key)
openssl genrsa -aes256 -out root.key 4096
# 2,生成根证书请求文件(root.csr)
openssl req -new -key root.key -out root.csr
# 3,自签根证书(root.crt),10年有效期,别写一年,太短了
openssl x509 -req -days 3650 -sha256 -extensions v3_ca -signkey root.key -in root.csr -out root.crt

至此重要的两个文件生成了root.keyroot.crt其中root.key和密码妥善保管,不能泄露。

根证书签发证书

这步就是生成服务端和客户端的证书和密钥了。不管是服务端和客户端过程都是一样的,重复此步就行。下面以

服务端证书

mkdir -p /home/tls/server
cd /home/tls/server
# 1,生成根证书密钥、牢记密码(server.key)
openssl genrsa -aes256 -out server.key 4096
# 2,生成根证书请求文件(server.csr)
openssl req -new -key server.key -out root.csr
# 3,使用root.crt签发证书(server.crt)
openssl x509 -req -days 3650 -sha256 -extensions v3_req -CA ../root/root.crt -CAkey ../root/root.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.crt# 4,由于java读取密钥是pkcs8 格式所以转换密钥格式
openssl pkcs8 -topk8 -inform PEM -in server.key -outform PEM -nocrypt > server.pkcs8.key

客户端证书

mkdir -p /home/tls/client
cd /home/tls/client
# 1,生成根证书密钥、牢记密码(client.key)
openssl genrsa -aes256 -out client.key 4096
# 2,生成根证书请求文件(client.csr)
openssl req -new -key client.key -out client.csr
# 3,使用root.crt签发证书(client.crt)
openssl x509 -req -days 3650 -sha256 -extensions v3_req -CA ../root/root.crt -CAkey ../root/root.key -CAserial ca.srl -CAcreateserial -in client.csr -out client.crt# 4,由于java读取密钥是pkcs8 格式所以转换密钥格式
openssl pkcs8 -topk8 -inform PEM -in client.key-outform PEM -nocrypt > client.pkcs8.key

在生成证书时,前两步都是一样的,就是在颁发证书有点区别一个是自签、一个是被签这样下来后是不是感觉很简单啊。

最终需要使用的文件

  • root/root.crt
  • server/server.crt
  • server/server.pkcs8.key
  • client/client.crt
  • client/client.pkcs8.key

TLS双向认证之生成双端证书信息相关推荐

  1. HTTPS|SSL笔记-SSL双向认证失败(服务端证书信任库不含客户端证书)握手过程(含wireshark分析)

    这里我把服务端信任库添加了其他证书,不含客户端的证书,这时SSL认证失败报错如下.下面来分析下: 1. 首先是TCP三次握手,对应的包如下: 2. 握手成功后,客户端发送自己支持的加密套,和随机数给服 ...

  2. SSL/TLS 双向认证(一) -- SSL/TLS工作原理

    本文部分参考: https://www.wosign.com/faq/faq2016-0309-03.htm https://www.wosign.com/faq/faq2016-0309-04.ht ...

  3. SSL/TLS 双向认证(一) -- SSL/TLS 工作原理

    本文部分参考: https://www.wosign.com/faq/faq2016-0309-03.htm https://www.wosign.com/faq/faq2016-0309-04.ht ...

  4. SSL/TLS 双向认证

    其他参考链接 链接: https://blog.csdn.net/xxss120/article/details/78758832. 链接: https://blog.csdn.net/gx_1983 ...

  5. mosquitto支持ssl/tls双向认证

    一.生成证书 1.生成根证书ca # # Generate the certificate. #PROJECT_NAME="TLS Project"#配置文件 # Generate ...

  6. CA、TLS双向认证

    1.名词解释 TLS:传输层安全协议 Transport Layer Security的缩写 CA 证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构. CSR 是 ...

  7. 零基础搭建双端影视盒子——三、生成双端影视

    1.在生成双端之前,需要将之前搭建的苹果CMS配置一下. 在 系统 → 开放API配置 中设置接口开关.图片域名,图片域名就是你苹果CMS域名.如果设置错误的话,app上会不展示图片的. 2.下载开发 ...

  8. 服务器客户端证书,客户端如何验证HTTPS服务端证书信息

    通过一个例子说明客户端如何验证HTTPS服务端的证书信息. 类型浏览器如何验证WEB服务器的证书信息. 生成服务器端证书,以及CA证书 # generate ca certificate $ open ...

  9. GCDAsyncSOcket使用及其SSL/TLS双向认证的实现

    GCDAsyncSoceket使用及其SSL/TLS的实现 关于GCDAsyncSocket:首先我们得知道GCDAsnyc是由第三方开发的一个苹果系统的socket库,功能强大,而且简单易用.当然关 ...

最新文章

  1. “诺奖风向标”2021拉斯克奖公布:授予mRNA疫苗、光遗传学以及戴维·巴尔的摩...
  2. 暴君第一季/全集Tyrant迅雷下载
  3. Professional IronPython
  4. iOS之性能优化·优化App界面的渲染与流畅度
  5. Dapr项目应用探索
  6. Java IO File
  7. [zz]linux修改密码出现Authentication token manipulation error的解决办法
  8. linux基础之基础命令一
  9. 审车按月还是日期_大额存单,应该选择按月付息还是到期一次性还本付息?
  10. linux 内存性能评估,内存性能评估工具vmstat/free/smem使用与解读
  11. HTML+CSS实现小米登录界面
  12. windows安装hbase
  13. 海康威视在linux下使用笔记——ros驱动相机
  14. 将服务注册到eureka服务端
  15. [ZJOI2008]无序运动Movement
  16. scratch和python怎么读_Python如何像scratch一样朗读文字?|python3教程|python入门|python教程...
  17. 为什么Linux会开机黑屏?
  18. 【收藏】2010年Ei收录的中国期刊
  19. 技术面试(上):面试官篇
  20. Particle Builder Elemental Pack for Mac(ae粒子特效模板)

热门文章

  1. Matlab帮助文档网址
  2. 不会编程也能亲手编写一个桌面数字小时钟程序,仅3步轻松实现
  3. UG后处理 三菱 法兰克三轴带刀库备刀通用后处理
  4. pascal和python的区别_C语言和Pascal语言的区别,要详细。
  5. 【三维目标检测】Pointpillars(二)
  6. go遍历目录对lua进行xxtea加密工具
  7. python3网络请求_使用Python3和请求发送XMLHttpRequest并获取响应
  8. 源于实践的ERP123——ERP123方法论(转)
  9. 近世代数 笔记与题型连载 第八章(置换群)
  10. 从前端视角谈 IoT 物联网三部曲:连接智能、交互智能、数据智能