ADC根证书是一种在数字证书中常见的一种证书,其是数字证书中最高级别的证书。该证书是由权威机构颁发给其他机构的证书。在通信中,它作为一种可靠的身份验证方法,可以在SSL/TLS连接、VPN连接、电子邮件等场景中使用。
一般情况下,在任何场景中,证书都是由导入的机构进行签名。而ADC根证书是由权威机构直接颁发给受信任的证书机构(PCA)。当受信任证书机构(PCA)颁发证书时,其证书将包含ADC根证书;这就允许证书授权中心(PCA)可以在不需要额外验证的情况下信任证书。但是,要生成ADC根证书,需要具备一定的技术实力和授权,下面是一个Python示例代码:
from cryptography import x509
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.x509.oid import NameOID
# 生成RSA密钥对,KeySize为2048位
key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
# 创建证书名称
subject = issuer = x509.Name([
x509.NameAttribute(NameOID.COMMON_NAME, u'example.org'),
x509.NameAttribute(NameOID.COUNTRY_NAME, u'US'),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, u'Texas'),
x509.NameAttribute(NameOID.LOCALITY_NAME, u'Houston'),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, u'Example Inc.'),
x509.NameAttribute(NameOID.ORGANIZATIONAL_UNIT_NAME, u'IT Department'),
])
# 创建证书
cert = x509.CertificateBuilder().subject_name(
subject
).issuer_name(
issuer
).public_key(
key.public_key()
).serial_number(
x509.random_serial_number()
).not_valid_before(
datetime.datetime.utcnow()
).not_valid_after(
# Our certificate will be valid for some days
datetime.datetime.utcnow() + datetime.timedelta(days=10)
).add_extension(
x509.SubjectAlternativeName([x509.DNSName(u"localhost")]),
critical=False,
# Sign our certificate with our private key
).sign(key, hashes.SHA256())
# 导出证书
with open("example.org.crt", "wb") as f: