C#'da Doğrulanmış PDF İmzalarından İmzalayanın Sertifikasını Okuma (X.509, eIDAS, Zincir)
Denetim boru hattınıza bir sözleşme gelir. Sözleşme dijital olarak imzalanmıştır, imza geçerlidir ve uyum ekibinizin bazı sorularına yanıt bulması gerekir: Sözleşmeyi kim imzalamıştır, o sabah sertifikası geçerli miydi ve sertifikayı veren CA, güvenilir listesiyle eşleşiyor mu? Ham imza baytlarını çekebilir, DER'yi ayrıştırabilir ve sertifika zincirini elle inceleyebilirsiniz. Ya da VerifiedSignature nesnesinden SignerCertificate değerini isteyebilir ve yanıtları özellikler olarak okuyabilirsiniz.
VerifiedSignature üzerindeki SignerCertificate ve CertificateChain özellikleri işte bu amaçla oluşturulmuştur. PdfDocument.GetVerifiedSignatures()'dan döndürülenler, imzalayanın tam X.509 kimliğini, sertifika veren CA'yı, geçerlilik tarihlerini, SHA-256 parmak izini, ham DER baytlarını ve kök sertifikaya kadar tüm ara sertifikaları gösterir. Bu, eIDAS uyumluluğu, sertifika sabitleme, denetim izleri ve güven zinciri doğrulaması için ihtiyacınız olan API yüzeyidir.
Bu kılavuz, üç sertifika denetim grubunu ele almaktadır:
- Standart X.509 ayrıntıları: kimlik özellikleri, tam Ayırt Edici Adlar, geçerlilik aralıkları ve
X509Certificate2etkileşimi için ham DER baytları. - eIDAS ve düzenlemeye tabi sektörler:
SubjectSerialNumber'den imzalayanın ulusal kimlik numarasını almak ve eIDAS organizationIdentifier için2.5.4.97gibi sayısal OID'leri okumak. - Güven zinciri doğrulama: SHA-256 parmak izi sabitleme ve imzalayan kişiden kök CA'ya kadar tüm zinciri izleme.
Doğrulama sürecinizde sertifika denetimini test etmek için 30 günlük ücretsiz deneme sürümünü başlatın.
Hızlı Başlangıç: İmzalı bir PDF'den İmzalayanın Sertifikasını Okuma
Yüklü bir PDF dosyasında GetVerifiedSignatures komutunu çağırın ve sonuçtan imzalayanın sertifika özelliklerini doğrudan okuyun.
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
Bu kod parçacığını kopyalayın ve çalıştırın.
var sig = PdfDocument.FromFile("signed.pdf").GetVerifiedSignatures().First(); var cert = sig.SignerCertificate; Console.WriteLine($"{cert?.CommonName} ({cert?.Organization}) valid until {cert?.NotAfter}"); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
Minimal İş Akışı (3 adım)
- IronPDF'yu NuGet'ten İndirin
- İmzalanmış bir PDF dosyasını yükleyin ve
GetVerifiedSignatures() işleviniçağırarak doğrulanmış imza nesnelerinin listesini alın - Kimlik ve geçerlilik için
sig.SignerCertificate'iokuyun veya tam güven zinciri içinsig.CertificateChain'iinceleyin.
İmzalayanın ulusal veya kişisel kimlik numarasını nasıl çıkarırsınız?
SubjectSerialNumber özelliği, sertifikanın Konu DN'sinden SERIALNUMBER OID'sinin değerini döndürür. Düzenlemelere tabi sektörlerde (eIDAS onaylı sertifikalar, bankacılık, devlet tarafından verilen dijital kimlikler), bu alan imzalayan kişinin ulusal kimlik numarasını, vergi kimlik numarasını veya kişisel kimlik numarasını içerir. Bu, sertifikanın kendi seri numarası değildir; yani CertificateSerialNumber.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-serial-number.cs
using IronPdf;
using IronPdf.Signing.Inspection;
var pdf = PdfDocument.FromFile("eidas-signed-invoice.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
// Subject DN SERIALNUMBER OID (national ID, tax ID, etc.)
Console.WriteLine($"Signer Identity (SERIALNUMBER): {cert.SubjectSerialNumber ?? "not present"}");
// Certificate's own serial from the issuing CA
Console.WriteLine($"Certificate Serial (CA-issued): {cert.CertificateSerialNumber}");
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Dim pdf = PdfDocument.FromFile("eidas-signed-invoice.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
' Subject DN SERIALNUMBER OID (national ID, tax ID, etc.)
Console.WriteLine($"Signer Identity (SERIALNUMBER): {If(cert.SubjectSerialNumber, "not present")}")
' Certificate's own serial from the issuing CA
Console.WriteLine($"Certificate Serial (CA-issued): {cert.CertificateSerialNumber}")
Next
SubjectSerialNumber, belgeyi kimin imzaladığını (Subject DN'ye gömülü ulusal kimlik numarası veya vergi numarası gibi bir kişi veya kuruluş kimliği) belirtir. CertificateSerialNumber hangi sertifikanın kullanıldığını gösterir; (Bu, sertifika veren Yetkili Kurumun iptal listeleri ve denetim günlükleri için atadığı benzersiz seridir.Convenience Identity Özelliklerine Nasıl Erişebilirsiniz?
SignerCertificateInfo, en sık ihtiyaç duyulan Subject DN alanlarını doğrudan özellikler olarak sunar, böylece tam DN dizesini kendiniz ayrıştırmanıza gerek kalmaz.
İmzalayanın Adını ve Bağlı Olduğu Kurumu Okuma
CommonName, Organization, Country ve Email özellikleri, çoğu kimlik iş akışının ilk olarak ulaştığı noktaları kapsar.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-identity-common.cs
using IronPdf;
using IronPdf.Signing.Inspection;
var pdf = PdfDocument.FromFile("signed-agreement.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
// Common Subject DN fields exposed directly as properties
Console.WriteLine($"CommonName (CN): {cert.CommonName}");
Console.WriteLine($"Organization (O): {cert.Organization}");
Console.WriteLine($"Country (C): {cert.Country}");
Console.WriteLine($"Email: {cert.Email}");
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Dim pdf = PdfDocument.FromFile("signed-agreement.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
' Common Subject DN fields exposed directly as properties
Console.WriteLine($"CommonName (CN): {cert.CommonName}")
Console.WriteLine($"Organization (O): {cert.Organization}")
Console.WriteLine($"Country (C): {cert.Country}")
Console.WriteLine($"Email: {cert.Email}")
Next
Email özelliği önce emailAddress OID'si için Subject DN'yi kontrol eder. Mevcut değilse, Subject Alternative Name (SAN) rfc822Name uzantısına geri döner. Country özelliği, iki harfli ISO 3166-1 alpha-2 kodunu (örneğin, "DE", "US", "FR") döndürür. İlgili alan sertifikada mevcut değilse, tüm kolaylık özellikleri null değerini döndürür.
Her Şeye İhtiyacınız Olduğunda Tam DN'yi Okuma
Denetim günlüğü, aşağı akış ayrıştırma veya uyumluluk raporları için, SubjectDN ve IssuerDN tam Ayırt Edici Ad dizelerini döndürür.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-identity-full-dn.cs
using IronPdf;
using IronPdf.Signing.Inspection;
var pdf = PdfDocument.FromFile("signed-agreement.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
// Full DN strings for audit logging or downstream parsing
Console.WriteLine($"Full Subject DN: {cert.SubjectDN}");
Console.WriteLine($"Full Issuer DN: {cert.IssuerDN}");
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Dim pdf = PdfDocument.FromFile("signed-agreement.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
' Full DN strings for audit logging or downstream parsing
Console.WriteLine($"Full Subject DN: {cert.SubjectDN}")
Console.WriteLine($"Full Issuer DN: {cert.IssuerDN}")
Next
İstenilen Konu ve İhraççı Alanlarını Nasıl Çıkarırsınız?
GetSubjectField(string) ve GetIssuerField(string) yöntemleri, kısa adları veya sayısal OID'leri kabul eder. Büyük/küçük harf duyarlı değildirler ve alan mevcut değilse null değerini döndürürler.
Desteklenen kısa adlar: CN, O, OU, C, L, ST, E, SERIALNUMBER, SURNAME, T, GIVENNAME, UID, ORGANIZATIONIDENTIFIER.
Herhangi Bir Konu Alanını Okuma (eIDAS OID'leri Dahil)
"OU" gibi kısa bir ad veya "2.5.4.97" (eIDAS organizationIdentifier) gibi sayısal bir OID'yi geçirerek Subject DN'den herhangi bir alanı çekin.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-field-subject.cs
using IronPdf;
using IronPdf.Signing.Inspection;
var pdf = PdfDocument.FromFile("eidas-contract.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
// Short-name lookups (case-insensitive)
string? orgUnit = cert.GetSubjectField("OU");
string? surname = cert.GetSubjectField("SURNAME");
string? givenName = cert.GetSubjectField("GIVENNAME");
string? title = cert.GetSubjectField("T");
// Numeric OID lookup (eIDAS organizationIdentifier)
string? orgId = cert.GetSubjectField("2.5.4.97");
Console.WriteLine($"Name: {givenName} {surname} ({title}), OU: {orgUnit}");
Console.WriteLine($"eIDAS Org ID (2.5.4.97): {orgId ?? "not present"}");
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Dim pdf = PdfDocument.FromFile("eidas-contract.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
' Short-name lookups (case-insensitive)
Dim orgUnit As String = cert.GetSubjectField("OU")
Dim surname As String = cert.GetSubjectField("SURNAME")
Dim givenName As String = cert.GetSubjectField("GIVENNAME")
Dim title As String = cert.GetSubjectField("T")
' Numeric OID lookup (eIDAS organizationIdentifier)
Dim orgId As String = cert.GetSubjectField("2.5.4.97")
Console.WriteLine($"Name: {givenName} {surname} ({title}), OU: {orgUnit}")
Console.WriteLine($"eIDAS Org ID (2.5.4.97): {If(orgId, "not present")}")
Next
Sayısal OID araması, standart kısa adlarla kapsanmayan kuruluş tanımlayıcıları, Professional nitelikler veya yargı alanına özgü alanları içeren eIDAS ve düzenlemeye tabi sektör sertifikaları için gereklidir.
Yayınlayıcının Alanlarını Okuma
GetIssuerField, sertifikayı veren CA'nın Ayırt Edici Adı'na karşı da aynı şekilde çalışır. Bu, güven doğrulama, CA raporlama ve imzaları veren otoriteye göre gruplandırma için kullanışlıdır.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-field-issuer.cs
using IronPdf;
using IronPdf.Signing.Inspection;
var pdf = PdfDocument.FromFile("eidas-contract.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
// GetIssuerField works the same way as GetSubjectField
string? issuerCN = cert.GetIssuerField("CN");
string? issuerO = cert.GetIssuerField("O");
string? issuerCountry = cert.GetIssuerField("C");
Console.WriteLine($"Issued by: {issuerCN} ({issuerO}, {issuerCountry})");
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Dim pdf = PdfDocument.FromFile("eidas-contract.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
' GetIssuerField works the same way as GetSubjectField
Dim issuerCN As String = cert.GetIssuerField("CN")
Dim issuerO As String = cert.GetIssuerField("O")
Dim issuerCountry As String = cert.GetIssuerField("C")
Console.WriteLine($"Issued by: {issuerCN} ({issuerO}, {issuerCountry})")
Next
Sertifikanın Geçerliliğini Nasıl Kontrol Edersiniz?
SignerCertificateInfo iki geçerlilik yardımcısı sağlar:
IsExpired,DateTime.UtcNow > NotAfterisetruedeğerini döndürür.IsValidAt(DateTime), verilen zaman damgasıNotAfteraralığına düşersetruedeğerini döndürür. Tipik kullanım, imzalanma anında sertifikanın geçerli olduğunu doğrulamaktır.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-validity.cs
using IronPdf;
using IronPdf.Signing.Inspection;
var pdf = PdfDocument.FromFile("archived-contract.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
Console.WriteLine($"Valid from: {cert.NotBefore}");
Console.WriteLine($"Valid until: {cert.NotAfter}");
Console.WriteLine($"Expired now: {cert.IsExpired}");
// Confirm certificate was valid when the document was signed
if (sig.SigningDate.HasValue)
{
bool validAtSigning = cert.IsValidAt(sig.SigningDate.Value);
Console.WriteLine($"Valid at signing time ({sig.SigningDate.Value}): {validAtSigning}");
}
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Dim pdf = PdfDocument.FromFile("archived-contract.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
Console.WriteLine($"Valid from: {cert.NotBefore}")
Console.WriteLine($"Valid until: {cert.NotAfter}")
Console.WriteLine($"Expired now: {cert.IsExpired}")
' Confirm certificate was valid when the document was signed
If sig.SigningDate.HasValue Then
Dim validAtSigning As Boolean = cert.IsValidAt(sig.SigningDate.Value)
Console.WriteLine($"Valid at signing time ({sig.SigningDate.Value}): {validAtSigning}")
End If
Next
IsExpired, sertifikadan geçerlilik tarihleri çıkarılamadığında false değerini döndürür (true değil). Yardımcı program kasıtlı olarak ihtiyatlıdır; meta verilerin eksik olması nedeniyle geçerlilik süresinin dolduğunu varsaymaz. Sıfır güven iş akışları için, eksik geçerlilik tarihlerini açıkça bir hata durumu olarak ele alın.Denetim izleri için, hem IsExpired kontrolünü (mevcut geçerlilik) hem de IsValidAt(signingDate) kontrolünü (imza anındaki geçerlilik) günlüğe kaydedin. Süresi dolmuş bir sertifika, belge imzalandığı tarihte hala geçerli olabilir; Her iki veri noktası da uyumluluk açısından önemlidir.
Sertifika Sabitleme için SHA-256 Parmak İzi Nasıl Kullanılır?
Sha256Thumbprint özelliği, DER kodlu sertifikanın SHA-256 hash'i olan 64 karakterlik büyük harfli bir onaltılık dize döndürür. Bu, kabul edilmiş imzalayıcı sertifikalarının bilinen iyi listesine karşı sabitlediğiniz değerdir.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-thumbprint-pinning.cs
using IronPdf;
using IronPdf.Signing.Inspection;
using System.Collections.Generic;
// Known-good signer thumbprints from a compliance database
var pinnedThumbprints = new HashSet<string>
{
"A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2",
"F6E5D4C3B2A1F6E5D4C3B2A1F6E5D4C3B2A1F6E5D4C3B2A1F6E5D4C3B2A1F6E5"
};
var pdf = PdfDocument.FromFile("submitted-form.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
// Pin against trusted thumbprint list
bool trusted = pinnedThumbprints.Contains(cert.Sha256Thumbprint);
Console.WriteLine($"Signer: {cert.CommonName}, Thumbprint: {cert.Sha256Thumbprint}");
Console.WriteLine($"Pinned: {trusted}");
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Imports System.Collections.Generic
' Known-good signer thumbprints from a compliance database
Dim pinnedThumbprints As New HashSet(Of String) From {
"A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2",
"F6E5D4C3B2A1F6E5D4C3B2A1F6E5D4C3B2A1F6E5D4C3B2A1F6E5D4C3B2A1F6E5"
}
Dim pdf = PdfDocument.FromFile("submitted-form.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
' Pin against trusted thumbprint list
Dim trusted As Boolean = pinnedThumbprints.Contains(cert.Sha256Thumbprint)
Console.WriteLine($"Signer: {cert.CommonName}, Thumbprint: {cert.Sha256Thumbprint}")
Console.WriteLine($"Pinned: {trusted}")
Next
Ham Sertifika Verilerinden X509Certificate2 Nasıl Oluşturulur?
RawData özelliği, DER kodlu sertifikayı byte[] olarak döndürür. Her çağrı bir savunma kopyası döndürür, böylece iç veriler hiçbir zaman referans yoluyla açığa çıkmaz. Bunu, .NET'in yerel şifreleme API'leriyle (zincir oluşturma, ilke doğrulama, CRL kontrolü) birlikte çalışabilirlik için bir System.Security.Cryptography.X509Certificates.X509Certificate2 oluşturmak için kullanabilirsiniz.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-x509-interop.cs
using IronPdf;
using IronPdf.Signing.Inspection;
using System.Security.Cryptography.X509Certificates;
var pdf = PdfDocument.FromFile("signed-report.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
var cert = sig.SignerCertificate;
if (cert is null) continue;
// Construct X509Certificate2 from defensive DER copy
byte[] derBytes = cert.RawData;
var x509 = new X509Certificate2(derBytes);
Console.WriteLine($"X509 Subject: {x509.Subject}");
Console.WriteLine($"X509 Issuer: {x509.Issuer}");
Console.WriteLine($"X509 Serial: {x509.SerialNumber}");
Console.WriteLine($"X509 Algorithm: {x509.SignatureAlgorithm.FriendlyName}");
Console.WriteLine($"X509 Key Size: {x509.PublicKey.Key.KeySize} bits");
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Imports System.Security.Cryptography.X509Certificates
Dim pdf = PdfDocument.FromFile("signed-report.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Dim cert = sig.SignerCertificate
If cert Is Nothing Then Continue For
' Construct X509Certificate2 from defensive DER copy
Dim derBytes As Byte() = cert.RawData
Dim x509 = New X509Certificate2(derBytes)
Console.WriteLine($"X509 Subject: {x509.Subject}")
Console.WriteLine($"X509 Issuer: {x509.Issuer}")
Console.WriteLine($"X509 Serial: {x509.SerialNumber}")
Console.WriteLine($"X509 Algorithm: {x509.SignatureAlgorithm.FriendlyName}")
Console.WriteLine($"X509 Key Size: {x509.PublicKey.Key.KeySize} bits")
Next
RawData'ye her erişim, yeni bir savunma kopyası döndürür. Dahili bayt dizisi hiçbir zaman referans olarak açığa çıkarılmaz, bu nedenle döndürülen baytları değiştirmek sonraki çağrıları etkilemez.Bu birlikte çalışabilirlik yolu, IronPDF'nin imza doğrulamasını X509Chain.Build(), CRL/OCSP aracılığıyla iptal kontrolü veya özel X509CertificateValidator uygulamaları gibi mevcut .NET sertifika doğrulama ardışık düzenlerine entegre etmenizi sağlar.
Sertifika Zincirini Nasıl İzlersiniz?
CertificateChain üzerindeki VerifiedSignature özelliği, imzalayan → ara CA(lar) → kök CA sırasına göre bir IReadOnlyList<SignerCertificateInfo> döndürür. Dizin 0 her zaman imzalayan sertifikasıdır (SignerCertificate ile aynı nesne). Liste asla boş değildir; Zincir çıkarılabiliyorsa, yalnızca imzalayan sertifikasını içerir.
:path=/static-assets/pdf/content-code-examples/how-to/verify-pdf-signatures-chain-walking.cs
using IronPdf;
using IronPdf.Signing.Inspection;
var pdf = PdfDocument.FromFile("enterprise-signed.pdf");
foreach (var sig in pdf.GetVerifiedSignatures())
{
Console.WriteLine($"--- Signature: {sig.SignatureName} ---");
Console.WriteLine($"Chain length: {sig.CertificateChain.Count}");
// Walk from signer (index 0) through intermediates to root CA
for (int i = 0; i < sig.CertificateChain.Count; i++)
{
var cert = sig.CertificateChain[i];
string role = i == 0 ? "Signer"
: i == sig.CertificateChain.Count - 1 ? "Root CA"
: $"Intermediate CA ({i})";
Console.WriteLine($" [{role}]");
Console.WriteLine($" Subject: {cert.SubjectDN}");
Console.WriteLine($" Issuer: {cert.IssuerDN}");
Console.WriteLine($" Serial: {cert.CertificateSerialNumber}");
Console.WriteLine($" Valid: {cert.NotBefore} to {cert.NotAfter}");
Console.WriteLine($" Expired: {cert.IsExpired}");
Console.WriteLine($" Thumbprint: {cert.Sha256Thumbprint}");
}
}
Imports IronPdf
Imports IronPdf.Signing.Inspection
Dim pdf = PdfDocument.FromFile("enterprise-signed.pdf")
For Each sig In pdf.GetVerifiedSignatures()
Console.WriteLine($"--- Signature: {sig.SignatureName} ---")
Console.WriteLine($"Chain length: {sig.CertificateChain.Count}")
' Walk from signer (index 0) through intermediates to root CA
For i As Integer = 0 To sig.CertificateChain.Count - 1
Dim cert = sig.CertificateChain(i)
Dim role As String = If(i = 0, "Signer", If(i = sig.CertificateChain.Count - 1, "Root CA", $"Intermediate CA ({i})"))
Console.WriteLine($" [{role}]")
Console.WriteLine($" Subject: {cert.SubjectDN}")
Console.WriteLine($" Issuer: {cert.IssuerDN}")
Console.WriteLine($" Serial: {cert.CertificateSerialNumber}")
Console.WriteLine($" Valid: {cert.NotBefore} to {cert.NotAfter}")
Console.WriteLine($" Expired: {cert.IsExpired}")
Console.WriteLine($" Thumbprint: {cert.Sha256Thumbprint}")
Next
Next
SignerCertificateInfo, SignerCertificate ile aynı özellikleri gösterir: kimlik alanları, geçerlilik, parmak izi, RawData, GetSubjectField() ve GetIssuerField(). Her ara CA'nın geçerlilik süresini doğrulayabilir, kök parmak izini güvenilir kök deponuzla karşılaştırabilir ve uyumluluk denetimleri için tam zinciri günlüğe kaydedebilirsiniz.Sonraki Adımlar
SignerCertificate ve CertificateChain, IronPDF API arayüzünden ayrılmadan tam X.509 denetimi sağlar. Buradan itibaren, doğal olarak bir sonraki adım, bu özelliklerin entegre edildiği IronPDF bölümlerini daha derinlemesine incelemektir.
İş akışının imzalama kısmı için, dijital imzalar kılavuzu sertifika oluşturma, meta veriler ve artımlı imzalama konularını kapsamaktadır. Yüksek güvenlikli ortamlarda HSM tabanlı imzalama için, HSM imzalama kılavuzu PKCS#11 entegrasyonunu kapsamaktadır. Kullanıma hazır kod parçacıkları mı ihtiyacınız var? Dijital imzalar kod örneği bunları sağlar.
Kendi imzalı PDF'lerinizde denemeye hazır mısınız? 30 günlük ücretsiz deneme sürenizi başlatın veya lisans seçeneklerini görüntüleyin.

