Как и зачем я создал библиотеку проверки сертификатов

Обо мне

Я профессиональный разработчик программного обеспечения

Проблема, которую я хотел решить

Мне пришлось придумать замену библиотеке C, чтобы проверить, действительны ли представленные сертификаты, я выбрал python.

Что такое библиотека проверки сертификатов?

Я создаю небольшую библиотеку для проверки сертификата X509.

Стек технологий

Python3, OpenSSL, регулярное выражение

Процесс создания библиотеки проверки сертификатов

Пришлось искать все существующие библиотеки, которые могли бы облегчить мою работу, я нашел библиотеку python OpenSSL, которая значительно упростила мою задачу. У него были методы для анализа сертификата, доступа к различным полям в сертификате.
Затем мне пришлось добавить недостающую часть, которой на удивление не было в библиотеке OpenSSL, что меня очень шокировало, учитывая важность сертификатов.

Проблемы, с которыми я столкнулся

  1. Я не мог найти прямого способа проверить, является ли значение DNS или нет в python, в конце концов мне пришлось прибегнуть к регулярному выражению для проверки.
  2. Я был удивлен, обнаружив, что в библиотеке OpenSSL нет способа проверить, действителен ли сертификат до даты.

Основные выводы

Мне пришлось сделать эту библиотеку для устаревшей кодовой базы, где нам нужно было удалить зависимость от библиотеки C для той же цели, поэтому ошибки жестко закодированы, я бы хотел, чтобы у меня была возможность элегантно обрабатывать ошибки.

Советы и советы

  1. Всегда документируйте свой код, нельзя отрицать, насколько это важно.

  2. Используйте подсказку типа Python, это очень помогает при просмотре кода.

def get_fqdn(certificate) -> str:
    fqdn_ip = certificate.get_subject().O
    return fqdn_ip

Цель этой функции совершенно ясна, она возвращает строку, просто взглянув на определения, по сравнению с

def get_fqdn(certificate):
    fqdn_ip = certificate.get_subject().O
    return fqdn_ip
  1. Попробуйте написать функции, которые можно компоновать (я один из сторонников парадигмы функционального программирования), таким образом, вы можете повторно использовать эти функции.

Заключительные мысли и следующие шаги

Это был мой первый проект на питоне для работы, я старался писать простой и читаемый код, следил за PEP8. Я доволен тем, что получилось в итоге.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *