Як я можу перевірити SSL-сертифікати в командному рядку?


52

Я намагаюся перевірити / переконатися, що ключ rsa, ca-пакет та сертифікат, що зберігаються тут, добре. Їх не обслуговує веб-сервер. Як я можу їх перевірити?


Подивіться на openssl x509розділ керівництва.
alex

Тут може допомогти посібник з перевірки OpenSSL . Також на цій сторінці є кілька чудових прикладів.
Стефан Ласєвський

Відповіді:


61

Припустимо, що ваші сертифікати у форматі PEM, ви можете:

openssl verify cert.pem

Якщо ваш "ca-bundle" - це файл, що містить додаткові проміжні сертифікати у форматі PEM:

openssl verify -untrusted ca-bundle cert.pem

Якщо ваш openssl не налаштовано для автоматичного використання встановленого набору кореневих сертифікатів (наприклад, в /etc/ssl/certs), ви можете використовувати -CApathабо -CAfileвказати CA.


9
Попередження, команда openssl verify є більш дозвольною, ніж ви могли очікувати! За замовчуванням, окрім перевірки даного файлу CA, він також перевіряє відповідність CA у каталозі certs системи, наприклад / etc / ssl / certs. Щоб запобігти такій поведінці та переконайтеся, що ви перевіряєте ваш конкретний сертифікат CA, наданий CAfile, вам також слід передати параметр -CApath з неіснуючим каталогом, наприклад: openssl verify -verbose -CApath nosuchdir -CAfile cacert.pem сервер .crt
DSimon

2
Ще один застереження: якщо ви використовуєте, -CApath nosuchdirтоді комбінація server.crt і cacert.pem повинна включати кореневий CA; якщо openssl може працювати лише до проміжного CA з цими файлами, тоді він скаржиться.
DSimon

Він говорить, що у файлі такого файлу немає /certs/. це спричинить проблеми? тому що я укладається в ситуації, коли працює мій сервер, http curl працює, але https .. curl отримує помилку. де веб-сайт перестав працювати.
Giorgi Gvimradze

18

Ось один лайнер для підтвердження ланцюжка сертифікатів:

openssl verify -verbose -x509_strict -CAfile ca.pem -CApath nosuchdir cert_chain.pem

Для цього не потрібно встановлювати CA де-небудь.

Докладніше див. На веб-сторінці https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-work .


1
Попередження, параметр -CAfile більш дозволений, ніж ви могли очікувати. Детальніше дивіться у моєму коментарі до прийнятої відповіді.
DSimon

1
@DSimon, я додав -CApath nosuchdirце у відповідь. Дякую.
Вадим

Без проблем, рада допомогти. :-) Одне застереження, яке я вияснив після публікації свого попереднього коментаря: якщо файл, вказаний разом із -CAfileсамим собою, є лише проміжним сертифікатом, тоді openssl поскаржиться. Це правильна поведінка, оскільки verifyвимагає повного ланцюга аж до кореневого центру, але може вводити в оману.
DSimon

2
Моя версія ( OpenSSL 1.1.1 11 Sep 2018) вимагає, щоб аргумент -CApathбув існуючим каталогом.
Джейк Кобб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.