3

Я использую следующую команду curl для загрузки значения из каталога LDAP:

curl  ldap://example.com/CN=ACME-Test-CRL,O=ACME?certificateRevocationList;binary -o crl.crl

Проблема в том, что он записывает в файл crl.crl следующее:

DN: CN=ACME-Test-CRL,O=ACME certificateRevocationList;binary: MIICxzCBsAIBATAN...

Когда я хочу только C64 в кодировке base64, то есть, что начальный MIICxzCBsAIBATAN

В любом случае, нужно ли curl просто записать двоичное значение в кодировке base64 в файл?

1 ответ1

1

При попытке применить CRL моего ЦС Active Directory к команде OpenVPN «crl-verify» возникла та же проблема.

Мое решение заключается в следующем:

curl -o CAName.ldap -u domain\\username:password "ldap://domaincontroller.domain.local/CN=CAName,CN=ServerName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=local?certificateRevocationList" && grep -Po '(?<=certificateRevocationList:: )(.+)' CAName.ldap > CAName.b64 && base64 -d CAName.b64 > CAName.der && openssl crl -inform DER -in CAName.der -outform PEM -out CAName.pem

Объяснение:

curl -o CAName.ldap -u domain\\username:password "ldap://domaincontroller.domain.local/CN=CAName,CN=ServerName,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=local?certificateRevocationList"

Эта команда загружает двоичную часть с DN и зашифрованным содержимым base64 в выходной файл "-o CAName.ldap". Часть "-u" необходима для неанонимного связывания ldap.

grep -Po '(?<=certificateRevocationList:: )(.+)' CAName.ldap > CAName.b64

Это получает часть base64 в новый файл "CAName.b64"

base64 -d CAName.b64 > CAName.der

Расшифровать содержимое base64 (в двоичный файл из запроса ldap) в новый файл "CAName.der"

openssl crl -inform DER -in CAName.der -outform PEM -out CAName.pem

Теперь преобразуйте DER (двоичный файл) в PEM для "crl-verify" OpenVPN.

Вы можете проверить содержимое с помощью openssl:

openssl crl -inform PEM -text -noout -in CAName.pem

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .