使用 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

本文为原创文章,转载请注明出处,欢迎访问作者网站(和而不同)

发表评论

error: Content is protected !!