云计算百科
云计算领域专业知识百科平台

【使用 OpenSSL生成自签名服务器证书】扫盲贴

目录

一、生成自签名根证书和私钥

1、生成根证书私钥

2、生成根证书

(1)创建openssl.cnf文件

(2)生成根证书rootCA.crt

3、为什么根证书不要CSR(证书签名请求)文件

(1)什么是根证书?

(2)自签名证书和CSR的区别

二、生成服务器端证书

1、生成服务端私钥

2、生成CSR

(1)创建OpenSSL配置文件

(2)生成CSR

(3)使用根证书签署服务端证书

3、类比解释:信任关系

4、更新服务端证书

5、关键点

三、使用 OpenSSL生成自签名服务器证书(无单独根证书)

1、生成私钥

2、生成证书签名请求(CSR)

3、生成自签名服务器证书

四、使用其他工具生成自签名服务器证书(无单独根证书)

1、安装 mkcert 工具

2、生成证书和私钥

五、自行生成的ssl证书时问题解决

1、遇到的问题

2、原有配置

3、解决步骤

(1)检查并修改 Nginx 的 SSL 协议版本支持

(2)参数说明

4、检查并修改 Nginx 的密码套件支持

(1)在 Nginx 配置文件中找到或添加 ssl_ciphers 和 ssl_prefer_server_ciphers 配置项

(2)配置参数说明

5、测试和优化配置

6、修改后显示效果

六、证书和 SSL 握手检查

1、证书有效性检查

2、SSL 握手检查

七、总结

1、自签名的服务器证书注意点

2、根证书和服务端证书之间的信任关系


一、生成自签名根证书和私钥

1、生成根证书私钥

首先,生成一个自签名的根证书和私钥。这个根证书将作为信任锚(Trust Anchor),客户端会信任由这个根证书签署的所有证书。

#
openssl genrsa

out rootCA
.
key
2048

参数

openssl: OpenSSL工具的主命令。

genrsa: 生成RSA密钥对的命令。

out rootCA.key: 指定输出文件名为rootCA.key,这是生成的私钥文件。

2048: 指定密钥的长度为2048位。

2、生成根证书

(1)创建openssl.cnf文件

创建openssl.cnf 文件,文件内容如下:

# tou
c
h
openssl
.
cnf

# vim openssl.cnf

——————————–

[ req ]

default_bits = 2048

default_keyfile = rootCA.key

distinguished_name = req_distinguished_name

prompt = no

[ req_distinguished_name ]

C = CN

ST = Beijing

L = Beijing

O = CodeProject

OU = Development

CN = CodeProject Root CA

(2)生成根证书rootCA.crt

# openssl req x509 new nodes key rootCA.key sha256 days 36500 out rootCA.crt config openssl.cnf

x509:表示生成自签名证书(而不是证书签名请求)。

new:表示生成新证书。

nodes:表示不加密私钥文件(即不需要密码保护)。

key rootCA.key:指定私钥文件为rootCA.key。

sha256:使用SHA256哈希算法。

days 36500:指定证书的有效期为36500天(约100年)。

out rootCA.crt:指定输出的证书文件名为rootCA.crt。

config openssl.cnf:指定使用openssl.cnf配置文件中的信息。

3、为什么根证书不要CSR(证书签名请求)文件

在生成根证书(Root CA 证书)时,不需要 CSR(证书签名请求)文件,这是因为根证书是自签名的。

具体来说,根证书的生成过程和普通证书不同,以下是详细解释:

(1)什么是根证书?

1根证书是公钥基础设施(PKI)中的顶级证书,它用来签署其他证书,包括中间证书和最终用户证书。

2根证书通常由证书颁发机构(CA)生成和自签名。

(2)自签名证书和CSR的区别

自签名证书是由自身私钥签名的证书。

因为它是信任链的起点,所以不需要外部的证书颁发机构(CA)来签署。

这就是为什么在生成根证书时不需要 CSR 文件的原因。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【使用 OpenSSL生成自签名服务器证书】扫盲贴
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!