Получить общее название (CN) из сертификата SSL?

Можно вызвать fsck во время начальной загрузки путем передачи fsck.mode=force (auto значение по умолчанию и skip может использоваться для пропуска проверки вообще) как параметр командной строки ядраsystemd v. 213, существует также второй параметр: fsck.repair - управлять как fsck буду иметь дело с грязными файловыми системами при начальной загрузке; возможные значения: preen зафиксировать, что может быть безопасно зафиксировано, yes ответить на да на все вопросы и no значение по умолчанию).


Отметьте это systemd-fsck не знает деталей об определенных файловых системах и просто выполняет средства проверки файловой системы, характерные для каждого типа файловой системы (/sbin/fsck.*).
Теперь, если Ваша файловая система xfs или btrfs это выполнится /sbin/fsck.xfs или /sbin/fsck.btrfs соответственно. Если это, кажется, не работает, возможно, необходимо проверить страницу руководства на fsck.xfs или fsck.btrfs соответственно и исследуйте содержание упомянутых файлов в /sbin.

68
05.03.2017, 06:11
4 ответа

Если Вы имеете openssl установленный можно работать:

openssl x509 -noout -subject -in server.pem
96
27.01.2020, 19:31
  • 1
    Можно извлечь CN из предмета с: openssl x509 -noout -subject -in server.pem | sed -n '/^subject/s/^.*CN=//p' –  Matthew Buckett 04.12.2014, 14:09
  • 2
    я изменил что @MatthewBuckett, сказанный и используемый sed -e 's/^subject.*CN=\([a-zA-Z0-9\.\-]*\).*$/\1/' для получения просто домена как, у, у меня были дополнительные детали после CN. Не супер строгое соответствие для допустимого CN, но в большинстве случаев это работает, Вы могли быть более слабыми и заменить [a-zA-Z0-9\.\-] с [^/] но я не уверен, что это всегда работало бы. –  flungo 04.06.2015, 19:11
  • 3
    Добавить \* к тому, какой @flungo раньше поддерживал подстановочные домены: sed -e 's/^subject.*CN=\([a-zA-Z0-9\.\-\*]*\).*$/\1/' ([^/] работы в моем случае, хотя) –  bryn 13.09.2015, 02:18
  • 4
    sed команды, предложенные выше, не будут работать, если сертификат будет иметь Относительные Отличительные имена (RDNs), указанный после Общего названия (CN), например, OU (OrganizationalUnit) или (страны) C. Одним способом обслужить такие случаи было бы дополнительное sed: openssl x509 -noout -subject -in server.pem | sed 's/^.*CN=//' | sed sed 's/\/.*$//'. –  Ohad Schneider 12.01.2017, 17:45
  • 5
    Более легкий способ разделить CN от другого RDN/ATVs на Подчиненное имя: openssl x509 -noout -subject -nameopt multiline | grep commonName или для значения только | sed -n 's/ *commonName *= //p' –  dave_thompson_085 22.03.2017, 19:03
certtool -i < whatever.pem | egrep "^\s+Subject:"

Заметьте, что это направляет файл к стандартному входу через <, не использование его как аргумент. Без egrep это распечатает целый сертификат, но CN находится в Subject: поле около вершины (остерегаются, существует также значение CN в Issuer: поле).

X.509 Certificate Information:
    Version: 3
    Serial Number (hex): 01
    Issuer: [...] CN=unixandlinux.ex  <- Not this one.
    Validity: ...
    Subject: CN=goldilocks

certtool часть gnutls, если это не установлено просто поиск этого. GnuTLS немного более хорош, чем OpenSSL, IMO.

7
27.01.2020, 19:31
  • 1
    Хороший ответ, +1. Для Mac OS X я должен был использовать gnutls-certtool который был установлен через brew install gnutls –  Mike D 16.01.2018, 18:57

Я нашел приведенный выше ответ и нашел его очень полезным, но я также обнаружил, что синтаксис команды certtool (в Ubuntu Linux, сегодня) заметно отличался от описанного Goldilocks, как и результат. Итак, я подумал, что лучше дополнить этот отличный ответ тем, что может быть «сегодняшней версией».

«i» опция (сейчас?) означает «импорт», согласно man certtool , поэтому правильная команда выглядит как «d» , «display». Итак, эта команда:

certtool d myfoo.crt

(Расширение файла в моем случае просто .crt , а не .pem ... это не имеет значения.)

. .. выводит результат, который, в соответствующей части, выглядит следующим образом:

Common Name     : Foobar

Бесспорно, златовласка была права: certtool вывод намного легче работать, чем openssl в этом случае.

2
27.01.2020, 19:31

Я использовал :openssl x509 -noout -subject -in mycert.crt | awk -F= '{print $NF}'добавить | sed -e 's/^[ \t]*//'Если вы не можете жить с пустым пространством

0
27.01.2020, 19:31

Теги

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