目录
一、生成自签名根证书和私钥
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:使用SHA–256哈希算法。
–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 文件的原因。
评论前必须登录!
注册