diff options
author | Matthew Grooms <mgrooms@pfsense.org> | 2008-09-03 03:53:11 +0000 |
---|---|---|
committer | Matthew Grooms <mgrooms@pfsense.org> | 2008-09-03 03:53:11 +0000 |
commit | 93823b10147aa446945ed4b8ddef40cb56c96479 (patch) | |
tree | 8cf1074d7721e6f66ed9f72bb740b49f9f46cb0a /usr/local/www | |
parent | 7da118047ac7a450227b25f2b5cb467b647585ea (diff) | |
download | pfsense-93823b10147aa446945ed4b8ddef40cb56c96479.zip pfsense-93823b10147aa446945ed4b8ddef40cb56c96479.tar.gz |
Add options to export ca, certificate and user certificate data from the
webui.
Diffstat (limited to 'usr/local/www')
-rw-r--r-- | usr/local/www/system_camanager.php | 21 | ||||
-rw-r--r-- | usr/local/www/system_certmanager.php | 21 | ||||
-rw-r--r-- | usr/local/www/system_usermanager.php | 48 |
3 files changed, 89 insertions, 1 deletions
diff --git a/usr/local/www/system_camanager.php b/usr/local/www/system_camanager.php index dff286d..68b05ef 100644 --- a/usr/local/www/system_camanager.php +++ b/usr/local/www/system_camanager.php @@ -88,6 +88,24 @@ if ($act == "new") { $pconfig['dn_commonname'] = "internal-ca"; } +if ($act == "exp") { + + if (!$a_ca[$id]) { + pfSenseHeader("system_camanager.php"); + exit; + } + + $exp_name = urlencode("{$a_ca[$id]['name']}.crt"); + $exp_data = base64_decode($a_ca[$id]['crt']); + $exp_size = strlen($exp_data); + + header("Content-Type: application/octet-stream"); + header("Content-Disposition: attachment; filename={$exp_name}"); + header("Content-Length: $exp_size"); + echo $exp_data; + exit; +} + if ($_POST) { unset($input_errors); @@ -412,6 +430,9 @@ function method_change() { <td class="listr"><?=$certcount;?> </td> <td class="listr"><?=$subj;?> </td> <td valign="middle" nowrap class="list"> + <a href="system_camanager.php?act=exp&id=<?=$i;?>")"> + <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export ca" alt="export ca" width="17" height="17" border="0" /> + </a> <a href="system_camanager.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate Authority and all associated Certificates?");?>')"> <img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="delete ca" alt="delete ca" width="17" height="17" border="0" /> </a> diff --git a/usr/local/www/system_certmanager.php b/usr/local/www/system_certmanager.php index 7ca0ff4..4903c50 100644 --- a/usr/local/www/system_certmanager.php +++ b/usr/local/www/system_certmanager.php @@ -88,6 +88,24 @@ if ($act == "new") { $pconfig['lifetime'] = "365"; } +if ($act == "exp") { + + if (!$a_cert[$id]) { + pfSenseHeader("system_certmanager.php"); + exit; + } + + $exp_name = urlencode("{$a_cert[$id]['name']}.crt"); + $exp_data = base64_decode($a_cert[$id]['crt']); + $exp_size = strlen($exp_data); + + header("Content-Type: application/octet-stream"); + header("Content-Disposition: attachment; filename={$exp_name}"); + header("Content-Length: $exp_size"); + echo $exp_data; + exit; +} + if ($act == "csr") { if (!$a_cert[$id]) { @@ -698,6 +716,9 @@ function internalca_change() { <td class="listr"><?=$caname;?> </td> <td class="listr"><?=$subj;?> </td> <td valign="middle" nowrap class="list"> + <a href="system_certmanager.php?act=exp&id=<?=$i;?>")"> + <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export cert" alt="export ca" width="17" height="17" border="0" /> + </a> <a href="system_certmanager.php?act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this Certificate?");?>')"> <img src="/themes/<?= $g['theme'];?>/images/icons/icon_x.gif" title="delete cert" alt="delete cert" width="17" height="17" border="0" /> </a> diff --git a/usr/local/www/system_usermanager.php b/usr/local/www/system_usermanager.php index 665df34..4ee8bd0 100644 --- a/usr/local/www/system_usermanager.php +++ b/usr/local/www/system_usermanager.php @@ -90,6 +90,46 @@ if (isAllowedPage("system_usermanager")) { gettext("successfully deleted")."<br/>"; } + if ($_GET['act'] == "expcert") { + + if (!$a_user[$id]) { + pfSenseHeader("system_usermanager.php"); + exit; + } + + $cert =& $a_user[$id]['cert'][$_GET['certid']]; + + $exp_name = urlencode("{$a_user[$id]['name']}-{$cert['name']}.crt"); + $exp_data = base64_decode($cert['crt']); + $exp_size = strlen($exp_data); + + header("Content-Type: application/octet-stream"); + header("Content-Disposition: attachment; filename={$exp_name}"); + header("Content-Length: $exp_size"); + echo $exp_data; + exit; + } + + if ($_GET['act'] == "expckey") { + + if (!$a_user[$id]) { + pfSenseHeader("system_usermanager.php"); + exit; + } + + $cert =& $a_user[$id]['cert'][$_GET['certid']]; + + $exp_name = urlencode("{$a_user[$id]['name']}-{$cert['name']}.key"); + $exp_data = base64_decode($cert['prv']); + $exp_size = strlen($exp_data); + + header("Content-Type: application/octet-stream"); + header("Content-Disposition: attachment; filename={$exp_name}"); + header("Content-Length: $exp_size"); + echo $exp_data; + exit; + } + if ($_GET['act'] == "delcert") { if (!$a_user[$id]) { @@ -484,8 +524,14 @@ function presubmit() { <?=htmlspecialchars($ca['name']);?> </td> <td valign="middle" nowrap class="list"> + <a href="system_usermanager.php?act=expckey&id=<?=$id;?>&certid=<?=$i;?>"> + <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export private key" alt="export private key" width="17" height="17" border="0" /> + </a> + <a href="system_usermanager.php?act=expcert&id=<?=$id;?>&certid=<?=$i;?>"> + <img src="/themes/<?= $g['theme'];?>/images/icons/icon_down.gif" title="export cert" alt="export cert" width="17" height="17" border="0" /> + </a> <a href="system_usermanager.php?act=delcert&id=<?=$id?>&certid=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this certificate?");?>')"> - <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="" /> + <img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" width="17" height="17" border="0" alt="delete cert" /> </a> </td> </tr> |