CRLDP extension taken from NIST PKITS (BasicSelfIssuedCRLSigningKeyCRLCert.crt):

    X509v3 CRL Distribution Points: 

        Full Name:
          DirName: C = US, O = Test Certificates 2011, CN = Self-Issued Cert DP for Basic Self-Issued CRL Signing Key CA

#-----BEGIN EXTENSION-----
SEQUENCE {
  # cRLDistributionPoints
  OBJECT_IDENTIFIER { 2.5.29.31 }
  OCTET_STRING {
    SEQUENCE {
      SEQUENCE {
        [0] {
          [0] {
            [4] {
              SEQUENCE {
                SET {
                  SEQUENCE {
                    # countryName
                    OBJECT_IDENTIFIER { 2.5.4.6 }
                    PrintableString { "US" }
                  }
                }
                SET {
                  SEQUENCE {
                    # organizationName
                    OBJECT_IDENTIFIER { 2.5.4.10 }
                    PrintableString { "Test Certificates 2011" }
                  }
                }
                SET {
                  SEQUENCE {
                    # commonName
                    OBJECT_IDENTIFIER { 2.5.4.3 }
                    PrintableString { "Self-Issued Cert DP for Basic Self-Issued CRL Signing Key CA" }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
#-----END EXTENSION-----

-----BEGIN CERTIFICATE-----
MIIC5jCCAk+gAwIBAgIJAPuwTC6rEJsMMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTQwNDIzMjA1MDQwWhcNMTcwNDIyMjA1MDQwWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYK8imMuRi/03z0K1Zi0WnvfFHvwlYeyK9Na6XJYaUoIDAtB92kWdGMdAQhLciHnAjkXLI6W15OoV3gA/ElRZ1xUpxTMhjP6PyY5wqT5r6y8FxbiiFKKAnHmUcrgfVW28tQ+0rkLGMryRtrukXOgXBv7gcrmU7G1jC2a7WqmeI8QIDAQABo4HdMIHaMB0GA1UdDgQWBBSLddWsywi+Dh9lt/pWvmynddqFrzAfBgNVHSMEGDAWgBSLddWsywi+Dh9lt/pWvmynddqFrzAMBgNVHRMEBTADAQH/MIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxCzAJBgNVBAYTAlVTMR8wHQYDVQQKExZUZXN0IENlcnRpZmljYXRlcyAyMDExMUUwQwYDVQQDEzxTZWxmLUlzc3VlZCBDZXJ0IERQIGZvciBCYXNpYyBTZWxmLUlzc3VlZCBDUkwgU2lnbmluZyBLZXkgQ0EwDQYJKoZIhvcNAQEFBQADgYEAO+h4bZXWPWr3ExksG8KIriKr9I0y9XxxZ88t0RzCw4fi6b6JXOQ0q0iRwj+VritHniV4a0+aEKRy/c/3AgywCgikWuLldH4RHTlgaskfafMuYybcnu9regrhVFeYqnKReAR+H49lTR8LEqycJA+EFBpVLR+78J0JsghcWTJlgCY=
-----END CERTIFICATE-----
