Auf dieser Seite

QOpcUaX509CertificateSigningRequest Class

QOpcUaX509CertificateSigningRequest – Erstellen einer Zertifikatssignierungsanforderung. Mehr...

Kopfzeile: #include <QOpcUaX509CertificateSigningRequest>
CMake: find_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmake: QT += opcua

Öffentliche Typen

enum class Encoding { PEM, DER }
enum class MessageDigest { SHA256 }

Öffentliche Funktionen

QOpcUaX509CertificateSigningRequest()
~QOpcUaX509CertificateSigningRequest()
void addExtension(QOpcUaX509Extension *extension)
QByteArray createRequest(const QOpcUaKeyPair &privateKey)
QByteArray createSelfSignedCertificate(const QOpcUaKeyPair &privateKey, int validityInDays = 365)
QOpcUaX509CertificateSigningRequest::Encoding encoding() const
QOpcUaX509CertificateSigningRequest::MessageDigest messageDigest() const
void setEncoding(QOpcUaX509CertificateSigningRequest::Encoding encoding)
void setMessageDigest(QOpcUaX509CertificateSigningRequest::MessageDigest digest)
void setSubject(const QOpcUaX509DistinguishedName &subject)
const QOpcUaX509DistinguishedName &subject() const

Ausführliche Beschreibung

Diese Klasse ist derzeit als Technology Preview verfügbar, daher können sich die von der Klasse bereitgestellte API und Funktionalität jederzeit ohne vorherige Ankündigung ändern.

Bevor die Singing-Request-Daten tatsächlich erstellt werden, müssen alle für diesen spezifischen Request erforderlichen Erweiterungen hinzugefügt werden. Derzeit werden folgende Erweiterungen unterstützt: „SubjectAlternativeName“, „BasicConstraints“, „KeyUsage“ und „ExtendedKeyUsage“.

// Generate key
QOpcUaKeyPair key;
key.generateRsaKey(QOpcUaKeyPair::RsaKeyStrength::Bits1024);

QOpcUaX509CertificateSigningRequest csr;

QOpcUaX509DistinguishedName dn;
dn.setEntry(QOpcUaX509DistinguishedName::Type::CommonName, "QtOpcUaViewer");
dn.setEntry(QOpcUaX509DistinguishedName::Type::CountryName, "DE");
dn.setEntry(QOpcUaX509DistinguishedName::Type::LocalityName, "Berlin");
dn.setEntry(QOpcUaX509DistinguishedName::Type::StateOrProvinceName, "Berlin");
dn.setEntry(QOpcUaX509DistinguishedName::Type::OrganizationName, "The Qt Company");
csr.setSubject(dn);

QOpcUaX509ExtensionSubjectAlternativeName *san = new QOpcUaX509ExtensionSubjectAlternativeName;
san->addData(QOpcUaX509ExtensionSubjectAlternativeName::Type::DNS, "foo.com");
san->addData(QOpcUaX509ExtensionSubjectAlternativeName::Type::DNS, "foo.com");
san->addData(QOpcUaX509ExtensionSubjectAlternativeName::Type::URI, "urn:foo.com:The%20Qt%20Company:QtOpcUaViewer");
san->setCritical(true);
csr.addExtension(san);

QOpcUaX509ExtensionBasicConstraints *bc = new QOpcUaX509ExtensionBasicConstraints;
bc->setCa(false);
bc->setCritical(true);
csr.addExtension(bc);

QOpcUaX509ExtensionKeyUsage *ku = new QOpcUaX509ExtensionKeyUsage;
ku->setCritical(true);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::DigitalSignature);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::NonRepudiation);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::KeyEncipherment);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::DataEncipherment);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::CertificateSigning);
csr.addExtension(ku);

QOpcUaX509ExtensionExtendedKeyUsage *eku = new QOpcUaX509ExtensionExtendedKeyUsage;
eku->setCritical(true);
eku->setKeyUsage(QOpcUaX509ExtensionExtendedKeyUsage::KeyUsage::EmailProtection);
csr.addExtension(eku);

QByteArray csrData = csr.createRequest(key);

Siehe auch QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints und QOpcUaX509ExtensionKeyUsage.

Dokumentation zu Mitgliedstypen

enum class QOpcUaX509CertificateSigningRequest::Encoding

Dieser Enum-Typ legt die Kodierung der generierten Zertifikatssignierungsanforderung fest.

KonstanteWertBeschreibung
QOpcUaX509CertificateSigningRequest::Encoding::PEM0Verwendung der PEM-Kodierung
QOpcUaX509CertificateSigningRequest::Encoding::DER1Verwendung der DER-Kodierung

enum class QOpcUaX509CertificateSigningRequest::MessageDigest

Dieser Enum-Typ gibt den zu verwendenden Nachrichten-Digest an.

KonstanteWertBeschreibung
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA2560Verwendung des SHA256-Nachrichten-Digests

Dokumentation der Mitgliedsfunktionen

QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()

Erstellt eine leere Zertifikatssignierungsanforderung.

[noexcept] QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()

Löscht die Anfrage und gibt alle Erweiterungen frei.

void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)

Fügt der Anfrage eine Zertifikatserweiterung hinzu.

Die Eigentumsrechte am Objekt „ extension “ werden auf diese Klasse übertragen.

Siehe auch „ QOpcUaX509ExtensionSubjectAlternativeName “, „ QOpcUaX509ExtensionBasicConstraints “ und „ QOpcUaX509ExtensionKeyUsage “.

QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)

Erstellt eine Zertifikatssignierungsanforderung, die zur Signierung an eine Zertifizierungsstelle (CA) gesendet wird. Der private Schlüssel in „ privateKey “ wird zum Signieren der Anforderung verwendet. Die Anforderungsdaten werden als Byte-Array in der durch „ setEncoding()“ festgelegten Kodierung zurückgegeben.

QByteArray QOpcUaX509CertificateSigningRequest::createSelfSignedCertificate(const QOpcUaKeyPair &privateKey, int validityInDays = 365)

Erstellt aus dieser Anfrage ein selbstsigniertes Zertifikat zur sofortigen Verwendung. Zum Signieren der Anfrage wird der private Schlüssel aus ` privateKey ` verwendet. Die Gültigkeitsdauer in Tagen kann unter ` validityInDays` angegeben werden. Die Anfragedaten werden als Byte-Array in der durch ` setEncoding()` festgelegten Kodierung zurückgegeben.

QOpcUaX509CertificateSigningRequest::Encoding QOpcUaX509CertificateSigningRequest::encoding() const

Gibt die verwendete Anfragekodierung zurück.

Siehe auch ` setEncoding()`.

QOpcUaX509CertificateSigningRequest::MessageDigest QOpcUaX509CertificateSigningRequest::messageDigest() const

Gibt den verwendeten Nachrichten-Digest zurück.

Siehe auch „ setMessageDigest()“.

void QOpcUaX509CertificateSigningRequest::setEncoding(QOpcUaX509CertificateSigningRequest::Encoding encoding)

Legt die verwendete Anforderungskodierung auf „ encoding “ fest. Die Standard-Anforderungskodierung ist PEM.

Siehe auch encoding().

void QOpcUaX509CertificateSigningRequest::setMessageDigest(QOpcUaX509CertificateSigningRequest::MessageDigest digest)

Setzt den verwendeten Nachrichten-Digest auf „ digest “. Der Standard-Nachrichten-Digest ist SHA256.

Siehe auch messageDigest().

void QOpcUaX509CertificateSigningRequest::setSubject(const QOpcUaX509DistinguishedName &subject)

Legt den „ subject “ für diese Anfrage fest. Ohne einen Betreff kann die Anfrage nicht erstellt werden.

Siehe auch subject().

const QOpcUaX509DistinguishedName &QOpcUaX509CertificateSigningRequest::subject() const

Gibt das Objekt dieser Anfrage zurück.

Siehe auch setSubject().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.