QSslCertificate 是 Qt 中用于处理 SSL 证书的类,常用于网络通信中进行身份验证、加密传输等。
下面是一个简单的 QSslCertificate 使用示例:
#include <QCoreApplication>
#include <QDebug>
#include <QSslSocket>
#include <QSslCertificate>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 加载本地证书文件
QFile file("cert.pem");
if (!file.open(QIODevice::ReadOnly)) {
qDebug() << "Failed to open certificate file!";
return -1;
}
QByteArray certData = file.readAll();
QSslCertificate cert(certData, QSsl::Pem);
file.close();
// 打印证书信息
qDebug() << "Issuer: " << cert.issuerInfo(QSslCertificate::Organization);
qDebug() << "Common Name: " << cert.subjectInfo(QSslCertificate::CommonName);
qDebug() << "Valid from: " << cert.effectiveDate().toString(Qt::ISODate);
qDebug() << "Valid until: " << cert.expiryDate().toString(Qt::ISODate);
return a.exec();
}
以上代码加载了一个本地的 PEM 格式证书文件,使用 QSslCertificate 类解析出其中的证书信息并打印输出。其中,issuerInfo 和 subjectInfo 分别获取了证书颁发者和主体信息中的指定字段内容。effectiveDate 和 expiryDate 获取了证书生效和过期时间。
需要注意的是,如果使用 QSslSocket 进行 SSL 通信,则可以通过其 peerCertificate 方法获取到远程服务器返回的 SSL 证书,并通过 QSslCertificate 类对其进行解析。