Как создать PFX с моей цепочкой сертификатов?

я применяю цифровую подпись к исполняемому файлу. Используя signtool в Windows XP или Windows Vista:

>signtool.exe sign /f "avatar.pfx" MyApp.exe

автоматически включил всю цепочку сертификации в цифровую подпись.

начиная с Windows 7 вся цепочка сертификации и нет больше входит. вы должны вручную включить сертификат что:

  • подписали ключ
  • подписал сертификат, который подписал ваш ключ
  • ...
  • ...пока нет больше сертификатов для включения

мне сказали, что я должен сделать это с помощью /ac переключатель С signtool утилиты.

С документация MSDN signtool:

/ ac имя файла
Указывает файл, содержащий дополнительный сертификат для добавления блок подписи.

как получить имя файла сертификата, который подписал мой сертификат?

Это более запутанным, потому что у меня нет такого файла. у меня есть мой исполняемый файл с цифровой подписью без встроенной цепочки сертификации:

enter image description here


пользователь Stackoverflow davidcl тот же вопрос. В этом самоотверженный ответ он говорит, что мне нужно

выполните подпись с помощью файла PFX, который содержит корневой сертификат, промежуточный сертификат, сертификат разработчика и закрытый ключ.
После создания соответствующего файла PFX-что само по себе было одиссеей...

но он не дает, как он создал PFX, который содержит всю цепочку сертификации.


см. также

2 ответов


установить OpenSSL для Windows. После завершения, у вас есть openssl.exe исполняемый файл где-то в вашей системе.

теперь действуйте следующим образом.

  1. openssl pkcs12-в Аватаре.pfx-out аватар.Пэм-узлы

(нужно ввести .pfx-файлу, пароль)

  1. openssl pkcs12-в Аватаре.pfx-файл из файл mycert.pem-узлы-clcerts

(снова PW)

  1. в openssl x509-на-в файл mycert.Пэм-из файл mycert.cer-outform DER

теперь откройте Проводник и дважды щелкните на файл mycert.ССВ. Просмотрите детали, и где-то он будет говорить об эмитенте. Это компания, которая выпустила ваш ключевой магазин, ваша следующая цель-получить их промежуточные сертификаты и окончательный корневой сертификат. Если Вам ПОВЕЗЕТ, есть расширение под названием "Доступ к информации об органе" в вашем сертификате, которое сообщает вам, где получить сертификат непосредственно. Если вам не так повезло, то вы найдете URL-адрес для доступа OCSP в разделе " Доступ к информации о полномочиях "или URL-адрес для CRL в расширении"точки распространения CRL". Они должны по крайней мере дать вам смутное представление о "домашней страницы поставщика". В случае сомнений, просто google вокруг, или спросите меня еще раз:)

Если вы находитесь на странице поставщика, вам придется смотреть для "сертификатов" или "промежуточных сертификатов". Вам нужно скачать тот, чье имя в точности совпадает с тем, что вы нашли в поле "Эмитент" вашего собственного сертификата.

теперь забавная часть: сертификат, который вы только что нашли, снова будет иметь поле "Эмитент". Вам повезло, если эмитент является той же компанией (как правило, для больших ЦС, таких как VeriSign), то вы найдете соответствующий сертификат на том же сайте, на котором вы находитесь в настоящее время. Если нет, повторите предыдущие действия.

повторите эту громоздкую процедуру, пока не найдете сертификат, поле "тема" которого точно такое же, как поле "Эмитент". Значит, вы закончили. Это так называемый "самоподписанный корневой сертификат".

большинство из этих сертификатов придет в " DER " / " ASN.1" / "X. 509" format-если у вас есть выбор, загрузите формат "PEM", иначе вам сначала нужно будет преобразовать сертификаты в формат " PEM by

openssl x509 -in cert.der -inform DER -out cert.pem

после того, как у вас есть все недостающие сертификаты в формате PEM

  1. открыть исходный файл, созданный на шаге 1, Аватар.Пэм в текстовом редакторе.

  2. откройте отсутствующие файлы PEM сертификата в отдельных окнах

  3. скопируйте отсутствующие сертификаты (весь файл, включая "- - - - - начать сертификат - - - - - " и " - - - - - конец сертификата - - - - -") и добавьте их к воплощение.Пем!--5-->

  4. сохранить результат

  5. вопрос

в OpenSSL pkcs12 из -экспортировать -в "Аватаре".Пем-аут ньюаватар.pfx-файл -имя ""

вы должны ввести новый пароль, который будет использоваться с новым файлом.


незначительное дополнение к комментарию Яна выше "в конце концов, у меня был гораздо более простой способ получить.ССВ...". В эти дни при экспорте pfx подписи кода с веб-страницы Thawte можно указать, что требуется включить всю цепочку. Следовательно, вы можете импортировать pfx с помощью certmgr.msc, а затем экспортировать один промежуточный сертификат Thawte в качестве codesign.файл cer. Затем используйте это с помощью переключателя signtool /ac. Нет необходимости иметь старое подписанное приложение. Обязательно удалите временный сертификат в магазин, поэтому ваш тест недавно подписанного приложения действителен. -- Уильям Крофт!--1-->