OpenSSL 自签名证书
使用 OpenSSL 生成 TLS 自签名证书和自签名 CA 通常包括以下几个步骤:
生成自签名 CA 证书
首先,生成 CA 私钥和 CA 自签名证书。CA 证书用于签署 TLS 服务器证书
openssl genrsa -out ca.key 4096
这将生成一个 4096 位的 RSA 私钥并保存为 ca.key
文件。
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
- -x509 表示生成自签名证书
- -new 表示创建一个新的证书请求
- -nodes 表示不对私钥加密
- -key ca.key 表示使用之前生成的 ca.key 私钥
- -days 3650 表示证书有效期为 3650 天(约 10 年)
- -out ca.crt 表示将证书保存为 ca.crt
提示填写证书的信息(如国家代码、组织名、域名等),这些信息会包含在 CA 证书中。
生成服务器的私钥和证书请求 (CSR)
接下来,为服务器生成私钥和证书签名请求 (CSR):
openssl genrsa -out server.key 2048
这将生成一个 2048 位的 RSA 私钥并保存为 server.key。
openssl req -new -key server.key -out server.csr
- -new 表示生成一个新的证书请求
- -key server.key 表示使用刚才生成的服务器私钥
- -out server.csr 表示生成的 CSR 文件名为 server.csr
在此过程中,需要填写有关服务器的信息,最重要的是 Common Name (CN),应填写服务器域名或 IP 地址。
用 CA 签署服务器证书
现在,使用之前生成的自签名 CA 证书和私钥来签署服务器证书请求。
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 825 -sha256
- -req 表示基于证书请求 (CSR) 生成证书
- -CA ca.crt 表示使用 CA 证书来签署服务器证书
- -CAkey ca.key 表示使用 CA 的私钥来签署证书
- -CAcreateserial 表示自动生成一个 ca.srl 文件,保存 CA 的序列号
- -out server.crt 表示将生成的服务器证书保存为 server.crt
- -days 825 表示证书的有效期为 825 天
- -sha256 表示使用 SHA256 进行签名
验证生成的证书
可以使用以下命令来检查生成的证书是否有效:
openssl x509 -in server.crt -text -noout
这将显示 server.crt 的详细信息。
配置 TLS
- ca.crt 是自签名 CA 证书,可以分发给客户端,供其信任
- server.crt 是服务器证书,用于配置在你的服务器上
- server.key 是服务器私钥,用于安全连接
你可以将这些文件用于设置 HTTPS 服务器或其他 TLS 应用。
0