自签名根证书、中间证书、服务器证书生成流程详解

服务器 0

文章目录

  • 一、生成根证书
    • 1. 生成根私钥
    • 2. 生成自签名的根证书请求
    • 3. 使用私钥签署自签名的根证书
  • 二、中间证书生成
    • 1. 生成中间私钥
    • 2. 生成中间证书请求
    • 3. 使用根证书私钥签署中间证书请求
    • 4. 验证中间证书
  • 三、服务器证书生成
    • 1. 生成服务器私钥
    • 2. 生成服务器证书请求
    • 3. 使用中间证书私钥签署服务器证书请求
    • 4. 验证服务器证书

一、生成根证书

生成自签名的根证书(Root Certificate)的过程包括生成私钥、生成自签名的根证书。以下是基于 OpenSSL 的步骤:

1. 生成根私钥

openssl genpkey -algorithm RSA -out root_key.pem

上述命令会生成一个 RSA 算法的私钥文件 root_key.pem

2. 生成自签名的根证书请求

openssl req -new -key root_key.pem -out root_csr.pem

在这一步中,你需要提供一些信息,如组织名、组织单位、国家等。最终,它会生成一个自签名的根证书请求文件 root_csr.pem

下表列出了执行 openssl req -new -key root_key.pem -out root_csr.pem 时需要填写的一些常见信息及其作用:

FieldDescription
Country Name (2 letter code)两字母的国家代码,例如 “US”。
State or Province Name州或省的全名。
Locality Name (e.g., city)城市或地区的全名。
Organization Name (e.g., company)公司或组织的全名。
Organizational Unit Name (e.g., section)部门或单位的全名。
Common Name (e.g., your name or your server’s hostname)通常是你的服务器的主机名。
Email Address电子邮件地址,用于证书联系。
Challenge Password挑战密码(可选)。
Optional Company Name可选的公司名称。

这些信息将用于填写证书请求文件。在实际情况中,一些字段可能不是必需的,具体取决于你的使用场景和证书颁发机构(CA)的要求。通常,“Common Name” 是最重要的字段,应该设置为与你的服务器域名或主机名相匹配的值。其他字段的值可以根据实际情况填写。

3. 使用私钥签署自签名的根证书

openssl x509 -req -in root_csr.pem -signkey root_key.pem -out root_cert.pem

这一步将使用之前生成的私钥 root_key.pem 对自签名的证书请求 root_csr.pem 进行签名,生成最终的根证书 root_cert.pem

至此,你已经生成了一个自签名的根证书。请确保妥善保管生成的私钥文件 root_key.pem,因为它是证书签名的关键。

注意:上述步骤是生成自签名根证书的基本步骤。在实际生产环境中,你可能需要更详细的信息,包括使用配置文件来指定证书信息,设置证书有效期限等。

二、中间证书生成

生成中间证书需要遵循一些类似于生成根证书的步骤。中间证书一般是由根证书签署的。以下是生成中间证书的基本步骤:

1. 生成中间私钥

openssl genpkey -algorithm RSA -out intermediate_key.pem

上述命令会生成一个 RSA 算法的私钥文件 intermediate_key.pem

2. 生成中间证书请求

openssl req -new -key intermediate_key.pem -out intermediate_csr.pem

在这一步中,你需要提供一些信息,如组织名、组织单位、国家等。最终,它会生成一个中间证书请求文件 intermediate_csr.pem

3. 使用根证书私钥签署中间证书请求

openssl x509 -req -in intermediate_csr.pem -CA root_cert.pem -CAkey root_key.pem -CAcreateserial -out intermediate_cert.pem

这一步将使用根证书 root_cert.pem 和根私钥 root_key.pem 对中间证书请求 intermediate_csr.pem 进行签名,生成中间证书 intermediate_cert.pem

4. 验证中间证书

openssl verify -CAfile root_cert.pem intermediate_cert.pem

上述命令用于验证中间证书是否有效,确保它是由根证书签署的。

至此,你已经生成了一个由根证书签署的中间证书。中间证书通常用于构建证书链,形成一个完整的信任链。在实际环境中,你可能还需要考虑中间证书的有效期、使用配置文件来指定证书信息等。

三、服务器证书生成

生成服务器证书的步骤与生成中间证书和根证书类似。服务器证书是由中间证书签署的。以下是生成服务器证书的基本步骤:

1. 生成服务器私钥

openssl genpkey -algorithm RSA -out server_key.pem

上述命令会生成一个 RSA 算法的私钥文件 server_key.pem

2. 生成服务器证书请求

openssl req -new -key server_key.pem -out server_csr.pem

在这一步中,你需要提供一些信息,如组织名、组织单位、国家等。最终,它会生成一个服务器证书请求文件 server_csr.pem

3. 使用中间证书私钥签署服务器证书请求

openssl x509 -req -in server_csr.pem -CA intermediate_cert.pem -CAkey intermediate_key.pem -CAcreateserial -out server_cert.pem

这一步将使用中间证书 intermediate_cert.pem 和中间私钥 intermediate_key.pem 对服务器证书请求 server_csr.pem 进行签名,生成服务器证书 server_cert.pem

4. 验证服务器证书

openssl verify -CAfile intermediate_cert.pem server_cert.pem

上述命令用于验证服务器证书是否有效,确保它是由中间证书签署的。

至此,你已经生成了一个由中间证书签署的服务器证书。这个服务器证书可以用于配置 Web 服务器、TLS/SSL 终端等。在实际环境中,你可能还需要考虑服务器证书的有效期、使用配置文件来指定证书信息等。

DNSNameMatches

也许您对下面的内容还感兴趣: