Как научить openssl в php под Windows распознавать российские поля в сертификате (ОГРН, ИНН, СНИЛС)? Имеется валидный сертификат. Нужно его распарсить. Используется php функция openssl_x509_parse(). Сертификат парсится, но специфичные для россии OIDы попадают в раздел undefined. Где их можно описать? В openssl.cfg добавлял вот это:[ new_oids ] # Russian pension security number. Numeric string SNILS = 1.2.643.100.3 # Organization number in the state registry (for organizations or individual # businessmen) Numeric string OGRN = 1.2.643.100.1 # Individual insurance number (Numeric String) INN = 1.2.643.3.131.1.1 # cert extension to indicate subject sign tool (value - utf8 string) subjectSignTool=1.2.643.100.111 не помогло
Для того чтобы openssl в php под Windows распознавал российские поля в сертификате, вам необходимо добавить описания этих OID-ов в файл openssl.cnf или openssl.cfg (в зависимости от версии OpenSSL). Однако, добавление их в секцию [ new_oids ] маловероятно поможет, так как эти OID-ы не будут автоматически интерпретироваться при обработке сертификата.
Вместо этого, вам нужно будет создать собственный OID-профиль для OpenSSL и задать в нем описания для российских OID-ов. Это можно сделать следующим образом:
Создайте текстовый файл (например, custom_oid.cnf), в котором опишите ваш собственный OID-профиль:[ my_oid_profile ] SNILS = "SNILS" OGRN = "OGRN" INN = "INN" subjectSignTool = "subjectSignTool"Укажите этот файл в конфигурационном файле OpenSSL (openssl.cnf или openssl.cfg) в секции [ oid_section ]:[ oid_section ] my_oid_profile = C:\path\to\custom_oid.cnfПосле этого перегенерируйте сертификат с использованием вашего собственного OID-профиля. После этого, функция openssl_x509_parse() в php должна правильно распознать российские поля в сертификате.
Пожалуйста, убедитесь, что ваш файл конфигурации OpenSSL корректно указан в инструкции выше и синтаксически правильно описан. После этих действий, вы должны смочь успешно распарсить сертификат с указанными российскими полями.
Для того чтобы openssl в php под Windows распознавал российские поля в сертификате, вам необходимо добавить описания этих OID-ов в файл openssl.cnf или openssl.cfg (в зависимости от версии OpenSSL). Однако, добавление их в секцию [ new_oids ] маловероятно поможет, так как эти OID-ы не будут автоматически интерпретироваться при обработке сертификата.
Вместо этого, вам нужно будет создать собственный OID-профиль для OpenSSL и задать в нем описания для российских OID-ов. Это можно сделать следующим образом:
Создайте текстовый файл (например, custom_oid.cnf), в котором опишите ваш собственный OID-профиль:[ my_oid_profile ]SNILS = "SNILS"
OGRN = "OGRN"
INN = "INN"
subjectSignTool = "subjectSignTool"Укажите этот файл в конфигурационном файле OpenSSL (openssl.cnf или openssl.cfg) в секции [ oid_section ]:[ oid_section ]
my_oid_profile = C:\path\to\custom_oid.cnfПосле этого перегенерируйте сертификат с использованием вашего собственного OID-профиля. После этого, функция openssl_x509_parse() в php должна правильно распознать российские поля в сертификате.
Пожалуйста, убедитесь, что ваш файл конфигурации OpenSSL корректно указан в инструкции выше и синтаксически правильно описан. После этих действий, вы должны смочь успешно распарсить сертификат с указанными российскими полями.