使用 OpenSSL 生成和格式化证书
使用 OpenSSL 创建自己的自签名证书,或将 PEM 证书文件转换为 P12 文件。
OpenSSL是一个开源工具包,可用于生成和验证 TLS 证书。
本主题介绍如何使用 OpenSSL 工具包生成自签名 TLS 证书,以及如何将 PEM 格式的证书转换为 P12 格式。
使用 OpenSSL 创建自签名证书
使用以下命令通过 OpenSSL: 创建私钥和公开证书
openssl req -newkey rsa:2048 -nodes -keyout private_key.pem -x509 -days 365 -out public_certificate.pem
OpenSSL 命令要求提供以下信息,以创建私钥和公开证书(示例值如图所示):
- 国家名称(2 个字母代码)[]:美国
- 州或省名称(全称)[]:加利福尼亚州
- 地点名称(如城市)[]:萨克拉门托
- 组织名称(例如,公司)[]: 示例组织
- 组织单位名称(如科室)[]:
- 通用名称(例如,完全合格的主机名)[]:gateway.exampleorganization.com
- 电子邮件地址 []:
通用名称必须设置为使用证书的系统的完全合格域名。 对于静态 DNS ,请使用网关集群中设置的主机名或 IP 地址 (例如, 192.16.183.131
或 gateway.exampleorganization.com
)。
要查看生成的公开证书,请运行
openssl x509 -text -noout -in public_certificate.pem
要将生成的私钥和公钥 PEM 文件合并为受密码保护的 P12 文件,请运行
openssl pkcs12 -inkey private_key.pem -in public_certificate.pem -export -out certificate.p12
要验证 P12 文件,请运行
openssl pkcs12 -in certificate.p12 -noout -info
从 PEM 文件创建 PKCS#12 (P12) 证书
PKCS#12(P12)定义了一种归档文件格式,用于将加密对象存储为单个文件。 使用 OpenSSL 从 PEM 文件创建受密码保护的 P12 文件。
前置条件:
- 专用密钥文件。 例如:private_key.pem。
- CA 签名证书。 例如:public_certificate.pem。
- 如果您有来自 CA 的中间证书,请将它们并入一个 .pem 文件,创建一个 ca_chain.pem 文件:
ca_chain.pem 文件应如下所示:cat ca1.pem ca2.pem ca3.pem > ca_chain.pem
-----BEGIN CERTIFICATE----- MIIEpjCCA46gAwIBAgIQEOd26KZabjd+BQMG1Dwl6jANBgkqhkiG9w0BAQUFADCB ... lQX7CkTJn6lAJUsyEa8H/gjVQnHp4VOLFR/dKgeVcCRvZF7Tt5AuiyHY -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEPDCCAySgAwIBAgIQSEus8arH1xND0aJ0NUmXJTANBgkqhkiG9w0BAQUFADBv ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU ... -----END CERTIFICATE-----
- 如果在一个文件中包含多个最终实体(叶子)证书,则应将它们分割成单独的文件,并为每个证书创建单独的 P12 文件。
使用以下 P12 命令创建 OpenSSL 文件(如果没有 CA 证书,则省略
-CAfile <filename>
-chain
):openssl pkcs12 -inkey private_key.pem -in public_certificate.pem -export -out certificate.p12 -CAfile caChain.pem -chain