Просмотр SSL-сертификата страницы, которая сразу же перенаправляет на другую

25

Так что я немного погуглил по этому поводу, но похоже, что мой гугл-фу меня не устраивает - извиняюсь, если это тривиальный и уже отвеченный вопрос, я не смог ничего найти по этому поводу

Я пытаюсь диагностировать несоответствие имени хоста SSL-сертификата. Когда я захожу на указанный URL-адрес, он перенаправляет меня на другую страницу с правильным SSL-сертификатом. Однако некоторые клиенты сообщают, что получают ошибку несоответствия имени хоста сертификата SSL. Мое единственное предположение состоит в том, что страница перенаправления имеет неправильный сертификат, и некоторые клиенты позволяют ей скользить, потому что она разрешается с новой страницей, которая имеет правильный сертификат.

(Как и почему проблемы на самом деле не вопрос)

Вопрос:

С внешней стороны (иначе как клиент в мире) - как можно просмотреть сертификат, который был доставлен страницей, которая автоматически перенаправляет на другую страницу?

Роберт Петц
источник
Другим полезным ресурсом является тест SSL-сервера от Qualy's SSL Labs.
Триг

Ответы:

35

Используйте openssl s_client piped для openssl x509 :

$ openssl s_client -connect foo.example.com:443 < /dev/null | openssl x509 -text

(Добавьте -servername foo.example.comк команде s_client, если сервер использует SNI .)

Перенаправление stdin из / dev / null для первого вызова openssl предотвратит зависание в ожидании ввода.

EEAA
источник
2
Вы можете также направить выход на openssl x509 -textна самом деле увидеть , что в CERT сервера и перенаправить ввод исходной opensslкоманды из /dev/nullтак что команда не висит: openssl s_client -connect ... < /dev/null | openssl x509 -text. Найдите поле «Альтернативное имя субъекта X509v3».
Эндрю Хенле
@AndrewHenle Отличное дополнение. Не стесняйтесь редактировать это в моем ответе, если хотите.
EEAA
Работал как шарм - я только ограниченное количество времени проводил с openSSL, но каждый раз, когда мне нужно что-то сделать с ssl, это всегда сводится к этому, ха-ха ... Спасибо за совет!
Роберт Петц
6
Если сервер использует SNI, вы должны добавить -servername foo.example.comк s_clientпараметрам.
Бруно
Я не вижу цепочку доверия в выводе. Если я хочу узнать, доверяют ли веб-сайту VeriSign, LetsEncrypt, ChineseGov или DO_NOT_TRUST_FiddlerRoot, что мне следует искать?
Карл Уолш
7

В Firefox 57, если вы откроете Инструменты разработчика и перейдете на вкладку Сеть:

  1. Убедитесь, что Persist Logsпроверено
  2. Посетите интересующий URL
  3. Нажмите на верхнюю строку (то есть ту, которая соответствует запросу на интересующий вас сервер, что привело к ответу на перенаправление)
  4. Нажмите на Securityвкладку (на полпути вниз, все еще внутри Network)

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

Это работало для меня на сайте, отвечающем перенаправлением 301 на другой сайт HTTPS. (К сожалению, принятый ответ только что дал мне сертификат для конечной страницы назначения.)

mpavey
источник
Спасибо за родной метод Browser. Вы пробовали -servernameвариант с openssl? Это может дать другой результат, даже если это одно и то же имя.
Mwfearnley
@ mwfearnley Нет! С openssl, я просто скопировал и вставил из ответа и сдался после того, как это не сработало :) Спасибо за предложение.
mpavey
1

В качестве альтернативы отдельным программам, упомянутым в других ответах, вы также можете отключить автоматическое перенаправление в вашем браузере.

Вариант сделать это зависит от браузера, вот методы для Firefox и Chrome:

JPA
источник
Не уверен, кто это проголосовал?
Роберт Петц
Да, это именно то, что я хотел, полностью в браузере.
Michael12345,
1
Это не сработало для меня в Chrome. Я вижу 302 в трассировке сети, но не вижу, как проверить сертификат по трассировке сети. Если я нажму на вкладку «Безопасность», Chrome вместо этого покажет мне сертификат с текущей веб-страницы (цель перенаправления).
Карл Уолш
Скорее всего, это связано с тем, что ответы «только по ссылкам» с годами гниют по мере изменения продуктов. Может быть, этот ответ работал до того, как Chrome представил вкладку «Безопасность»?
Карл Уолш
1
@jpa Ссылка, которую вы указали для Chrome, объясняет, как сохранить сетевой журнал после перенаправления, а не как запретить Chrome следовать перенаправлению.
mpavey