目录
三、使用 OpenSSL生成自签名服务器证书(无单独根证书)
(1)在 Nginx 配置文件中找到或添加 ssl_ciphers 和 ssl_prefer_server_ciphers 配置项
一、生成自签名根证书和私钥
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)来签署。