生成自签名的根证书(Root Certificate)的过程包括生成私钥、生成自签名的根证书。以下是基于 OpenSSL 的步骤:
openssl genpkey -algorithm RSA -out root_key.pem 上述命令会生成一个 RSA 算法的私钥文件 root_key.pem。
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 时需要填写的一些常见信息及其作用:
| Field | Description |
|---|---|
| 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” 是最重要的字段,应该设置为与你的服务器域名或主机名相匹配的值。其他字段的值可以根据实际情况填写。
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,因为它是证书签名的关键。
注意:上述步骤是生成自签名根证书的基本步骤。在实际生产环境中,你可能需要更详细的信息,包括使用配置文件来指定证书信息,设置证书有效期限等。
生成中间证书需要遵循一些类似于生成根证书的步骤。中间证书一般是由根证书签署的。以下是生成中间证书的基本步骤:
openssl genpkey -algorithm RSA -out intermediate_key.pem 上述命令会生成一个 RSA 算法的私钥文件 intermediate_key.pem。
openssl req -new -key intermediate_key.pem -out intermediate_csr.pem 在这一步中,你需要提供一些信息,如组织名、组织单位、国家等。最终,它会生成一个中间证书请求文件 intermediate_csr.pem。
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。
openssl verify -CAfile root_cert.pem intermediate_cert.pem 上述命令用于验证中间证书是否有效,确保它是由根证书签署的。
至此,你已经生成了一个由根证书签署的中间证书。中间证书通常用于构建证书链,形成一个完整的信任链。在实际环境中,你可能还需要考虑中间证书的有效期、使用配置文件来指定证书信息等。
生成服务器证书的步骤与生成中间证书和根证书类似。服务器证书是由中间证书签署的。以下是生成服务器证书的基本步骤:
openssl genpkey -algorithm RSA -out server_key.pem 上述命令会生成一个 RSA 算法的私钥文件 server_key.pem。
openssl req -new -key server_key.pem -out server_csr.pem 在这一步中,你需要提供一些信息,如组织名、组织单位、国家等。最终,它会生成一个服务器证书请求文件 server_csr.pem。
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。
openssl verify -CAfile intermediate_cert.pem server_cert.pem 上述命令用于验证服务器证书是否有效,确保它是由中间证书签署的。
至此,你已经生成了一个由中间证书签署的服务器证书。这个服务器证书可以用于配置 Web 服务器、TLS/SSL 终端等。在实际环境中,你可能还需要考虑服务器证书的有效期、使用配置文件来指定证书信息等。
DNSNameMatches