本文へスキップ

電子署名

証明書で署名し、ファイルが変更されていないことを読み手が確かめられるようにします。

お使いの端末で処理

このツールはブラウザーの中だけで動きます。ファイルがアップロードされることはなく、そのことはブラウザーのネットワークタブでご自身で確認できます。 ご自分で確かめてください。ブラウザーのネットワークタブを開いて見てください。残りの作業回数を尋ねる小さなリクエストが1つだけ表示されます。ツール名とハッシュだけで、ファイルは決して含まれません。

このツールでできること

This applies a real cryptographic signature: a detached CMS SignedData structure computed over the document's bytes and embedded in the file, which Acrobat and other compliant readers check when the document is opened. Unlike a drawn signature it establishes two things - that the holder of a particular certificate signed, and that not one byte has changed since.

When the recipient will verify rather than merely look: a tender submission, an invoice under an e-invoicing rule, a document going into an archive that requires signed originals, or anything where a later argument about whether the file was altered is a real possibility.

仕組み

  1. Drop two files onto this page: the PDF, and your certificate as a .p12 or .pfx file. The order does not matter - the PDF is recognised by its contents.
  2. Type the passphrase that protects the certificate. It is used in your browser to unwrap the private key and is never sent.
  3. Fill in the reason and the location if your recipient expects them. Both are recorded inside the signature and shown by readers that display signature details.
  4. Leave visible on to draw a signature block on the page you choose, or turn it off for a signature that exists only in the file's structure.
  5. Press Sign with certificate, then open the result in Acrobat to see what a recipient's reader will report.

Every online signing service asks you to upload the one file you should never upload. Here the .p12 is read in the page and parsed inside a worker that holds nothing else, and the worker is terminated when the job finishes - the thread is discarded rather than a variable cleared, so nothing of the key survives into a later job.

A PDF signature covers the byte ranges its /ByteRange array names, and that array has to be written into the file in place, after space for the signature has been reserved. Re-serialising the document afterwards moves every offset and invalidates what was just computed - the mistake naive implementations make, and the reason some signed PDFs report as broken the moment they are opened.

A self-signed certificate produces a valid signature that readers report as validity unknown, because they have no reason to believe the name on it. That is not a failure: it says the mathematics checks out and the identity does not. A certificate issued by an authority your recipient's reader already trusts is what turns that into a green tick.

There is no trusted timestamp and no revocation checking, because both need a network service that this tool never contacts. The signing time recorded is your own computer's clock, which a strict recipient should treat as a claim rather than proof. An encrypted PDF is refused for a related reason: a signature computed over ciphertext is not something a reader will validate.

このツールにできないこと

  • A self-signed certificate shows as validity unknown in the recipient's reader until they choose to trust it. Only a certificate from an authority their reader already trusts avoids that.
  • No trusted timestamp is applied and no revocation is checked, because both require contacting a server. The recorded signing time is your device's clock.
  • This produces a basic signature rather than a long-term-validation profile, so once the certificate expires nothing in the file confirms the signature was made while it was valid.
  • Encrypted documents are refused. Remove the password with Unlock PDF before signing.
  • The visible signature block has a fixed position and size on the page you choose; it cannot be dragged elsewhere.

よくある質問

「PDFに署名」とはどう違いますか?
「PDFに署名」はページに署名の絵を描きます。こちらは秘密鍵を使ってファイルのバイト列に対して暗号的な署名を計算し、それを埋め込みます。読み手は証明書に基づいて誰が署名したかを確認でき、そのあとに何か変わったかどうかも分かります。描いた署名では、そのどちらも示せません。
証明書はどこで手に入りますか?
認証局から取得します。国の制度、商用の認証局、勤務先が発行している場合もあります。必要なのはPKCS#12形式のバンドル、つまり証明書と秘密鍵をまとめた.p12または.pfxファイルです。OpenSSLで作った自己署名のものでも問題なく署名できますが、リーダーが自動で信頼することはありません。
Acrobatで「署名の有効性は不明です」と出るのはなぜですか?
数学的な検証は済んでいて、身元の検証ができないという意味だからです。このメッセージは、署名が壊れておらずドキュメントも変更されていないが、証明書がリーダーの信頼する認証局までつながらない、ということを示します。自己署名の証明書では必ずこうなります。
秘密鍵はアップロードされますか?
いいえ。そしてこれは、その点がもっとも重要なツールです。.p12はページの中で読み込まれ、処理が終わればすぐに終了するWeb Workerの中で解析されるため、鍵は保持されず、何も送信されません。署名する前にネットワークタブを開いて、何も出ないところを見てください。
信頼できるタイムスタンプは付きますか?
いいえ。タイムスタンプはネットワーク越しにタイムスタンプ局から受け取るものですが、このツールはネットワークへの通信をいっさい行わないため、記録される時刻はお使いの端末の時計です。これは証拠ではなく主張なので、厳しい運用ルールのある相手には先に伝えておいてください。
ドキュメントはアップロードされますか?
いいえ。ドキュメントも証明書も端末に留まり、署名の計算もファイルへの書き込みも手元で行われます。ページを一度読み込んだあとは通信を切った状態でも署名でき、機密性の高いものを扱うにはそれが妥当なやり方です。

関連ツール