Регулярное выражение, которое может обрабатывать произвольное количество звездочек в слове - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь написать регулярное выражение для проверки CN / SAN x509 и только что узнал, что в теории возможны частичные подстановочные знаки.Как мне построить регулярное выражение для обработки этого, когда я хочу убедиться, что оно захватывает все сертификаты, которые могут быть выданы для example.org?

Мой наивный подход был бы

\**e\**x\**a\**m\**p\**l\**e\**.\**o\**r\**g\**

notвключая возможные субдомены конечно.Это выглядит довольно плохо, и на самом деле раздувает термин дольше, чем хотелось бы.Есть ли более лаконичный способ описать поведение, которое я описал?

Редактировать: Я также только что понял, что мой наивный регулярное выражение даже не поймает, когда кто-то использует звездочку для замены части домена, например exa *.org.

1 Ответ

0 голосов
/ 28 июня 2019

Поскольку я чувствую, что есть вероятность, что это не так легко выразить в кратком регулярном выражении, я решил свой вариант использования в коде Python, который окружает мою предыдущую проверку регулярного выражения.

Вместо отображения регулярного выражения вдомены, появляющиеся в сертификате, я вместо этого преобразую домен сертификата в шаблон регулярных выражений, заменяю буквенные точки экранированными точками, а звездочку - [a-zA-Z0-9-]{0,63}.Затем я сравниваю его со списком доменов, которыми я управляю, и, если регулярное выражение совпадает, я знаю, что сертификат применим к управляемому домену.

Если кому-то удастся выразить это в кратком выражении, я все равно будуинтересно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...