Как найти окончательный сертификат CA в действительном сертификате

Поэтому я смотрю 2 веб-сервера, один старый, новый. Старый использует наш старый url, новый, наш новый url, оба из них подписаны внутри.

Сертификат HTTPS скоро истечет на старом, поэтому я проверил, и хотя он остается на нем на 1 месяц, он идентифицируется как недействительный из-за его полномочий по сертификации, который является внутренней машиной.
Тем не менее, новый сервер, имеющий аналогично внутренне подписанный сертификат, показывается как действительный, хотя он подписан другим внутренним органом.

Я изо всех сил пытаюсь понять, почему новый сертификат в порядке, но старый – нет. Либо у нового cert есть какая-то магия, о которой я не знаю (например, конечный родитель в цепочке подписания является одним из хорошо известных сертификатов в моем ЦС, но он не появляется, когда я допрашиваю .crt), или незнакомый (внутренний) родительский .crt в цепочке подписки, был добавлен в ca-сертификаты моего клиента ubuntu.

Каковы команды cli на моем рабочем столе ubuntu или клиенте centos, которые я могу использовать, чтобы узнать? Если причина, по которой работает новый .crt, связана с сертификатом, установленным на моем рабочем столе, как найти, где установлен этот сертификат (и как его копировать на другие компьютеры centos)?

Я попробовал openssl s_client -connect -showcerts чтобы идентифицировать цепочку на обоих серверах, и в итоге они openssl s_client -connect -showcerts полномочия CN, которые являются внутренними. Я загрузил сертификаты и запустил openssl verify -verbose -issuer_checks и я не вижу никаких родительских полномочий, которые я бы узнал. Я использовал то же самое на www.google.com, и я получил знакомого родителя «GeoTrust Global CA», поэтому я склоняюсь к внутреннему родительскому полномочию, добавленному в мои местные сертификаты ca, но как я могу проверить?

CN, который в качестве окончательного авторитета во всех случаях сообщает, не является DNS-именем, поэтому я не могу загрузить этот .crt откуда-то, все, что у меня есть, это то, что находится в новом url .crt, поэтому я могу использовать openssl для поиска сертификата, только с CN (который, предположительно, openssl делает внутренне, чтобы сделать вывод, что он действителен, если кажущийся родитель .crt не находится в моих местных сертификатах ca)?

Изменить: я думаю, что главный ключ был добавлен в мои хром (libnss3). Что необходимо, чтобы добавить один и тот же главный ключ, чтобы он поддерживался чем-то другим, кроме хром (например, php и openssl on cli)

One Solution collect form web for “Как найти окончательный сертификат CA в действительном сертификате”

Если кто-нибудь может придумать лучший ответ, пожалуйста, сделайте это, но лучшее, что я нашел, было следующим: – http://manuals.gfi.com/ru/kerio/connect/content/server-configuration/ssl-certificates/adding- доверенные корневые сертификаты-к-сервер-1605.html

Я нашел на своем рабочем столе Ubuntu, что /usr/share/ca-certificates является основным местом для сертификатов, но тот, который я искал, был в /usr/local/share/ca-certificates . Я нашел его с помощью find -iname "*<NAME>*" и поиска имени, совпадающего с именем родительского хоста в моей цепочке ключей.

Я также обнаружил, что, хотя Chrome на моем рабочем столе признал сертификат действительным, некоторые инструменты cli (включая openssl) этого не сделали. Поэтому я нашел ссылку в наших документах для этой команды, чтобы добавить libnss который, по-видимому, является тем, что хром использует как авторитет

 certutil -d sql:${HOME}/.pki/nssdb/ -A -t "C,," \ -n "<CERTIFICATE NAME>" \ -i /usr/local/share/ca-certificates/<CERTIFICATE>.crt 

Приведенная выше ссылка на gfi включала в себя некоторые полезные сведения об управлении ca-certs на ubuntu / centos. Это материал, который я вырезал для нашей собственной внутренней вики:

Linux (Ubuntu, Debian)

Добавить

  1. Скопируйте свой ЦС в каталог dir /usr/local/share/ca-certificates/
  2. Использовать команду: sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
  3. Обновите хранилище CA: sudo update-ca-certificates

Удалить

  1. Удалите CA.
  2. Обновите хранилище CA: sudo update-ca-certificates --fresh

Linux (CentOs 6)

Добавить

  1. Установите пакет ca-сертификатов: yum install ca-certificates
  2. Включить функцию динамической настройки CA: update-ca-trust force-enable
  3. Добавьте его как новый файл в /etc/pki/ca-trust/source/anchors/ : cp foo.crt /etc/pki/ca-trust/source/anchors/
  4. Использовать команду: update-ca-trust extract

Надеюсь, это спасет кого-то время, которое мне пришлось потратить на поиски.

  • Как конвертировать ssl-шифры в формат curl?
  • Можно ли расшифровать один изолированный сектор dm-crypt (возможно, используя OpenSSL)?
  • Как отобразить данные сертификата TLS сервера в терминале?
  • файл конфигурации: STR_COPY: переменная не имеет значения
  • Непоследовательность серверов SMTP
  • E: Не удается найти пакет libssl-dev при попытке загрузить 32-разрядный OpenSSL на 64-битной системе
  • Linux openssl CN / проверка имени хоста против SSL-сертификата
  • Почему openssl печатает на stderr для успешной команды?
  • Как я могу зашифровать большой файл с помощью OpenSSL с помощью ключей RSA?
  • Как получить двоичные представления строк в Shell?
  • Не удается обновить OpenSSL на Centos 6.4
  • Linux и Unix - лучшая ОС в мире.