Commit 15482489 authored by Franco Fichtner's avatar Franco Fichtner

etc: remove ssl config and revert weird type changes

Also update the certificate generation process and put in our info.  :)
parent 17c0885c
This diff is collapsed.
<?php <?php
/* $Id$ */
/* /*
Copyright (C) 2008 Shrew Soft Inc Copyright (C) 2008 Shrew Soft Inc
Copyright (C) 2010 Jim Pingle <jimp@pfsense.org> Copyright (C) 2010 Jim Pingle <jimp@pfsense.org>
...@@ -268,7 +268,7 @@ function cert_import(& $cert, $crt_str, $key_str) { ...@@ -268,7 +268,7 @@ function cert_import(& $cert, $crt_str, $key_str) {
return true; return true;
} }
function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $digest_alg = "sha256") { function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $digest_alg = "sha256") {
$ca =& lookup_ca($caref); $ca =& lookup_ca($caref);
if (!$ca) if (!$ca)
...@@ -281,18 +281,6 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $di ...@@ -281,18 +281,6 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $di
if(!$ca_res_key) return false; if(!$ca_res_key) return false;
$ca_serial = ++$ca['serial']; $ca_serial = ++$ca['serial'];
switch ($type) {
case "ca":
$cert_type = "v3_ca";
break;
case "server":
$cert_type = "server";
break;
default:
$cert_type = "usr_cert";
break;
}
// in case of using Subject Alternative Names use other sections (with postfix '_san') // in case of using Subject Alternative Names use other sections (with postfix '_san')
// pass subjectAltName over environment variable 'SAN' // pass subjectAltName over environment variable 'SAN'
if ($dn['subjectAltName']) { if ($dn['subjectAltName']) {
...@@ -302,7 +290,7 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $di ...@@ -302,7 +290,7 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $di
} }
$args = array( $args = array(
"x509_extensions" => $cert_type, "x509_extensions" => "usr_cert",
"digest_alg" => $digest_alg, "digest_alg" => $digest_alg,
"private_key_bits" => (int)$keylen, "private_key_bits" => (int)$keylen,
"private_key_type" => OPENSSL_KEYTYPE_RSA, "private_key_type" => OPENSSL_KEYTYPE_RSA,
...@@ -330,7 +318,6 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $di ...@@ -330,7 +318,6 @@ function cert_create(& $cert, $caref, $keylen, $lifetime, $dn, $type="user", $di
$cert['caref'] = $caref; $cert['caref'] = $caref;
$cert['crt'] = base64_encode($str_crt); $cert['crt'] = base64_encode($str_crt);
$cert['prv'] = base64_encode($str_key); $cert['prv'] = base64_encode($str_key);
$cert['type'] = $type;
return true; return true;
} }
......
...@@ -862,12 +862,17 @@ function system_webgui_start() { ...@@ -862,12 +862,17 @@ function system_webgui_start() {
$cert = array(); $cert = array();
$cert['refid'] = uniqid(); $cert['refid'] = uniqid();
$cert['descr'] = gettext("webConfigurator default"); $cert['descr'] = gettext("webConfigurator default");
mwexec("/usr/bin/openssl genrsa 1024 > {$g['tmp_path']}/ssl.key"); /* mind the gap ->.<- */
mwexec("/usr/bin/openssl req -new -x509 -nodes -sha256 -days 2000 -key {$g['tmp_path']}/ssl.key > {$g['tmp_path']}/ssl.crt"); $openssl_args = ' req -new -newkey rsa:4096 -sha256';
$crt = file_get_contents("{$g['tmp_path']}/ssl.crt"); $openssl_args .= ' -days 365 -nodes -x509';
$key = file_get_contents("{$g['tmp_path']}/ssl.key"); $openssl_args .= ' -subj "/C=NL/ST=Zuid-Holland/L=Middelharnis/O=OPNsense"';
unlink("{$g['tmp_path']}/ssl.key"); $openssl_args .= ' -keyout /tmp/ssl.key';
unlink("{$g['tmp_path']}/ssl.crt"); $openssl_args .= ' -out /tmp/ssl.crt';
mwexec('/usr/bin/openssl' . $openssl_args);
$crt = file_get_contents('/tmp/ssl.crt');
$key = file_get_contents('/tmp/ssl.key');
unlink('/tmp/ssl.key');
unlink('/tmp/ssl.crt');
cert_import($cert, $crt, $key); cert_import($cert, $crt, $key);
$a_cert[] = $cert; $a_cert[] = $cert;
$config['system']['webgui']['ssl-certref'] = $cert['refid']; $config['system']['webgui']['ssl-certref'] = $cert['refid'];
......
<?php <?php
/*
system_certmanager.php
/*
Copyright (C) 2008 Shrew Soft Inc. Copyright (C) 2008 Shrew Soft Inc.
All rights reserved. All rights reserved.
...@@ -47,9 +46,6 @@ $cert_methods = array( ...@@ -47,9 +46,6 @@ $cert_methods = array(
); );
$cert_keylens = array( "512", "1024", "2048", "4096"); $cert_keylens = array( "512", "1024", "2048", "4096");
$cert_types = array( "ca" => "Certificate Authority",
"server" => "Server Certificate",
"user" => "User Certificate");
$altname_types = array("DNS", "IP", "email", "URI"); $altname_types = array("DNS", "IP", "email", "URI");
$openssl_digest_algs = array("sha1", "sha224", "sha256", "sha384", "sha512"); $openssl_digest_algs = array("sha1", "sha224", "sha256", "sha384", "sha512");
...@@ -113,7 +109,6 @@ if ($act == "new") { ...@@ -113,7 +109,6 @@ if ($act == "new") {
$pconfig['digest_alg'] = "sha256"; $pconfig['digest_alg'] = "sha256";
$pconfig['csr_keylen'] = "2048"; $pconfig['csr_keylen'] = "2048";
$pconfig['csr_digest_alg'] = "sha256"; $pconfig['csr_digest_alg'] = "sha256";
$pconfig['type'] = "user";
$pconfig['lifetime'] = "3650"; $pconfig['lifetime'] = "3650";
} }
...@@ -211,13 +206,12 @@ if ($_POST) { ...@@ -211,13 +206,12 @@ if ($_POST) {
if ($pconfig['method'] == "internal") { if ($pconfig['method'] == "internal") {
$reqdfields = explode(" ", $reqdfields = explode(" ",
"descr caref keylen type lifetime dn_country dn_state dn_city ". "descr caref keylen lifetime dn_country dn_state dn_city ".
"dn_organization dn_email dn_commonname"); "dn_organization dn_email dn_commonname");
$reqdfieldsn = array( $reqdfieldsn = array(
gettext("Descriptive name"), gettext("Descriptive name"),
gettext("Certificate authority"), gettext("Certificate authority"),
gettext("Key length"), gettext("Key length"),
gettext("Certificate Type"),
gettext("Lifetime"), gettext("Lifetime"),
gettext("Distinguished name Country Code"), gettext("Distinguished name Country Code"),
gettext("Distinguished name State or Province"), gettext("Distinguished name State or Province"),
...@@ -359,7 +353,7 @@ if ($_POST) { ...@@ -359,7 +353,7 @@ if ($_POST) {
$dn['subjectAltName'] = implode(",", $altnames_tmp); $dn['subjectAltName'] = implode(",", $altnames_tmp);
} }
if (!cert_create($cert, $pconfig['caref'], $pconfig['keylen'], if (!cert_create($cert, $pconfig['caref'], $pconfig['keylen'],
$pconfig['lifetime'], $dn, $pconfig['type'], $pconfig['digest_alg'])){ $pconfig['lifetime'], $dn, $pconfig['digest_alg'])){
while($ssl_err = openssl_error_string()){ while($ssl_err = openssl_error_string()){
$input_errors = array(); $input_errors = array();
array_push($input_errors, "openssl library returns: " . $ssl_err); array_push($input_errors, "openssl library returns: " . $ssl_err);
...@@ -722,23 +716,6 @@ function internalca_change() { ...@@ -722,23 +716,6 @@ function internalca_change() {
<br /><?= gettext("NOTE: It is recommended to use an algorithm stronger than SHA1 when possible.") ?> <br /><?= gettext("NOTE: It is recommended to use an algorithm stronger than SHA1 when possible.") ?>
</td> </td>
</tr> </tr>
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Certificate Type");?></td>
<td width="78%" class="vtable">
<select name='type' class="formselect">
<?php
foreach( $cert_types as $ct => $ctdesc ):
$selected = "";
if ($pconfig['type'] == $ct)
$selected = " selected=\"selected\"";
?>
<option value="<?=$ct;?>"<?=$selected;?>><?=$ctdesc;?></option>
<?php endforeach; ?>
</select>
<br />
<?=gettext("Type of certificate to generate. Used for placing restrictions on the usage of the generated certificate.");?>
</td>
</tr>
<tr> <tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Lifetime");?></td> <td width="22%" valign="top" class="vncellreq"><?=gettext("Lifetime");?></td>
<td width="78%" class="vtable"> <td width="78%" class="vtable">
...@@ -1134,9 +1111,6 @@ function internalca_change() { ...@@ -1134,9 +1111,6 @@ function internalca_change() {
</td> </td>
</tr> </tr>
<tr><td>&nbsp;</td></tr> <tr><td>&nbsp;</td></tr>
<?php if ($cert['type']): ?>
<tr><td colspan="2"><em><?php echo $cert_types[$cert['type']]; ?></em></td></tr>
<?php endif; ?>
<?php if (is_array($purpose)): ?> <?php if (is_array($purpose)): ?>
<tr><td colspan="2"> <tr><td colspan="2">
CA: <?php echo $purpose['ca']; ?>, CA: <?php echo $purpose['ca']; ?>,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment