PDA

Просмотр полной версии : Создаем свой сертификат


Dynamite
, 22:15
Создаем свой сертификат
за пять шагов

Шаг 1 - Создание сертификата
Для этого воспользуемся утилитой Makecert.exe:

Makecert.exe -r -sv MyCert.pvk -n "CN=MyCert" -b 01/01/2000 -e 01/01/2099 MyCert.cer

Сейчас мы имеем наш сертификат (MyCert.cer) и закрытый ключ (MyCert.pvk)
но нам необходим файл .pfx для использования утилиты signtool.exe,
переходим ко 2-му шагу.


Шаг 2 - Создание .pfx из .cer
Для создания .pfx файла из .cer файла запустим утилиту Pvk2Pfx.exe:

Pvk2Pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx



Шаг 3 - Создание provisioningdoc xml
Создаем cab файл для установки нашего сертификата на устройства.
Для этого нам необходимо создать wap-provisioningdoc xml

<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="CertificateStore">
<characteristic type="Privileged Execution Trust Authorities">
<characteristic type="[cert_sha1]">
<parm name="EncodedCertificate" value="[cert_base64]" />
</characteristic>
</characteristic>
</characteristic>
<characteristic type="CertificateStore">
<characteristic type="SPC">
<characteristic type="[cert_sha1]">
<parm name="EncodedCertificate" value="[cert_base64]" />
<parm name="Role" value="222" />
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>

Это стандартная схема provisioningdoc.

Нам необходимо заполнить значения [cert_sha1] и [cert_base64] данными из MyCert.cer.
Для получения этих данных используем утилиту openssl.exe

Openssl.exe sha1 MyCert.cer > MyCert_sha1.txt
Openssl.exe base64 -in MyCert.cer > MyCert_base64.txt


В результате получаем 2 текстовых файла со значениями sha1 и base64 из нашего сертификата.
Создаем пустой файл "_setup.xml" и вставляем в него следующий текст:

<?xml version="1.0" encoding="utf-8" ?>
<wap-provisioningdoc>
<characteristic type="CertificateStore">
<characteristic type="Privileged Execution Trust Authorities">
<characteristic type="30bc827f441fa4437b645163e49ade7226b362c3">
<parm name="EncodedCertificate" value="MIIB7zCCAVigAwIBAgIQSZfc9OLump1HzDNpsZ2edTANBgkqhkiG9w0BAQQFADAR
MQ8wDQYDVQQDEwZNeUNlcnQwIBcNOTkxMjMxMjMwMDAwWhgPMjA5ODEyMzEyMzAw
MDBaMBExDzANBgNVBAMTBk15Q2VydDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEAx6QQIhONxvNHrK+p1qgy/AY3/Q/rf7XGvMYmxENAdQFjgP2CpH/1Bgsa8MwK
XxViZqW2DbixDas77M+cG3BnxtdK42xuhBlzVCq8wiOh7/q9SZp9wKj94c7k5jok
L1BgHT2dH2DHUgnxG6Y9mvowX/DJ8gvbNKR1p4FQpK74NvUCAwEAAaNGMEQwQgYD
VR0BBDswOYAQfyce0/6l1q4oeResHzIEZ6ETMBExDzANBgNVBAMTBk15Q2VydIIQ
SZfc9OLump1HzDNpsZ2edTANBgkqhkiG9w0BAQQFAAOBgQAEqy6rTbjmV/6zgYBY
+gQQqBHf4GMvyEUR9g5+p/esG7GDve/qbZ4bm1BOSdRfgzMsda2guciMD54QPHNp
k+wdE0tSuQN90Dla8109GmTdFyZkVezSDmuCkbX0BjQW2dJ6egvGG2mnA7Q6/5yt
4ftcV6hExesZviGUKXdBhBM2Dg==" />
</characteristic>
</characteristic>
</characteristic>
<characteristic type="CertificateStore">
<characteristic type="SPC">
<characteristic type="30bc827f441fa4437b645163e49ade7226b362c3">
<parm name="EncodedCertificate" value="MIIB7zCCAVigAwIBAgIQSZfc9OLump1HzDNpsZ2edTANBgkqhkiG9w0BAQQFADAR
MQ8wDQYDVQQDEwZNeUNlcnQwIBcNOTkxMjMxMjMwMDAwWhgPMjA5ODEyMzEyMzAw
MDBaMBExDzANBgNVBAMTBk15Q2VydDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
gYEAx6QQIhONxvNHrK+p1qgy/AY3/Q/rf7XGvMYmxENAdQFjgP2CpH/1Bgsa8MwK
XxViZqW2DbixDas77M+cG3BnxtdK42xuhBlzVCq8wiOh7/q9SZp9wKj94c7k5jok
L1BgHT2dH2DHUgnxG6Y9mvowX/DJ8gvbNKR1p4FQpK74NvUCAwEAAaNGMEQwQgYD
VR0BBDswOYAQfyce0/6l1q4oeResHzIEZ6ETMBExDzANBgNVBAMTBk15Q2VydIIQ
SZfc9OLump1HzDNpsZ2edTANBgkqhkiG9w0BAQQFAAOBgQAEqy6rTbjmV/6zgYBY
+gQQqBHf4GMvyEUR9g5+p/esG7GDve/qbZ4bm1BOSdRfgzMsda2guciMD54QPHNp
k+wdE0tSuQN90Dla8109GmTdFyZkVezSDmuCkbX0BjQW2dJ6egvGG2mnA7Q6/5yt
4ftcV6hExesZviGUKXdBhBM2Dg==" />
<parm name="Role" value="222" />
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>


Теперь можно создавать cab файл.


Шаг 4 - Создание cab файла
Создаем cab файл с помощью утилиты Makecab.exe:

Makecab.exe _setup.xml mycert_cert.cab


Наш сертификат готов к установке на устройства!


Шаг 5 - Подписывание приложений
После установки сертификата мы можем использовать MyCert.pfx как доверенный.

Используем утилиту Signtool.exe:

Signtool.exe sign /f MyCert.pfx *.exe *.cab

или

Signcode.exe -v MyCert.pvk -spc MyCert.cer *.exe


.:: Скрытый текст (вы должны зарегистрироваться или войти под своим логином) ::.