Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. TlsHelper.php

function TlsHelper::getCertificateNames

Extract DNS names out of an X.509 certificate.

Parameters

mixed $certificate X.509 certificate:

Return value

array{cn: string, san: string[]}|null

1 call to TlsHelper::getCertificateNames()
TlsHelper::checkCertificateHost in vendor/composer/composer/src/Composer/Util/TlsHelper.php
Match hostname against a certificate.

File

vendor/composer/composer/src/Composer/Util/TlsHelper.php, line 62

Class

TlsHelper
@author Chris Smith <chris@cs278.org>

Namespace

Composer\Util

Code

public static function getCertificateNames($certificate) : ?array {
    if (is_array($certificate)) {
        $info = $certificate;
    }
    elseif (CaBundle::isOpensslParseSafe()) {
        $info = openssl_x509_parse($certificate, false);
    }
    if (!isset($info['subject']['commonName'])) {
        return null;
    }
    $commonName = strtolower($info['subject']['commonName']);
    $subjectAltNames = [];
    if (isset($info['extensions']['subjectAltName'])) {
        $subjectAltNames = Preg::split('{\\s*,\\s*}', $info['extensions']['subjectAltName']);
        $subjectAltNames = array_filter(array_map(static function ($name) : ?string {
            if (0 === strpos($name, 'DNS:')) {
                return strtolower(ltrim(substr($name, 4)));
            }
            return null;
        }, $subjectAltNames), function (?string $san) {
            return $san !== null;
        });
        $subjectAltNames = array_values($subjectAltNames);
    }
    return [
        'cn' => $commonName,
        'san' => $subjectAltNames,
    ];
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal