
ご挨拶! オブジェクトコードに署名するための証明書を受け取ったときの経験を共有したいです。 多くの記事と投稿がデジタル署名と予算のStartSSLについて書かれています。 私はほぼ60ドルを費やし、この道をたどり、私の経験をコミュニティと共有することを試みました。
以下はすべて私の個人的な経験にのみ関連し、Windowsに適用されます。
Startssl

ステップ 1-個人証明書の取得-Webサイトwww.startssl.comで 、証明書を使用して個人アカウントを入力できます。 メインページで[サインアップ]をクリックし、すべてのフィールドに入力します。 個人証明書を受け取り、インストールします。 すぐに問題が発生しました-正しく機能します-Mozilla Firefoxでのみ、他のブラウザーではアカウントへのログインに問題があります。 証明書のバックアップコピーを作成し、外部メディアに保存します。
ブラウザの証明書

ステップ2 -IDの確認-クラス2。このステップでは支払いが必要です。 実際、証明書を取得するにはこれが必要な項目です。 サイトからの引用:「個人および組織の確認にかかる費用は1回につき59.90米ドルです。」この段階では、書類のコピーを提供する必要があります。と私のパスポートの詳細。 支払いは「PayPal」-「ツールボックス」-「クレジットカードの追加| ペイパル| チケット」いくつかの支払い方法を選択できます。 彼らは請求書を送り、支払いを待ちます。 支払いが確認された後、確認コード付きの書留郵便が郵送されます。 これは最も長い段階です-手紙は約1か月かかります。 メールで送信した電子メールに通知が届きます。 3週間後、私はすでに緊張し始め、サポートに書き始めました-それに応じて、彼らは手紙がどこにあるかを追跡できるメールアイテムの番号を送信しました。
ロシアでの書き方

手紙そのもの


ステップ 3-受け取った文字「ツールボックス」からのコードの確認-「検証コードの送信」

文字番号と確認コードを入力します。 そして、すべてが正しければ、祝福され、6時まで我慢するよう求められます。

しばらくして、内容が記載された手紙を受け取ります。
「おめでとうございます! クラス2 ID検証が確認および承認されました。 2015-10-04までは、クラス2レベルの証明書の資格があります。”-ビンゴ!!! これで、コードに署名するための待望の証明書を受け取る機会があります!
身分証明書
4番目のステップ -事前に署名の作成方法を尋ねたところ、フォーラムへのリンクが送信されました。
最初は、最初の指示に従ってすべてを始めましたが、うまくいきませんでした。 順番に:
必要なファイル:
1. Windowsバージョン0.9.8以降のOpenSSL 。 OpenSSLバージョン1.0.1 32ビット-フルを使用しました。
2. signtool.exeは、.NET Frameworkのユーティリティです。 インターネット上のどこかから個別にダウンロードしました。
OpenSSLをインストールします-私のデフォルトパスはC:\ OpenSSL-Win32 \ binです-このフォルダーには、証明書の作成に必要なバイナリファイルがあります。 次に、コマンドラインを開き、このフォルダーに移動してopensslを実行します。

req -new -newkey rsa:4096 -nodes -keyout codesign_privatekey.pem -out codesign_certificate_request.csr
プロセスは質問をします:
1.国2文字-私たちの場合:RU
2.州または県-氏名。
3.都市。
4.組織の名前。
5.ユニットの名前。
6.ドメイン名または名前。
7.メールアドレス。
-残りは空白のままにすることができます。
フィールドを空白のままにするには、値の代わりにドットを挿入します。
秘密鍵のパスワードを設定することはできません、または、パスワードを設定することはお勧めしません、私はそれをインストールしましたが、指示をよく読んでいませんが、問題に気づきませんでした、主なことはパスワードを忘れないことです-証明書は一度発行されます
現在のフォルダーでは、私の場合「C:\ OpenSSL-Win32 \ bin」に、2つの新しいファイルが表示されます。
codesign_privatekey.pem-秘密鍵。
codesign_certificate_request.csr-証明書要求ファイル。
これらのファイルは両方ともテキストエディターで開くことができます。 codesign_certificate_request.csrが必要です。それをメモ帳などのテキストエディターで開き、すべての内容をクリップボード<ctrl-a> <ctrl-c>にコピーします。
Webサイトwww.startssl.comで 「Certificates Wizard」セクションに移動し、一部のアイテムのみが検証され、「Certificate Target:」フィールドでドロップダウンメニューの「Object Code Signing Certificate」アイテムを選択します。以前コピーしたものを貼り付ける必要があるウィンドウが開きますテキスト<ctrl-v>。 次に、ボタンを押して続行します。 また、リクエストが確認されるまで数時間待つように求めるサインが表示されます。 確認後、おめでとうと通知がメールで届きます。 そして今、「ツールボックス」-「証明書の取得」で証明書を取得できます。そこで証明書を選択し、「次へ」をクリックして「証明書:」フィールドからすべてのテキストをコピーします。 次に、コマンドラインからOpenSSLを再度実行します。

openssl pkcs12 -export -out codesign.pfx -inkey codesign_privatekey.pem -in codesign_certificate.crt
秘密鍵のパスワードが要求されます。設定した場合は入力し、鍵をエクスポートするためのパスワードを要求します。空白のままにします。
別のcodesign.pfxファイルを作成する必要があります。 このファイルを使用して、プログラムに署名します。
5番目のステップ 、最終。
これでcodesign.pfxができました。ファイルにデジタル署名するために必要なものがすべて含まれています。
ファイルに署名するには、このようなコマンドを実行する必要があります。
signtool.exe sign /d "% %" /du "%http://%" /f "codesign.pfx" /t "http://timestamp.verisign.com/scripts/timestamp.dll" /v "% %"
当然、タスクに応じてフィールドに入力する必要があります。
ファイルに署名しようとしたときに最初に問題が発生しました-インストール後にsigntool.exeにcapicom.dllが必要であることが判明したため、システムにこのライブラリを登録する必要がある場合があります-コマンドラインを管理者として実行し、 capicom.dllが存在するフォルダーに移動して実行します
-その後、すべてが機能し始め、ファイルが署名され始めました。regsvr32 capicom.dll
署名されたファイルのスクリーンショット:


便宜上、すべてのデータとファイルを指定してバッチでサインインできる小さなユーティリティを作成しました。
この証明書は、1年間に1回作成されます。 署名はWindowsXP SP3以降で有効です。
このような署名プログラム、dll、サービスに署名できます。 ドライバーの署名には適していません。
デジタル署名が必要ですか? 決定するのは全員です。 たとえば、一部のウイルス対策ソフトウェアは、USBフラッシュドライブから未知のプログラムを容赦なく削除しますが、これは私の実習で発生しました。ファイルに署名があると、動作が変わる場合があります。
あなたは60ドルと1ヶ月の時間が必要です-そしてあなたはデジタル署名の幸せな所有者です。
ただし、証明書が平和的な目的で使用されていない場合は、理解する必要があります。証明書を取り消すと、署名は無効になります。
質問がある場合は、私ができるよりもコメントを歓迎します-私は助けます。 エラーを見つける-個人的に書いてください。
この記事が、そのような一歩を踏み出す勇気のない人々を助けることを願っています。