使用OpenSSL生成并格式化证书

使用OpenSSL创建自己的自签名证书,或将 PEM 证书文件转换为P12文件。

OpenSSL是一个开源工具包,可用于生成和验证 TLS 证书。

本主题介绍如何使用OpenSSL工具包,以及如何将 PEM 格式的证书转换为P12格式。

使用以下方式创建自签名证书OpenSSL

使用以下命令创建私钥和公共证书OpenSSL:
openssl req -newkey rsa:2048 -nodes -keyout private_key.pem -x509 -days 365 -out public_certificate.pem

这OpenSSL命令要求输入以下信息来创建您的私钥和公共证书(显示示例值):

  • 国家名称(2 个字母代码)[]:US
  • 州或省名称(全名)[]:加利福尼亚州
  • 地点名称(例如城市)[]:萨克拉门托
  • 组织名称(例如公司)[]:exampleorganization
  • 组织单位名称(例如部门)[]:
  • 通用名称(例如,完全限定的主机名)[]: gateway.exampleorganization.com
  • 电子邮件地址 []:

通用名称必须设置为使用该证书的系统的完全限定域名。 对于静态 DNS ,请使用网关集群中设置的主机名或 IP 地址 (例如, 192.16.183.131或者gateway.exampleorganization.com)。

要检查生成的公共证书,请运行:
openssl x509 -text -noout -in public_certificate.pem
将生成的 private_key 和 public_certificate PEM 文件合并为受密码保护的P12文件,运行:
openssl pkcs12 -inkey private_key.pem -in public_certificate.pem -export -out certificate.p12
为了验证P12文件,运行:
openssl pkcs12 -in certificate.p12 -noout -info

创建PKCS#12 ( P12 ) 来自 PEM 文件的证书

PKCS#12 (P12 ) 定义了一种用于将加密对象存储为单个文件的档案文件格式。 使用OpenSSL创建密码保护P12来自 PEM 文件的文件夹。

前置条件:
  • 专用密钥文件。 例如:private_key.pem
  • CA 签名的证书。 例如:public_certificate.pem
  • 如果你有来自 CA 的中间证书,请将它们连接成一个.pem文件创建一个ca_chain.pem文件:
    cat ca1.pem ca2.pem ca3.pem > ca_chain.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