Автоматическая установка клиентских сертификатов
Я пытаюсь автоматически установить root (с его CRL) и клиентские сертификаты с соответствующим закрытым ключом. Они создаются в машине разработки для установки их на клиентские машины. На машине разработки это работает, но на производственных / клиентских машинах не удается установить сертификат клиента, поэтому я должен вручную установить его, введя пароль.
Приложение автоматической установки написано на C++, использует PCCERT_CONTEXT для установки корневых файлов.cer и.crl и certutil.exe для установки клиентских файлов pfx:
certutil.exe -p password -user -addstore "My"-importpfx ClientTemp.pfx NoRoot
И для создания сертификатов:
echo Create a Certificate to Act as Your Root Certificate Authority
makecert -n "CN=RootCATest" -r -sv RootCATest.pvk RootCATest.cer
echo Create a Certificate Revocation List File from the Root Certificate
makecert -crl -n "CN=RootCATest" -r -sv RootCATest.pvk RootCATest.crl
echo Create and Install the Client Certificate for Authentication
makecert -iv RootCATest.pvk -n "CN=ClientTemp" -ic RootCATest.cer -pe -sr CurrentUser -ss my -sky signature -sv ClientTemp.pvk ClientTemp.cer
echo Create private key backup
pvk2pfx.exe -pvk ClientTemp.pvk -spc ClientTemp.cer -pfx ClientTemp.pfx -po password
Да, возможно, это беспорядок, после слишком большого количества модификаций, пытающихся создать и установить сертификат клиента со связанным закрытым ключом (сначала он устанавливался без ключа, и я должен вручную исправить это, давая разрешения на закрытые ключи, хранящиеся на компьютере, и другие так, как я не помню). Используйте.cer и.crl для установки root и crl, и.pfx для установки сертификата клиента. Но подождите, это работает на виртуальной машине с Windows 7, и, когда я пишу это, мне приходит в голову, что, возможно, certutil.exe не на клиентских машинах... ups (не могу проверить это прямо сейчас). Ну, если это так, так как я потратил много времени на написание:), возможно, у кого-то есть другая идея. Спасибо за прочтение.