如题。我在实验环境里,分别要为两个endpoint(T9和T129)生成证书。

证书是如何生成的呢?

证书是由根证书机构签发的。申请证书的人将request提交给根证书机构,然后根证书机构根据request返还一个签好名的证书。

首先,要弄出这三个人来。(生成私钥)

[root@T9 OUTPUT]# ./bin/pki --gen --type ed25519 --outform pem > tong.pem
[root@T9 OUTPUT]# ./bin/pki --gen --type ed25519 --outform pem > t9.pem
[root@T9 OUTPUT]# ./bin/pki --gen --type ed25519 --outform pem > t129.pem

tong是根证书机构的实体。T9和T129是两个endpoint。

然后,tong建立了一个根证书机构。它并不是个权威,它的机构也不是权威机构。所以,我们管这个叫“自签名证书” (生成根证书)

[root@T9 OUTPUT]# ./bin/pki --self --ca --lifetime  --in tong.pem --dn "C=CH, O=tong, CN=tong Root CA" --outform pem > tongCert.pem

建好了~~~

T9和T129分别用私钥生成自己的request

[root@T9 OUTPUT]# ./bin/pki --req --type priv --in t9.pem --dn "C=CH, O=t9, CN=t9.tong.localhost" --san t9.tong.localhost --outform pem > t9Req.pem
[root@T9 OUTPUT]# ./bin/pki --req --type priv --in t129.pem --dn "C=CH, O=t129, CN=t129.tong.localhost" --san t129.tong.localhost --outform pem > t129Req.pem

tong用自己的根证书,拿着两个request,分别给T9和T129颁发证书

[root@T9 OUTPUT]# ./bin/pki --issue --cacert tongCert.pem --cakey tong.pem --type pkcs10 --in t9Req.pem --serial  --lifetime  --outform pem > t9Cert.pem
[root@T9 OUTPUT]# ./bin/pki --issue --cacert tongCert.pem --cakey tong.pem --type pkcs10 --in t129Req.pem --serial --lifetime --outform pem > t129Cert.pem

好了,来个全家福

[root@T9 OUTPUT]# ls -l
-rw-r--r-- root root Dec : t129Cert.pem
-rw-r--r-- root root Dec : t129.pem
-rw-r--r-- root root Dec : t129Req.pem
-rw-r--r-- root root Dec : t9Cert.pem
-rw-r--r-- root root Dec : t9.pem
-rw-r--r-- root root Dec : t9Req.pem
-rw-r--r-- root root Dec : tongCert.pem
-rw-r--r-- root root Dec : tong.pem
[root@T9 OUTPUT]#

那,为啥要这样搞呢?

因为在计算机的世界里,证书代表着信任传递。作为用户是弱势群体,我们没法判断一个站点或者server是不是骗子。但是我们相信权威根证书机构就都是好人。(不过也有例外,想当年某权威机构签名了某Cert的证书来使其完成不可告人的目的。导致开源社区里纷纷删除了该根证书。)

一般的客户端,浏览器。OS里都会授权信任根证书。然后所以在这个根证书机构签过名的子机构,凭着他们的签名证书,我们也将信任他们。

回到我的例子里。实验中,我的两个endpoint会分别信任根证书tongCert.pem。然后他们会彼此检测对方的签名证书是否被信任。

更多:[https][openssl] OpenSSL 公钥、私钥以及自签名证书

完。

[ipsec][strongswan] 用strongswan pki工具生成自签名证书的更多相关文章

  1. keytool工具生成自签名证书并且通过浏览器导入证书

    1.生成服务器证书库 keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -keysize 1024 -validity 365 - ...

  2. 使用terraform 生成自签名证书

    terraform 是一个很不错的基础设施工具,我们可以用来做关于基础设施部署的事情,可以实现基础设施即代码 以下演示一个简单的自签名证书的生成(使用tls provider) main.tf 文件 ...

  3. cmd命令生成android签名证书

    cmd命令生成android签名证书,有空在写一篇eclipse导出带签名的apk,这里面包括生成新的签名.现在还是讲讲在cmd怎么操作生成签名证书. 1.dos下进入JDK的bin目录 运行如下命令 ...

  4. openssl生成自签名证书

    1.生成x509格式的CA自签名证书 openssl req -new -x509 -keyout ca.key -out ca.crt 2.生成服务端的私钥(key文件)及申请证书文件csr文件 o ...

  5. windows下使用makecert命令生成自签名证书

    1.makecert命令路径 C:\Program Files (x86)\Windows Kits\8.1\bin\x64 2.生成一个自签名证书 makecert -r -pe -n " ...

  6. 用OpenSSL生成自签名证书在IIS上搭建Https站点(用于iOS的https访问)

    前提: 先安装openssl,安装有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.这里推荐第一种. 安装包:http://slproweb.com/products/ ...

  7. ios生成自签名证书,实现web下载安装app

    抄自http://beyondvincent.com/blog/2014/03/17/five-tips-for-using-self-signed-ssl-certificates-with-ios ...

  8. 生成自签名证书-开启https

    1.生成CA证书 # 生成 CA 私钥 openssl genrsa -out ca.key 2048 # X.509 Certificate Signing Request (CSR) Manage ...

  9. OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)

    前提: 先安装openssl,安装有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.这里推荐第一种. 安装包:http://slproweb.com/products/ ...

随机推荐

  1. Visual Studio进行Web性能测试- Part I

    Visual Studio进行Web性能测试- Part I 2012-08-29 08:01 by 知平软件, 5356 阅读, 9 评论, 收藏, 编辑 原文作者:Ambily.raj Visua ...

  2. SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序

    SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论   异常汇总:http://www ...

  3. TensorFlow+Keras 01 人工智能、机器学习、深度学习简介

    1 人工智能.机器学习.深度学习的关系 “人工智能” 一词最早是再20世纪50年代提出来的. “ 机器学习 ” 是通过算法,使用大量数据进行训练,训练完成后会产生模型 有监督的学习 supervise ...

  4. Mybatis中自定义映射xml参数传递使用

    在使用mybatis框架时,大多时候自动生成的mapper.xml文件能满足我们所需的数据库操作,但一些情况下还是需要我们自己写sql:为了加深印象,总结了下参数传递的方式以及各个关键字的含义如下: ...

  5. CentOS 6.5 x64下查看服务版本

    1.查看服务是否是64位 [root@Yimmei ~]# getconf LONG_BIT 642.查看服务器版本信息 [root@Yimmei ~]# lsb_release -a LSB Ver ...

  6. SNF软件开发机器人-子系统-表单-表单设计

    表单设计 在我们做程序时总要对表单的内容进行设计,然而对控件位置等信息的调整总是麻烦的,还常常容易出错.SNF软件机器人完美的解决了这个问题. 1.效果展示: 2.使用说明: (1)打开页面,选中开发 ...

  7. 二叉树遍历-c实现

    这里主要是三种遍历,先序(preorder,NLR),中序(Inorder,LNR),后序(Postorder,LRN) N:node,L:left,R:right 基本排序:先序(NLR,节点,左, ...

  8. python(62):保留两位小数

    转载:https://blog.csdn.net/jiandanjinxin/article/details/77752297 在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分). 例如 ...

  9. 【Java】类加载过程

    JVM把class文件加载到内存,并对数据进行校验.解析和初始化,最终形成JVM可以直接使用的Java类型的过程. 类加载的过程主要分为三个部分: 加载 链接 初始化 而链接又可以细分为三个小部分: ...

  10. 在tmux会话之间共享窗口(Windows & Panes)

    去年写过一篇 从Tmux 转到GNU Screen,理由是我可以 在两个显示器上通过PuTTY连接到同一个GNU Screen会话,但两个显示器可以显示不同的窗口(用GNU Screen的术语来说,是 ...