PySide6.QtNetwork.QSslCertificate¶
- class QSslCertificate¶
QSslCertificate类为 X509 证书提供了一个方便的 API。更多…概要¶
方法¶
def
__init__()def
clear()def
digest()def
effectiveDate()def
expiryDate()def
extensions()def
handle()def
isBlacklisted()def
isNull()def
isSelfSigned()def
issuerInfo()def
__ne__()def
__eq__()def
publicKey()def
serialNumber()def
subjectInfo()def
swap()def
toDer()def
toPem()def
toText()def
version()
静态函数¶
def
fromData()def
fromDevice()def
fromPath()def
importPkcs12()def
verify()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QSslCertificate存储一个X509证书,通常用于验证身份并存储有关本地主机、远程连接的对等方或受信任的第三方证书颁发机构的信息。有许多方法可以构造一个
QSslCertificate。最常见的方法是调用peerCertificate(),它返回一个QSslCertificate对象,或者调用peerCertificateChain(),它返回一个证书列表。您还可以从DER(二进制)或PEM(Base64)编码的包中加载证书,通常存储为一个或多个本地文件,或者在Qt资源中。你可以调用
isNull()来检查你的证书是否为空。默认情况下,QSslCertificate会构造一个空证书。空证书是无效的,但无效的证书不一定是空的。如果你想重置证书中的所有内容,请调用clear()。加载证书后,您可以通过调用多个访问器函数之一来查找有关证书、其主题及其颁发者的信息,包括
version()、serialNumber()、issuerInfo()和subjectInfo()。您可以调用effectiveDate()和expiryDate()来检查证书何时开始生效以及何时过期。publicKey()函数将证书主题的公钥作为QSslKey返回。您可以调用issuerInfo()或subjectInfo()来获取有关证书颁发者及其主题的详细信息。在内部,
QSslCertificate存储为 X509 结构。你可以通过调用handle()来访问这个句柄,但结果可能不具备可移植性。- class SubjectInfo¶
描述您可以传递给
issuerInfo()或subjectInfo()的键,以获取有关证书颁发者或主题的信息。常量
描述
QSslCertificate.Organization
“O” 组织的名称。
QSslCertificate.CommonName
“CN” 通用名称;通常用于存储主机名。
QSslCertificate.LocalityName
“L” 地区。
QSslCertificate.OrganizationalUnitName
“OU” 组织单位名称。
QSslCertificate.CountryName
“C” 国家。
QSslCertificate.StateOrProvinceName
“ST” 州或省。
QSslCertificate.DistinguishedNameQualifier
可分辨名称限定符
QSslCertificate.SerialNumber
证书的序列号
QSslCertificate.EmailAddress
与证书关联的电子邮件地址
- class PatternSyntax¶
用于解释模式含义的语法。
常量
描述
QSslCertificate.PatternSyntax.RegularExpression
一种类似于Perl的丰富模式匹配语法。
QSslCertificate.PatternSyntax.Wildcard
这提供了一种简单的模式匹配语法,类似于shell(命令解释器)用于“文件通配”的语法。参见QRegularExpression::fromWildcard()。
QSslCertificate.PatternSyntax.FixedString
模式是一个固定字符串。这相当于在字符串上使用正则表达式模式,其中所有元字符都使用escape()进行转义。这是默认设置。
- __init__(other)¶
- Parameters:
其他 –
QSslCertificate
构造一个与
other相同的副本。- __init__(device[, format=QSsl.Pem])
- Parameters:
设备 –
QIODeviceformat –
EncodingFormat
通过从
device读取format编码的数据并使用找到的第一个证书来构造一个QSslCertificate。稍后您可以调用isNull()来查看device是否包含证书,以及此证书是否成功加载。- __init__([data=QByteArray()[, format=QSsl.Pem]])
- Parameters:
data –
QByteArrayformat –
EncodingFormat
通过解析
format编码的data并使用找到的第一个可用证书来构造一个QSslCertificate。稍后您可以调用isNull()来查看data是否包含证书,以及此证书是否成功加载。- clear()¶
清除此证书的内容,使其成为空证书。
另请参阅
返回此证书的加密摘要。默认情况下,将生成MD5摘要,但您也可以指定自定义的
algorithm。返回证书生效的日期时间,如果这是一个空证书,则返回空的QDateTime。
另请参阅
返回证书到期的日期时间,如果这是一个空证书,则返回空的 QDateTime。
另请参阅
- extensions()¶
- Return type:
返回包含此证书的X509扩展的列表。
- static fromData(data[, format=QSsl.Pem])¶
- Parameters:
data –
QByteArrayformat –
EncodingFormat
- Return type:
搜索并解析
data中所有以指定format编码的证书,并将它们返回为证书列表。另请参阅
- static fromDevice(device[, format=QSsl.Pem])¶
- Parameters:
设备 –
QIODeviceformat –
EncodingFormat
- Return type:
搜索并解析
device中所有以指定format编码的证书,并将它们返回为证书列表。另请参阅
- static fromPath(path[, format=QSsl.Pem[, syntax=QSslCertificate.PatternSyntax.FixedString]])¶
- Parameters:
path – 字符串
format –
EncodingFormat语法 –
PatternSyntax
- Return type:
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
在
path中搜索所有文件,查找以指定format编码的证书,并将它们返回到列表中。path必须是一个文件或匹配一个或多个文件的模式,如syntax所指定的。示例:
certs = QSslCertificate.fromPath("C:/ssl/certificate.*.pem",() QSsl.Pem, QSslCertificate.Wildcard) for cert in certs: print(cert.issuerInfo(QSslCertificate.Organization))
另请参阅
- handle()¶
- Return type:
Qt::HANDLE
返回指向本机证书句柄的指针(如果有),否则返回
None。您可以使用此句柄,与原生API一起,访问有关证书的扩展信息。
警告
使用此函数很可能不具备可移植性,其返回值可能因平台而异,或在次要版本之间发生变化。
- static importPkcs12(device, key, cert[, caCertificates=None[, passPhrase=QByteArray()]])¶
- Parameters:
设备 –
QIODevicekey –
QSslKeycert –
QSslCertificatecaCertificates –
QListpassPhrase –
QByteArray
- Return type:
布尔
从指定的
device导入一个PKCS#12(pfx)文件。PKCS#12文件是一个可以包含多个证书和密钥的包。此方法从包中读取单个key、其certificate以及任何相关的caCertificates。如果指定了passPhrase,则将使用它来解密包。如果成功加载PKCS#12文件,则返回true。注意
device必须已打开并准备好进行读取。- isBlacklisted()¶
- Return type:
布尔
如果此证书被列入黑名单,则返回
true;否则返回false。另请参阅
- isNull()¶
- Return type:
布尔
如果这是一个空证书(即没有内容的证书),则返回
true;否则返回false。默认情况下,
QSslCertificate构造一个空证书。另请参阅
- isSelfSigned()¶
- Return type:
布尔
如果此证书是自签名的,则返回
true;否则返回false。证书被认为是自签名的,如果其颁发者和主题相同。
- issuerDisplayName()¶
- Return type:
字符串
返回描述发行者的名称。如果可用,则返回
CommonName,否则回退到第一个Organization或第一个OrganizationalUnitName。另请参阅
- issuerInfo(info)¶
- Parameters:
信息 –
SubjectInfo- Return type:
字符串列表
返回证书中
subject的发行者信息,如果证书中没有subject的信息,则返回空列表。每种类型可能有多个条目。另请参阅
- issuerInfo(attribute)
- Parameters:
属性 –
QByteArray- Return type:
字符串列表
返回证书中
attribute的发行者信息,如果证书中没有attribute的信息,则返回一个空列表。一个属性可能有多个条目。另请参阅
- issuerInfoAttributes()¶
- Return type:
.list of QByteArray
返回此证书颁发者信息中具有值的属性列表。可以使用
issuerInfo()方法访问与给定属性关联的信息。请注意,此列表可能包括SSL后端未知的任何元素的OID。另请参阅
- __ne__(other)¶
- Parameters:
其他 –
QSslCertificate- Return type:
布尔
如果此证书与
other不相同,则返回true;否则返回false。- __eq__(other)¶
- Parameters:
其他 –
QSslCertificate- Return type:
布尔
如果此证书与
other相同,则返回true;否则返回false。返回证书主题的公钥。
- serialNumber()¶
- Return type:
返回证书的序列号字符串,格式为十六进制。
- subjectAlternativeNames()¶
- Return type:
.QMultiMapQSsl.AlternativeNameEntryType,QString
返回此证书的备用主题名称列表。备用名称通常包含主机名,可能带有通配符,这些名称对此证书有效。
如果
CommonName的主题信息未定义有效的主机名,或者主题信息名称与对等方的主机名不匹配,则会根据连接的对等方的主机名测试这些名称。另请参阅
- subjectDisplayName()¶
- Return type:
字符串
返回一个描述主题的名称。如果可用,则返回
CommonName,否则回退到第一个Organization或第一个OrganizationalUnitName。另请参阅
- subjectInfo(info)¶
- Parameters:
信息 –
SubjectInfo- Return type:
字符串列表
返回
subject的信息,如果证书中没有subject的信息,则返回一个空列表。每种类型可能有多个条目。另请参阅
- subjectInfo(attribute)
- Parameters:
属性 –
QByteArray- Return type:
字符串列表
返回
attribute的主题信息,如果证书中没有attribute的信息,则返回一个空列表。一个属性可以有多个条目。另请参阅
- subjectInfoAttributes()¶
- Return type:
.list of QByteArray
返回此证书主题信息中具有值的属性列表。可以使用
subjectInfo()方法访问与给定属性关联的信息。请注意,此列表可能包括SSL后端未知的任何元素的OID。另请参阅
- swap(other)¶
- Parameters:
其他 –
QSslCertificate
将此证书实例与
other交换。此函数非常快且永远不会失败。- toDer()¶
- Return type:
返回此证书转换为DER(二进制)编码表示形式。
- toPem()¶
- Return type:
返回此证书转换为PEM(Base64)编码的表示形式。
- toText()¶
- Return type:
字符串
返回此证书转换为人类可读的文本表示形式。
- static verify(certificateChain[, hostName=""])¶
- Parameters:
certificateChain – QSslCertificate 的列表
hostName – str
- Return type:
QSslError的列表
验证证书链。要验证的链在
certificateChain参数中传递。列表中的第一个证书应该是要验证的链的叶证书。如果指定了hostName,则还会检查证书是否对指定的主机名有效。请注意,根(CA)证书不应包含在要验证的列表中,这将使用默认
QSslConfiguration中指定的CA列表自动查找,此外,如果可能的话,还会在Unix和Windows上按需加载CA证书。- version()¶
- Return type:
返回证书的版本字符串。