OpenSSL生成无效的PEM文件

问题描述

为了完成某些技术规则,我需要生成具有某些特定值的自签名证书:

SubjectDN 字段中:

  • 通用名称 (OID 2.5.4.3)-公司的网站URL
  • 组织名称 (OID 2.5.4.10)—公司名称
  • 国家/地区名称 (OID 2.5.4.6)-公司所在国家/地区的ISO 3166-1代码
  • localityName (OID 2.5.4.7)-公司所在的城市
  • organizationalIdentifier (OID 2.5.4.97)=特定的公司ID

证书政策字段中:

  • policyIdentifier (OID 1.3.76.16.4.2.1)=与公司相关的特定字符串

为了生成此类证书,我创建了以下Openssl配置文件

[ ca ]
default_ca      = CA_MyCompany

[ req ]
default_bits = 2048
default_md = sha256
prompt = no
encrypt_key = no
distinguished_name = dn
req_extensions = v3_req
x509_extensions = v3_ca

[ dn ]
C = US
L = New York
stateOrProvinceName = USA
O = My Company
organizationalUnitName = ICT Department
CN = https://www.mycompany.com
organizationIdentifier = CompanyID

[v3_req]
basicConstraints       = CA:false
keyUsage               = digitalSignature,nonRepudiation,keyEncipherment,dataEncipherment,keyCertSign

[ v3_ca ]
basicConstraints       = CA:true
subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid:always,issuer:always
keyUsage               = digitalSignature,keyCertSign
certificatePolicies    = @polsect

[polsect]
policyIdentifier = company-realted string

使用以下命令:

openssl req -config openssl.cnf  -x509 -sha256  -days 365 -newkey rsa:2048 -nodes -out "certificate.crt" -keyout "certificate.pem"

我获得了无效的pem文件(即,无法使用几个免费提供的证书验证器/解码器(例如XCA中的某些文件)将其打开。

在两个不同的Linux发行版和两个不同版本的OpenSSL(1.1.1c和1.1.1.h)上,我遇到了相同的问题。

我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)