Мы используем формы InfoPath 2007 на рабочих станциях в качестве формы ввода для медицинского пакета EMR, который разработчик написал самостоятельно, пользователь хотел, чтобы форма выглядела красиво и имела возможность печатать именно так, как это было на экране, так что это было решение, которое придумал разработчик. Формы являются частью приложения Windows и открываются в нашем приложении с помощью средства просмотра InfoPath 2007 .Net Control.
Мы использовали самоподписанный сертификат и вставляли его в хранилище сертификатов Trusted Publisher при запуске приложения, чтобы мы могли обновить приложение с помощью самораспаковывающегося zip-файла, однако мы усиливаем безопасность на наших машинах на работе и на практике. разрешение приложению управлять сертификатами больше не будет работать, поскольку они блокируют права пользователя, также, на мой взгляд, это плохая практика. Было решено отказаться от этой практики и использовать сертификат, развернутый нашим промежуточным центром сертификации домена, и использовать групповую политику для развертывания сертификатов на пользовательских машинах.
У меня есть подписанная форма InfoPath 2007 с использованием сертификата подписи кода, выданного центром сертификации домена, с использованием алгоритма подписи sha256RSA и хэша sha256. Сертификат содержит закрытый ключ и импортируется в личное хранилище сертификатов разработчика. Мы создаем форму полного доверия InfoPath и подписываем ее на машине разработчика, используя сертификат, упомянутый в предыдущем предложении. Затем мы экспортировали двоичный файл .cer сертификата и развернули этот сертификат с помощью групповой политики на всех пользовательских машинах в нашем организационном подразделении в хранилище сертификатов доверенного издателя локального компьютера. Чтобы протестировать часть подписи, мы щелкаем файл InfoPath .xsn вне среды приложения, чтобы запустить форму в собственном InfoPath 2007. Если мы получаем сообщение об ошибке, что форма не может проверить подпись, мы знаем, что она не будет работать в нашем приложении, поскольку Форма не может отображаться элементом управления .NET средства просмотра Microsoft InfoPath. Это как если бы форма InfoPath не могла распознать сертификат, установленный в хранилище сертификатов. Я проверяю хранилище сертификатов и вижу сертификат, однако я не вижу никаких записей в реестре, где я ожидал бы, что они будут жить:
HKLM \ Software \ Microsoft \ SystemCertificates \ TrustedPublisher
Я не понимаю, почему ничего из этого не работает.
Кто-нибудь знает, почему сертификат не распознается InfoPath. Может ли InfoPath 2007 использовать сертификаты, подписанные и хешированные sha256?