Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline norn  
#1 Оставлено : 13 декабря 2011 г. 16:50:21(UTC)
norn

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.11.2009(UTC)
Сообщений: 86
Откуда: Регионы...

Поблагодарили: 2 раз в 2 постах
Помогите кодом на VB6 или .net, как программно установить корневой сертификат в хранилище Windows?

Отредактировано пользователем 13 декабря 2011 г. 17:30:12(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#2 Оставлено : 13 декабря 2011 г. 16:58:33(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,190
Мужчина
Российская Федерация

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
norn написал:
Помогите кодом, как программно установить корневой сертификат в хранилище Windows?


CertAddCertificateContextToStore пример





Техническую поддержку оказываем тут
Наша база знаний
Offline Kirill Sobolev  
#3 Оставлено : 13 декабря 2011 г. 18:07:12(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Или для .net X509Store.Add
Техническую поддержку оказываем тут
Наша база знаний
Offline norn  
#4 Оставлено : 13 декабря 2011 г. 18:09:11(UTC)
norn

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.11.2009(UTC)
Сообщений: 86
Откуда: Регионы...

Поблагодарили: 2 раз в 2 постах
Спасибо!
Offline Андрей Писарев  
#5 Оставлено : 13 декабря 2011 г. 18:12:28(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,190
Мужчина
Российская Федерация

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
norn написал:
Спасибо!


norn написал:
Помогите кодом, как программно установить корневой сертификат в хранилище Windows?


уточняй в следующий раз сразу, на каком языке ;)



Техническую поддержку оказываем тут
Наша база знаний
Offline norn  
#6 Оставлено : 12 сентября 2014 г. 8:09:26(UTC)
norn

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.11.2009(UTC)
Сообщений: 86
Откуда: Регионы...

Поблагодарили: 2 раз в 2 постах
Всё сделал проще, на VBS:

Код:
' Устанавливает файлы по маске "*.cer" и некоторые дополнительные функции для работы с УЦ.
' Данное ПО не является СКЗИ
' Made by NorN 2014. VBS it's Easy.

On Error Resume Next

otvet = MsgBox ("Эта программа установит корневые сертификаты необходимые для корректной работы сайта удостоверяющего центра************. " & vbCrLf & vbCrLf & "Считыватель РЕЕСТР в СКЗИ КриптоПро будет удалён! Если электронные подписи хранятся в РЕЕСТРЕ, они станут недоступны." & vbCrLf & vbCrLf & "Электронную подпись разрешено хранить только на отчуждаемых носителях информации - USB Flash-диски, RUToken, EToken, одна подпись - один носитель!" & vbCrLf & vbCrLf & "Вы используете ВНЕШНИЕ носители для хранения электронной подписи?", 4)
if otvet = 6 then
	path = "\certs\"
	Set WshShell = WScript.CreateObject( "WScript.Shell" )
	Set objNetwork = CreateObject( "WScript.Network" )
	Set FSO = CreateObject( "Scripting.FileSystemObject" )
	Set LogFile = FSO.OpenTextFile( "log.txt", 8, True )
	LogFile.write vbCrLf & vbCrLf & Now( ) & vbCrLf
	LogFile.write "Имя пользователя: " & objNetwork.UserName & vbCrLf
	If Err.Number <> 0 Then
		LogFile.write vbCrLf  & "Ошибка скрипта № 1, ошибка системы № " & Err.Number & " " & Err.Description
		Err.Clear
	End if
	i = 0
	CurDir = (WshShell.CurrentDirectory)
	for each fn in FSO.GetFolder( CurDir & path ).Files
		if right(fn.name, 4) = ".crt" or right(fn.name, 4) = ".cer"  then
			comline = "certmgr -add -c " & chr(34) & fn & chr(34) & " -s -r localMachine root"
			WshShell.Run comline, 7, true
			LogFile.write comline & vbCrLf
			i = i + 1
			If Err.Number <> 0 Then
				LogFile.write vbCrLf  & "Ошибка скрипта № 1, ошибка системы № " & Err.Number & " " & Err.Description
				Err.Clear
				MsgBox "Ошибка установки № 1, ошибка системы № " & Err.Number & " " & Err.Description
			End if
		End if
	next

	'записываем в реестр
	RegFileName = CurDir & "\certs\oids.reg"
	WshShell.run "regedit /s " + """" + RegFileName + """", 7, true
	If Err.Number <> 0 Then
		LogFile.write vbCrLf  & "Ошибка скрипта № 2, ошибка системы № " & Err.Number & " " & Err.Description
		Err.Clear
		MsgBox "Ошибка установки № 2, ошибка системы № " & Err.Number & " " & Err.Description
	End if
	' записываем в LogFile
	LogFile.write "Установлено " & i & " сертификатов" & vbCrLf & Now( )& vbCrLf & "------------------------" & vbCrLf
	LogFile.close

	' читаем версию КриптоПро
	DiRegedit = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\05480A45343B0B0429E4860F13549069\InstallProperties\DisplayVersion")
	mesNo = 0
	If left(DiRegedit,1) < 3 or (left(DiRegedit,6) <> "3.6.77" and left(DiRegedit,1) = 3) then
		otvet1 = MsgBox ("Установка сертификатов завершена, однако обнаружена старая версия СКЗИ КриптоПро - " & DiRegedit & " (либо СКЗИ КриптоПро не установлено). Перед началом работы с удостоверяющем центром *********, пожалуйста, установите новую версию: http://cr.**********.ru/32.exe. Установка проста, номер лицензи не требуется." & vbCrLf & "Скачать актуальную версию СКЗИ КриптоПро сейчас?",4)
		If otvet1 = 6 then
			WshShell.Run "explorer /e,/root,""http://cr.***************.ru/32.exe"""
			If Err.Number <> 0 Then
				LogFile.write vbCrLf  & "Ошибка скрипта № 3, ошибка системы № " & Err.Number & " " & Err.Description
				Err.Clear
				MsgBox "Ошибка установки № 3, ошибка системы № " & Err.Number & " " & Err.Description
			End if
		else
			MsgBox "Установка сертификатов завершена, однако обнаружена старая версия СКЗИ КриптоПро. Работа с удостоверяющем центром *************** невозможна!", 64
		End if
		mesNo = 1
	End if
	' читаем версию КриптоПро (конец)

	if mesNo = 0 then MsgBox "Установка сертификатов завершена"

Else
	MsgBox "Установка сертификатов отменена", 64
End If
Offline norn  
#7 Оставлено : 12 сентября 2014 г. 8:11:42(UTC)
norn

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.11.2009(UTC)
Сообщений: 86
Откуда: Регионы...

Поблагодарили: 2 раз в 2 постах
Рядом со скрипто необходимо положить файл: CertMgr.exe (http://msdn.microsoft.com/ru-ru/library/e78byta0%28v=vs.110%29.aspx)
Считыватель "Реест" удаляется строкой в файле oids.reg:
[HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion\AppPath\reg.dll]
@=" "
- грубо, но эффективно =)

Отредактировано пользователем 12 сентября 2014 г. 8:12:53(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.