Как найти окончательный сертификат 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

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

  • Openssl: невозможно загрузить сертификат с измененным портом
  • Преобразование открытого ключа OpenSSH в PKCS # 1 в формате HEX с пробелами и столбцами
  • почему сообщение postfix smtp отключено?
  • Декодирование сообщений ASN.1 с помощью инструмента Openssl asn1parse
  • как обновить версию cURL openssl для PayPal IPN
  • Связанная с SSL «неопределенная ссылка» на libssh2 и libcurl libs при компиляции C на OpenSUSE
  • Где и как я могу получить и установить сертификаты на новую установку OpenSSL?
  • Что означают линии символов при создании файла параметров Diffie Hellmann?
  • Всегда «ошибка записи выходного файла» в openssl
  • Преобразование секретного ключа SSH2 RSA в .pem с помощью openssl
  • OpenSSL Использование для расшифровки строки
  • Linux и Unix - лучшая ОС в мире.