フッターコンテンツにスキップ
IRONPDFの使用

ASP .NET PDF署名ガイド:.NET CoreプロジェクトでPDFにデジタル署名を追加する

検証されていない契約書や請求書を送ることは、多くの企業にとって許されないリスクです。 文書が法的に有効で、改ざんされていないことを確認する必要があります。 デジタル署名は、まさにファイルのデジタル封蝋のようなものです。

.NET Coreアプリを構築している場合、暗号化を追加するのは複雑だと心配するかもしれません。 そうである必要はありません。 このガイドでは、IronPdfを使って翻訳を行います。 これは、サーバー上の署名プロセス全体を簡素化する簡単なモジュールです。

厳密な暗号署名が必要であろうと、ユーザが見ることができる署名が必要であろうと、このライブラリで対応できます。 NuGet Package Managerコンソールを介してVisual Studio内に直接ライブラリをインストールするか、公式サイトからダウンロードすることができます。 今すぐIronPDFを無料でお試しくださいまた、IronPDFでPDFファイルに署名する方法をご紹介します。

NuGet 購入の準備ができていませんか?

PM >  Install-Package IronPdf

IronPDFNuGet でチェックしてください。1000万回以上のダウンロードで、C#によるPDF開発を変革しています。 DLL または Windowsインストーラー をダウンロードすることもできます。

PDF電子署名とは何ですか、そしてなぜASP.NETでそれを使うのですか?

電子署名は、署名者の身元を認証し、PDF文書が変更されていないことを保証する暗号署名です。 単純な電子署名(タイプされた名前など)とは異なり、デジタル署名は証明書ベースの暗号化を使用して改ざん防止シールを作成します。 これにより、ファイルのメッセージ内容が効果的に保護されます。

.NET Coreアプリケーションでは、契約書、請求書、コンプライアンス文書を含むPDF生成ワークフローにおいて、デジタル署名付きPDFが不可欠です。 ユーザーは、Adobe Acrobat Readerまたは互換性のあるPDFビューアでこれらの署名を検証し、文書の現在の状態を確認することができます。 署名プロセスはサーバーサイドで行われるため、特定のバージョンのクライアントソフトウェアを必要とせず、処理中にウェブアプリケーションが自動的に文書に署名することができます。

証明書を使用して PDF ドキュメントに電子署名を追加するには?

PDFファイルに署名する最も安全な方法は、.pfxまたは.p12証明書ファイルを使用することです。開発やテスト環境では、自己署名証明書を生成することもできます。 このアプローチは、デジタル署名をサポートするPDFビューアで検証可能な暗号署名を適用します。

以下のコードは、新しいPdfDocumentを作成して署名する方法を示しています。 パスワードを文字列として定義し、System名前空間を基本型に使用していることに注意してください。

[HttpPost("sign-basic")]
public IActionResult SignWithCertificate()
{
    var renderer = new ChromePdfRenderer();
    var document = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1><p>Terms...</p>");
    string certPath = Path.Combine(_environment.ContentRootPath, "Certificates/certificate.pfx");
    var signature = new PdfSignature(certPath, "yourPassword")
    {
        SigningContact = "legal@company.com",
        SigningLocation = "Chicago, USA",
        SigningReason = "Document Approval"
    };
    document.Sign(signature);
    string outputPath = Path.Combine(Path.GetTempPath(), "signed-contract.pdf");
    document.SaveAs(outputPath);
    return PhysicalFile(outputPath, "application/pdf", "signed-contract.pdf");
}
[HttpPost("sign-basic")]
public IActionResult SignWithCertificate()
{
    var renderer = new ChromePdfRenderer();
    var document = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1><p>Terms...</p>");
    string certPath = Path.Combine(_environment.ContentRootPath, "Certificates/certificate.pfx");
    var signature = new PdfSignature(certPath, "yourPassword")
    {
        SigningContact = "legal@company.com",
        SigningLocation = "Chicago, USA",
        SigningReason = "Document Approval"
    };
    document.Sign(signature);
    string outputPath = Path.Combine(Path.GetTempPath(), "signed-contract.pdf");
    document.SaveAs(outputPath);
    return PhysicalFile(outputPath, "application/pdf", "signed-contract.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

認証された署名でデジタル署名されたPDF

ASP .NET PDF Signatures Guide:.NET CoreプロジェクトでPDFにデジタル署名を追加:画像1 - 証明された署名でPDFを出力する

このサンプルコードは、ChromePdfRendererを使ってPDFを生成し、署名を初期化します。 パブリックAPIには厳密にnew PdfCertificateという名前のスタンドアロンクラスは存在しませんが(通常はPdfSignatureを介して処理されます)、概念的には、署名用に新しい証明書オブジェクトを作成することになります。 Signメソッドは電子署名を適用し、SaveAsは署名されたPDFファイルをエクスポートします。また、ドキュメントをクライアントに直接返すためにストリームにアクセスする必要があるウェブレスポンスシナリオのために、MemoryStreamに保存することもできます。

署名のメタデータ・プロパティには、ユーザーが署名を検証するときに表示される追加の詳細情報を埋め込みます。 その他のオプションについては、PdfSignatureクラスのドキュメントを参照してください。

PDFに目に見える署名を作成するにはどうすればよいですか?

暗号署名はセキュリティを提供しますが、多くのワークフローでは、PDFページ上で署名を視覚的に表現する必要があります。 IronPdfは手書きの署名スキャンや会社のスタンプのような画像要素を暗号署名と一緒に追加することをサポートします。 デフォルトでは、署名は表示されませんが、この動作を編集することができます。

[HttpPost("sign-visible")]
public IActionResult SignWithVisibleImage()
{
    // Load existing PDF
    string pdfPath = Path.Combine(_environment.ContentRootPath, "Documents", "invoice.pdf");
    var document = PdfDocument.FromFile(pdfPath);
    // Certificate + image
    string certPath = Path.Combine(_environment.ContentRootPath, "Certificates", "certificate.pfx");
    string imagePath = Path.Combine(_environment.ContentRootPath, "Images", "signature-image.png");
    var signature = new PdfSignature(certPath, "yourPassword");
    var rect = new IronSoftware.Drawing.Rectangle(50, 100, 200, 80);
    signature.LoadSignatureImageFromFile(imagePath, 0, rect);
    // Sign the PDF
    document.Sign(signature);
    string outFile = Path.Combine(Path.GetTempPath(), "signed-visible.pdf");
    document.SaveAs(outFile);
    return PhysicalFile(outFile, "application/pdf", "signed-visible.pdf");
}
[HttpPost("sign-visible")]
public IActionResult SignWithVisibleImage()
{
    // Load existing PDF
    string pdfPath = Path.Combine(_environment.ContentRootPath, "Documents", "invoice.pdf");
    var document = PdfDocument.FromFile(pdfPath);
    // Certificate + image
    string certPath = Path.Combine(_environment.ContentRootPath, "Certificates", "certificate.pfx");
    string imagePath = Path.Combine(_environment.ContentRootPath, "Images", "signature-image.png");
    var signature = new PdfSignature(certPath, "yourPassword");
    var rect = new IronSoftware.Drawing.Rectangle(50, 100, 200, 80);
    signature.LoadSignatureImageFromFile(imagePath, 0, rect);
    // Sign the PDF
    document.Sign(signature);
    string outFile = Path.Combine(Path.GetTempPath(), "signed-visible.pdf");
    document.SaveAs(outFile);
    return PhysicalFile(outFile, "application/pdf", "signed-visible.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

可視署名で署名された PDF

ASP .NET PDF Signatures Guide:.NET CoreプロジェクトでPDFにデジタル署名を追加:画像2 - PDF上の可視署名

LoadSignatureImageFromFile メ ソ ッ ド は、 目に見え る 署名画像を PDF 文書に追加 し 、 暗号セキ ュ リ テ ィ と 見慣れ た視覚要素の両方を提供 し ます。 これは、利害関係者がページ上の署名を期待する要件を満たすものです。

LoadSignatureImageFromStreamを使用して、ストリームから画像を読み込むこともできます。 signing PDFs with visual elements の詳細については、こちらをご覧ください。

ユーザー署名のために署名フォームフィールドを追加するには?

外部ユーザーの署名が必要な文書では、PDFフォーム内にインタラクティブな署名フィールドを作成できます。 これにより、受信者は自分の証明書または電子署名ソフトウェアを使用して文書に署名することができます。

[HttpGet("generate-form")]
    public IActionResult GenerateSignableForm()
    {
        var renderer = new ChromePdfRenderer();
        var PDF = renderer.RenderHtmlAsPdf(@"
    <h1>Agreement Form</h1>
    <p>Please sign below to accept the terms.</p>
    <div style='border:1px solid black;width:300px;height:100px;'>Signature:</div>
");
        var field = new SignatureFormField(
            "ClientSignature",
            0,
            50,
            200,
            300,
            100
        );
        pdf.Form.Add(field);
        string outputPath = Path.Combine(Path.GetTempPath(), "agreement-form.pdf");
        pdf.SaveAs(outputPath);
        return PhysicalFile(outputPath, "application/pdf", "agreement-form.pdf");
    }
[HttpGet("generate-form")]
    public IActionResult GenerateSignableForm()
    {
        var renderer = new ChromePdfRenderer();
        var PDF = renderer.RenderHtmlAsPdf(@"
    <h1>Agreement Form</h1>
    <p>Please sign below to accept the terms.</p>
    <div style='border:1px solid black;width:300px;height:100px;'>Signature:</div>
");
        var field = new SignatureFormField(
            "ClientSignature",
            0,
            50,
            200,
            300,
            100
        );
        pdf.Form.Add(field);
        string outputPath = Path.Combine(Path.GetTempPath(), "agreement-form.pdf");
        pdf.SaveAs(outputPath);
        return PhysicalFile(outputPath, "application/pdf", "agreement-form.pdf");
    }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

署名フィールドのあるPDFファイル

ASP .NET PDF Signatures Guide:.NET Core プロジェクトで PDF に電子署名を追加:画像3 - 署名フォームフィールドのあるPDF

このコードは、署名フィールドを埋め込んだPDF文書を作成します。 フォームフィールドは、署名の正確なページ位置と寸法を定義します。 ユーザーがAdobe Acrobat Readerや他のPDFビューアでファイルを開くと、フィールドをクリックして電子署名を適用できます。

プログラムでフォームを処理するアプリケーションのために、IronPdfは署名フィールドを持つ既存のPDFの読み込みをサポートしています。 その他のPDFフォーム機能もご覧ください。

結論

IronPDF によるASP .NET PDF署名の実装は、セキュアなドキュメント署名のためのわかりやすく統合されたソリューションを提供します。 PDF ライブラリは、証明書ベースの暗号署名から、可視署名画像やインタラクティブなフォームフィールドまで、複数の署名アプローチに対応しており、アプリケーションの要件に柔軟に対応できます。

IronPdfは.NET Coreサーバー上でPDF処理の複雑さを処理し、最小限のコードでセキュアなドキュメントの生成、署名、エクスポートを可能にします。 署名されたPDFは、Adobe Acrobat Readerのような標準的なソフトウェアとの互換性を維持し、ユーザーに文書の信頼性を保証します。

プロジェクトにPDF署名を実装する準備はできていますか? IronPDFのライセンスを購入するか、無料トライアルをダウンロードすることで、開発環境ですべての機能を試すことができます。 技術サポートとフィードバックについては、Iron Softwareチームが質問にお答えし、安全なドキュメントワークフローの構築をお手伝いします。

よくある質問

.NET Coreのデジタル署名とは何ですか?

.NET Coreのデジタル署名は、PDF文書の真正性と完全性を確認するために使用されるデジタル封蝋のようなものです。文書が法的に有効で、改ざんされていないことを保証します。

IronPDFを使ってPDFドキュメントに電子署名を追加するにはどうすればいいですか?

IronPDFを使用してPDF文書に電子署名を追加することができます。証明書を含め、文書に署名するように設定することで、安全性と検証可能性を確保することができます。

なぜビジネス文書にデジタル署名が重要なのですか?

デジタル署名は、契約書や請求書などの文書が本物であり、変更されていないことを証明するため、ビジネスを潜在的な法的リスクから保護する上で非常に重要です。

IronPDFでPDFにインタラクティブなフォームフィールドを作成できますか?

はい、IronPdfはPDFにインタラクティブなフォームフィールドを作成することができ、ASP.NET Coreアプリケーションでユーザーとのインタラクションを強化し、ドキュメントプロセスを合理化します。

PDF文書に目に見える署名を追加することは可能ですか?

IronPdfを使用すると、PDF文書に目に見える署名を追加することができます。

PDFの電子署名にはどのような種類の証明書を使用できますか?

PDF の電子署名には、必要なセキュリティと信頼のレベルに応じて、自己署名証明書や信頼できる認証局から発行された証明書など、さまざまな種類の証明書を使用することができます。

IronPdfはどのようにしてPDF文書が改ざんされていないことを保証するのですか?

IronPDFは、文書の完全性と真正性を検証するデジタル署名を使用することで、PDF文書が改ざんされていないことを保証し、署名後に変更が加えられた場合は受信者に警告を発します。

.NET Coreアプリケーションでデジタル署名プロセスを自動化できますか?

バッチ処理と既存のワークフローへの統合を可能にするIronPDFを使用して、ASP.NET Coreアプリケーションでデジタル署名プロセスを自動化することができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。