[ipsec][strongswan] 用strongswan pki工具生成自签名证书
如题。我在实验环境里,分别要为两个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工具生成自签名证书的更多相关文章
- keytool工具生成自签名证书并且通过浏览器导入证书
1.生成服务器证书库 keytool -genkey -alias tomcat -keypass changeit -keyalg RSA -keysize 1024 -validity 365 - ...
- 使用terraform 生成自签名证书
terraform 是一个很不错的基础设施工具,我们可以用来做关于基础设施部署的事情,可以实现基础设施即代码 以下演示一个简单的自签名证书的生成(使用tls provider) main.tf 文件 ...
- cmd命令生成android签名证书
cmd命令生成android签名证书,有空在写一篇eclipse导出带签名的apk,这里面包括生成新的签名.现在还是讲讲在cmd怎么操作生成签名证书. 1.dos下进入JDK的bin目录 运行如下命令 ...
- openssl生成自签名证书
1.生成x509格式的CA自签名证书 openssl req -new -x509 -keyout ca.key -out ca.crt 2.生成服务端的私钥(key文件)及申请证书文件csr文件 o ...
- windows下使用makecert命令生成自签名证书
1.makecert命令路径 C:\Program Files (x86)\Windows Kits\8.1\bin\x64 2.生成一个自签名证书 makecert -r -pe -n " ...
- 用OpenSSL生成自签名证书在IIS上搭建Https站点(用于iOS的https访问)
前提: 先安装openssl,安装有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.这里推荐第一种. 安装包:http://slproweb.com/products/ ...
- ios生成自签名证书,实现web下载安装app
抄自http://beyondvincent.com/blog/2014/03/17/five-tips-for-using-self-signed-ssl-certificates-with-ios ...
- 生成自签名证书-开启https
1.生成CA证书 # 生成 CA 私钥 openssl genrsa -out ca.key 2048 # X.509 Certificate Signing Request (CSR) Manage ...
- OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)
前提: 先安装openssl,安装有两种方式,第一种直接下载安装包,装上就可运行:第二种可以自己下载源码,自己编译.这里推荐第一种. 安装包:http://slproweb.com/products/ ...
随机推荐
- 一行代码搞定 R 语言模型输出!(使用 stargazer 包)
引言 使用stargazer包可以将 R 构建的模型结果以LATEX.HTML和ASCII格式输出,方便我们生成标准格式的表格.再结合rmarkdown,你就可以轻轻松松输出一篇优雅的文章啦~本文“使 ...
- Linux报swap空间占用过高,但物理内存还有空余
收到报警,swap空间占用过高,登录到系统查看内存使用详情,看到物理内存还有很多未使用 问题分析 Swap配置对性能的影响分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误.如 ...
- react-native init的时候出现问题:npm WARN React-native@0.35.0 requires a peer of react@~15.3.1 but none was
react-native init的时候出现问题:npm WARN React-native@0.35.0 requires a peer of react@~15.3.1 but none was ...
- 刨根问底 | Elasticsearch 5.X集群多节点角色配置深入详解【转】
转自:https://blog.csdn.net/laoyang360/article/details/78290484 1.问题引出 ES5.X节点类型多了ingest节点类型. 针对3个节点.5个 ...
- idea 自动导入
- F3D模式规则详解
F3D有两个版本,长期版还有短期版 长期版规则 1.购买时候分配 第一队 20% to 奖金池, 56%分给所有人, 30% 持有p3d的人第二队 35% to 奖金池, 43%分给所有人, 8% 持 ...
- mac os系统go安装:go install github.com/nsf/gocode: open /usr/local/go/bin/gocode: permission denied
gocode是go语言代码自动提示工具 安装时进入src目录执行:go get -u github.com/nsf/gocode 出现: github.com/nsf/gocode (download ...
- c++中为什么可以通过指针或引用实现多态,而不可以通过对象呢?
引言: 在c++中司空见惯的事情就是:可以通过指针和引用可以实现多态,而对象不可以. 那为什么?让我们来解开这神秘的暗纱! 1. 类对象的存储方式: 在一个类的实例中,只会存放非静态的成员变量. ...
- php7新特性总结
PHP新功能总结 改进的性能 - 将PHPNG代码合并到PHP7中,速度是PHP 5的两倍. 降低内存消耗 - 优化的PHP 7使用较少的资源. 标量类型声明 - 现在可以强制执行参数和返回类型. 一 ...
- is not in the sudoers file解决方法
用sudo时提示"xxx is not in the sudoers file. This incident will be reported.其中XXX是你的用户名,也就是你的用户名没有权 ...