]
},
“client”: {
“expiry”: “8760h”,
“usages”: [
“signing”,
“key encipherment”,
“client auth”
]
},
“peer”: {
“expiry”: “8760h”,
“usages”: [
“signing”,
“key encipherment”,
“server auth”,
“client auth”
]
}
}
}
}
自定义ca-csr.json:
-
CN即common name,hosts可以指定多个(泛)域名以及多个IP地址
-
key:指定了加密算法,一般使用rsa(size:2048)
{
“CN”: “example.net”,
“hosts”: [
“example.net”,
“www.example.net”
],
“key”: {
“algo”: “ecdsa”,
“size”: 256
},
“names”: [
{
“C”: “US”,
“L”: “CA”,
“ST”: “San Francisco”
}
]
}
-
接下来,就可以根据ca-csr.json来自签CA了,通过gencert -initca来生成私钥和公钥,然后使用cfssljson命令将它们分别保存:
-
cfssl gencert -initca json/ca-csr.json | cfssljson -bare self-ca -
-
会得到如下三个文件:私钥self-ca-key.pem、证书请求self-ca.csr、公钥self-ca.pem
二、生成服务器和客户端证书
同样,首先生成默认配置文件:cfssl print-defaults csr > json/server.json
- 主要修改如下部分:
“CN”: “test.coreos.com”,
“hosts”: [
“server.coreos.org”,
“*.coreos.org”
],
-
cfssl支持SAN(Subject Alternative Name),它是X.509中定义的一个扩展,使用了SAN字段的SSL证书,可以扩展此证书支持的域名,即一个证书可以支持多个不同域名的解析。
-
然后使用刚才生成的CA来给服务器签署证书,运行如下命令来生成服务端证书:
-
-profile指定了使用ca-config.json中的profile
-
最后的server给定了生成的文件名,将得到如下三个文件:server.csr、server-key.pem和server.pem
-
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=json/ca-config.json -profile=server json/server.json | cfssljson -bare server
-
类似的,可以生成客户端证书,配置文件的hosts字段指定为空即可
-
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=json/ca-config.json -profile=client json/client.json | cfssljson -bare client
CFSSL 工具还是很强大的,在这里只是简单介绍一下如何自签CA和相关证书。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!