栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

快速生成自签名证书

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快速生成自签名证书

这里写目录标题
  • 快速生成自签名证书
    • 1. certstrap 安装方法
    • 2. 快速生成证书命令,下面的条目可以不看
    • 3. CA 证书
    • 4. 服务端证书
    • 5. 客户端证书
    • 6. 查看证书
    • 7. PKCS 格式证书

快速生成自签名证书

生成自签名证书传统工具是 OpenSSL。不过 OpenSSL 不论是其复杂的命令选项, 还是更加复杂配置都会让人头皮发麻。这里介绍一个更简单的生成自签名证书的工具: certstrap, 项目地址: square/certstrap. 具体安装请参考其文档。

https://github.com/square/certstrap (go 语言写的)

1. certstrap 安装方法
go get: installing executables with 'go get' in module mode is deprecated.
	To adjust and download dependencies of the current module, use 'go get -d'.
	To install using requirements of the current module, use 'go install'.
	To install ignoring the current module, use 'go install' with a version,
	like 'go install example.com/cmd@latest'.
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.
export  http_proxy="127.0.0.1:1087"
export https_proxy="127.0.0.1:1087"
go get -u -v github.com/square/certstrap

export GO111MODULE=on
cd square/certstrap
go build
go install

go get -u -v github.com/square/certigo
cd square/certigo
go build
go install
2. 快速生成证书命令,下面的条目可以不看
certstrap init --common-name "ExampleCA" --expires "20 years"
certstrap request-cert -cn server -ip 127.0.0.1 -domain "hello.com"
certstrap sign server --CA ExampleCA
certstrap request-cert -cn client
certstrap sign client --CA ExampleCA
3. CA 证书

要进行证书自签名, 首先是生成一个自信任的 CA 认证证书。

$: certstrap init --common-name "ExampleCA" --expires "20 years"

命令完成后, 会在当前目录下创建一个新的 out 目录, 生成的证书都在该目录下.

$: tree out
out
├── ExampleCA.crl
├── ExampleCA.crt
└── ExampleCA.key
4. 服务端证书

首先创建 CSR, 即证书签名请求。

$: certstrap request-cert -cn server -ip 127.0.0.1 -domain "*.example.com"
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Created out/server.key
Created out/server.csr

生成 CSR 之后, 通过刚刚生成的 CA 证书进行签名.

$: certstrap sign server --CA ExampleCA
Enter passphrase for CA key (empty for no passphrase):
Created out/server.crt from out/server.csr signed by out/ExampleCA.key

这样就完成了服务端证书的签名, 签名后的证书就是: out/server.crt.

5. 客户端证书

企业内部集群, 通常为了保证服务之间的安全行, 对客户端请求需要进行双向验证。这个时候就需要客户端也提供证书。

客户端证书的生成过程同服务端类似, 更简单一点, 不需要提供证书的 IP 与域名信息。

$: certstrap request-cert -cn client
$: certstrap sign client --CA ca
6. 查看证书

生成完的证书是否正确, 可以通过 certigo 工具进行查询。项目地址: square/certigo。

安装完成后, 通过以下命令查询证书的具体信息。

$: certigo dump out/server.crt
** CERTIFICATE 1 **
Valid: 2019-08-26 09:34 UTC to 2021-08-26 09:34 UTC
Subject:
	CN=server
Issuer:
	CN=ExampleCA
DNS Names:
	*.example.com
IP Addresses:
	127.0.0.1
7. PKCS 格式证书

生成 PKCS 格式的证书可以直接点击安装到系统证书簇中, 方便一些应用 (浏览器等) 的使用。具体生成 PKCS 格式证书, 使用 OpenSSL 命令如下:

$: openssl pkcs12 -export -out client.p12 -inkey out/client.key -in out/client.crt -certfile out/ExampleCA.crt
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号