Project

General

Profile

Bug #3733 » certmanager_san_wildcard_hostname.patch

Daniel Schultheis, 06/11/2015 08:54 AM

View differences:

etc/inc/util.inc
}
}
/* returns true if $hostname is a valid hostname, with or without being a fully-qualified domain name or a wildcard hostname. */
function is_wildcard_hostname($hostname) {
if (!is_string($hostname)) {
return false;
}
if (is_wildcard_domain($hostname)) {
if ((substr_count($hostname, ".") == 1) && ($hostname[strlen($hostname)-1] == ".")) {
/* Only a single dot at the end like "test." - hosts cannot be directly in the root domain. */
return false;
} else {
return true;
}
} else {
return false;
}
}
/* returns true if $domain is a valid domain name */
function is_domain($domain) {
if (!is_string($domain)) {
......
}
}
/* returns true if $domain is a valid domain name with or without wildcard. */
function is_wildcard_domain($domain) {
if (!is_string($domain)) {
return false;
}
if (preg_match('/^(?:(?:[a-z_0-9\*]|[a-z_0-9][a-z_0-9\-]*[a-z_0-9])\.)*(?:[a-z_0-9]|[a-z_0-9][a-z_0-9\-]*[a-z_0-9\.])$/i', $domain)) {
return true;
} else {
return false;
}
}
/* returns true if $macaddr is a valid MAC address */
function is_macaddr($macaddr, $partial=false) {
$repeat = ($partial) ? '1,5' : '5';
usr/local/www/system_certmanager.php
foreach ($altnames as $idx => $altname) {
switch ($altname['type']) {
case "DNS":
if (!is_hostname($altname['value'])) {
if (!is_wildcard_hostname($altname['value'])) {
array_push($input_errors, "DNS subjectAltName values must be valid hostnames or FQDNs");
}
break;
(1-1/3)