(я переписал свой ответ после замечаний Дэвида Хеффернэн в.)
1. Обход
Выключение "Проверка на сервере certificate revocation" в "Internet Options \ Advanced \ Security" устранили страницу ошибки сертификата в TWebBrowser
. Обратите внимание, что отключение проверки отзыва открывает дыру в безопасности (спасибо Дэвиду Хеффернану за то, что он подчеркивает это в своих комментариях).
2. Разница между Windows XP и 7
различное поведение было связано с этой this option is turned off on Windows XP by default, но на Windows 7 он включен. Странно, что этот параметр безопасности обрабатывается по-разному в разных версиях ОС. Windows XP должна была быть исправлена, чтобы включить этот параметр по умолчанию.
3. Проблема с сертификатом
Когда проверка отзыва включена, IE сообщает, что никаких проблем с сертификатом сайта и каждого сертификата в цепочке сертификатов не в порядке. Это вводит в заблуждение, потому что, если включен также элемент управления Internet Explorer , IE отображает предупреждение о сертификате, в котором говорится, что «Internet Explorer не смог связаться с эмитентом, чтобы гарантировать, что сертификат не был отозван».
4. Эффект режиме Silent
Когда проверка отзыва включена, и эмитент не может связаться, TWebBrowser
shows a Security Alert popup с текстом «информация об аннулировании сертификата безопасности для этого сайт недоступен. Вы хотите продолжить? " К сожалению, когда свойство TWebBrowser.Silent
равно True
, запрос подавляется и автоматически выбирается «Нет». В моем случае включен режим «Без звука», потому что я хотел скрыть ошибки JavaScript на странице, поэтому TWebBrowser
подпрыгнул прямо на страницу с ошибкой сертификата и не позволил мне продолжить.
5. Решение
Отверстие безопасности можно избежать, включив проверку отзыва, но в этом случае TWebBrowser.Silent
должен быть False
, и пользователю придется закрыть все всплывающие окна вручную (в появившемся всплывающем окне «Предупреждение безопасности» необходимо нажать «Да»). Поскольку мое приложение автоматически использует сайт (на основе кода, написанного на PascalScript), оно должно закрыть каждое всплывающее окно (эта функция уже реализована для всплывающих подсказок).
Это не похоже на решение. –
@DavidHeffernan Вот почему я использовал двойные кавычки. Нет никаких проблем с сертификатом сайта, он не отменяется. Несмотря на это, выключение проверки проверки отзыва. – kol
Вы ничего не решили. Вы не понимаете, что происходит. Ты только что похоронил свою голову на песке. Теперь, когда вы загружаете страницы с отмененными сертификатами, вы никогда не узнаете об этом. Ваше * решение * сродни отключению вашего антивирусного сканера, потому что произошло сообщение об одном ложном срабатывании. –