При попытке применить 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