Выражение LINQ с использованием ранее определенной переменной

Это не ответ на Твиттер, но это вопрос, который возникает при поиске этой ошибки. Если ваша система получает эту ошибку при подключении к веб-сайту, который, как представляется, имеет действительный сертификат при просмотре в веб-браузере, это, вероятно, означает, что веб-сайт имеет незавершенную цепочку сертификатов.

Для краткого изложения проблемы: органы сертификации не используют свой корневой сертификат для подписи только какого-либо старого сертификата. Вместо этого они (обычно) подписывают промежуточные сертификаты, которые также имеют установленный флаг центра сертификации (то есть разрешены для подписания сертификатов). Затем, когда вы покупаете сертификат из ЦС, они подписывают ваш CSR с одним из этих промежуточных сертификатов.

В вашем хранилище доверия Java скорее всего есть только Root Cert, а не промежуточные.

Неправильно сконфигурированный сайт может вернуть только свой подписанный сертификат. Проблема: он был подписан с промежуточным сертификатом, который не находится в вашем магазине доверия. Браузеры справятся с этой проблемой, загрузив или используя промежуточный сертификат с кешем; это максимизирует совместимость с сайтом. Однако Java и инструменты, такие как OpenSSL, не будут. И это вызовет ошибку в вопросе.

Вы можете проверить это подозрение, используя Qualys SSL Test . Если вы запустили это на сайте, и он говорит:

Цепочка сертификата этого сервера неполна.

, который подтверждает это. Вы также можете увидеть это, посмотрев пути сертификации и увидев текст Extra Download .

Как это исправить: администратору сервера необходимо настроить веб-сервер для возврата промежуточного сертификаты. Например, для Comodo это файл .ca-bundle пригодится. Например, в конфигурации Apache с mod_ssl вы должны использовать настройку конфигурации SSLCertificateChainFile. Для nginx вам необходимо объединить промежуточные сертификаты и подписанный сертификат и использовать их в конфигурации SSL-сертификата. Вы можете найти больше, выполнив поиск «незавершенной цепи сертификатов» в Интернете.

0
задан Mayron 13 July 2018 в 16:16
поделиться

1 ответ

У VB есть некоторые смешные идеи о синтаксисе запроса LINQ.

Вы можете переключиться на синтаксис лямбда или поместить круглые скобки вокруг переменной в Select:

Dim newList = valueList.Where(Function(value) Integer.TryParse(value, newValue)).Select(Function(value) newValue).ToList()

Dim newList As List(Of Integer) = (
        From value In valueList
        Where Integer.TryParse(value, newValue)
        Select (newValue)).ToList()
2
ответ дан NetMage 17 August 2018 в 12:24
поделиться
  • 1
    Благодаря! Я понятия не имел, что параметры вокруг переменной работают так. – Mayron 16 July 2018 в 07:55
Другие вопросы по тегам:

Похожие вопросы: