|
Подписать e-mail сертификатом, но надо это сделать под NetworkService Account
|
|||
---|---|---|---|
#18+
Коды отрабатывал года 2 назад, под System они работают Есть корректный сертификат для заданного e-mail, он установлен в системе в хранилище LocalMashine Код такой: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Подписываем так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Сертификат находит, но подписать не может, выдает в логе следующее: Код: vbnet 1. 2. 3. 4. 5.
Запускается это дело под NT AUTHORITY\NetworkService NetworkService Account (не моя прихоть, виндовый сервис работает под NetworkService, моя dll-extension соответственно тоже, dll запускает exe как CreateProcess, exe должен отправить мыло, в ф-ции отправки мыла есть опция прозрачной и непрозрачной подписи ) Кто нибудь знает как завести? Мыло (CDO.Message) соответственно уходит, но без подписи. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 05:15 |
|
Подписать e-mail сертификатом, но надо это сделать под NetworkService Account
|
|||
---|---|---|---|
#18+
Вроде разобрался How to assign a certificate to a service? Заработало. mmc-> Добавить или удалить оснастку -> сертификаты -> добавить учетной записи компьютера -> управляет локальным компьютером выбираем из меню сертификата все задачи -> управление закрытыми ключами для NETWORK SERVICE даем доступ на чтение ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 06:17 |
|
Подписать e-mail сертификатом, но надо это сделать под NetworkService Account
|
|||
---|---|---|---|
#18+
А программно как то можно READ-access для закрытых ключей для NETWORK SERVICE, для конкретного сертификата проверить/установить? Я с сертификатами работал только с .Net -кодами типа приведенных в первом посте. Опыт работы с "безопасность" DACL и т.п. (а-ля cacl/icacl) как бы есть немалый, но чисто через API c объектами типа File, Folder, реестр, NT Service но никак не с сертификатами. До кучи еще неплохо бы научиться устанавливать сертификат кодом. Хотя бы переустанавливать. Т.е. например серт. установлен в .CurrentUser, хочется его переустановить в .LocalSystem (мастер экспорта-импорта). (про то что это делать с правами администратора понятно) Т.е. типичная ситуация. Юзер поимел email-сертификат откуда-нибудь с комодо. Браузер его бухнул в CurrentUser. Надо: 1) скопировать его в .LocalSystem (ручками мастер экспорта-импорта) 2) дать Read доступ для закрытых ключей для NETWORK SERVICE (ручками как описал в предыдущем посте) При этих 2-х условиях будет работать под NETWORK SERVICE код авто-подписывания из моего первого поста. Ну, есть подозрение, что программно это как раз сделать можно. Инструкции "сделать ручками", особенно с учетом второго пункта писать замудохаешься. И главное юзер замудохается это делать. Не так чтоб это первостепенная задача, но почему б не решить, если оно возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2017, 14:52 |
|
Подписать e-mail сертификатом, но надо это сделать под NetworkService Account
|
|||
---|---|---|---|
#18+
А программно как то можно READ-access для закрытых ключей для NETWORK SERVICE, для конкретного сертификата проверить/установить? Нарыл вот это: How to set read permission on the private key file of X.509 certificate from .NET С некоторой поправкой на честность кода (вариант что установлено больше одного правила, одно из которых напр. Allow All, а другое Deny Read теоретически возможен, но практически маловероятен)... Проверка: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Установка Read-доступа: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Ну, единственное неудобство, чтоб хотя бы просто узнать есть ли Read доступ, надо запускать код под администратором, иначе Код: vbnet 1.
тупо вылетит с Exeption, нет похоже прав у простого смертного юзера даже знать, кто может пользоваться private keys, а кто нет. Или я чего-то недопонял. А обидно однако, обычно проверку делаем под юзером, а уж настройки менять - "вызываем админа". Причем эту логику и в инсталлятор не запихнешь, потому как завязана на конкретный e-mail адрес и сертификат к нему. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 07:23 |
|
Подписать e-mail сертификатом, но надо это сделать под NetworkService Account
|
|||
---|---|---|---|
#18+
Дмитрий77Т.е. типичная ситуация. Юзер поимел email-сертификат откуда-нибудь с комодо. Браузер его бухнул в CurrentUser. Надо: 1) скопировать его в .LocalSystem (ручками мастер экспорта-импорта) Это вроде просто (asAdmin): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 09:15 |
|
|
start [/forum/topic.php?fid=20&fpage=41&tid=1399790]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
104ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 201ms |
0 / 0 |