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