Как создать PFX с моей цепочкой сертификатов?
Я применяю цифровую подпись к моему исполняемому файлу. С помощью signtool
в Windows XP или Windows Vista:
>signtool.exe sign /f "avatar.pfx" MyApp.exe
автоматически включает всю цепочку сертификации в цифровую подпись.
Начиная с Windows 7, вся цепочка сертификации больше не включена. Вы должны вручную включить сертификат, который:
- подписал твой ключ
- подписал сертификат, который подписал ваш ключ
- ...
- ... пока нет больше сертификатов для включения
мне сказали, что я должен сделать это, используя/ac
переключаться с signtool
полезность.
Из документации MSDNsigntool
:
/ ac FileName
Указывает файл, который содержит дополнительный сертификат для добавления в блок подписи.
Как я могу получить имя сертификата, который подписал мой сертификат?
Это более запутанно, потому что у меня нет такого файла. у меня есть исполняемый файл с цифровой подписью без встроенной цепочки сертификации:
У пользователя davidcl был такой же вопрос. В этом ответе на свой вопрос он говорит, что мне нужно
выполните подпись с использованием файла PFX, который содержит корневой сертификат, промежуточный сертификат, сертификат разработчика и закрытый ключ.
После создания соответствующего файла PFX - который был одиссеей сам по себе...
Но он не дает, как он создал PFX, который содержит всю цепочку сертификации.
Смотрите также
2 ответа
Установите OpenSSL для Windows. Когда вы закончите, у вас есть openssl.exe
исполняемый файл где-нибудь в вашей системе.
Теперь действуйте следующим образом.
openssl pkcs12 -в avatar.pfx -вне avatar.pem -nodes
(Вам необходимо ввести пароль.pfx здесь)
openssl pkcs12 -в avatar.pfx -out mycert.pem -nodes -clcerts
(снова PW)
openssl x509 - в mycert.pem -out mycert.cer -outform DER
Теперь откройте проводник и дважды щелкните мышью на mycert.cer. Посмотрите детали и где-то там поговорим об эмитенте. Это компания, которая выпустила ваше хранилище ключей, ваша следующая цель - получить промежуточные сертификаты и окончательный корневой сертификат. Если вам повезет, в вашем сертификате есть расширение "Доступ к информации об полномочиях", в котором указано, где можно напрямую получить сертификат выдачи. Если вам не так повезло, вы найдете URL-адрес для доступа OCSP в разделе "Доступ к информации о полномочиях" или URL-адрес для CRL в расширении "Точки распространения CRL". По крайней мере, они должны дать вам смутное представление о "домашней странице" продавца. В случае сомнений просто погуглите или спросите меня снова:)
Если вы находитесь на странице поставщика, вам придется остерегаться "Сертификаты CA" или "Промежуточные сертификаты". Вам нужно скачать тот, чье имя точно совпадает с тем, что вы нашли в поле "Эмитент" вашего собственного сертификата.
Самое смешное: у только что найденного сертификата снова будет поле "Эмитент". К счастью, если эмитентом является одна и та же компания (как правило, это относится к крупным центрам сертификации, таким как VeriSign), то вы найдете соответствующий сертификат на том же сайте, на котором вы сейчас находитесь. Если нет, повторите предыдущие шаги.
Повторяйте эту громоздкую процедуру, пока не окажетесь в точке, где вы найдете сертификат, поле "Subject" которого точно совпадает с его полем "Issuer". Вы сделали тогда. Это так называемый "самоподписанный корневой сертификат".
Большинство этих сертификатов будут представлены в формате "DER"/"ASN.1"/"X.509" - если у вас есть выбор, загрузите формат "PEM", в противном случае вам сначала нужно будет преобразовать сертификаты в формат "PEM". от
openssl x509 -in cert.der -inform DER -out cert.pem
После того, как у вас есть все недостающие сертификаты в формате PEM
Откройте исходный файл, созданный на шаге 1, avatar.pem, в текстовом редакторе.
открыть недостающие файлы сертификата PEM в отдельных окнах
скопируйте отсутствующие сертификаты (весь файл, включая "----- BEGIN CERTIFICATE -----" и "----- END CERTIFICATE -----") и добавьте их в avatar.pem
сохранить результат
вопрос
openssl pkcs12 -export -in avatar.pem -out newavatar.pfx -name ""
Вам нужно будет ввести новый пароль, который будет использоваться с новым файлом.
Незначительное добавление к комментарию Яна выше "В конце концов, у меня был намного более простой способ получить.cer...". В эти дни, когда вы экспортируете код pfx для подписи кода с веб-страницы Thawte, вы можете указать, что хотите включить всю цепочку. Следовательно, вы можете импортировать файл pfx с помощью certmgr.msc, а затем экспортировать один промежуточный сертификат Thawte в виде файла codeign.cer. Затем используйте это с переключателем signtool / ac. Нет необходимости иметь старое подписанное приложение. Обязательно удалите временный сертификат в магазине, чтобы ваш тест только что подписанного приложения был действительным. - Уильям Крофт