Add support for storing client certificate public key

This commit is contained in:
Marcus Hill
2022-01-04 03:32:50 +00:00
parent de883f9ff5
commit ae98902a96
5 changed files with 50 additions and 6 deletions

View File

@@ -4567,11 +4567,22 @@ if(isset($_POST['add_certificate'])){
$domain = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['domain'])));
$issued_by = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['issued_by'])));
$expire = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['expire'])));
$public_key = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['public_key'])));
if (!empty($public_key)) {
// Parse the public certificate key. If successful, set attributes from the certificate
$public_key_obj = openssl_x509_parse($_POST['public_key']);
if ($public_key_obj) {
$expire = date('Y-m-d', $public_key_obj['validTo_time_t']);
$issued_by = strip_tags($public_key_obj['issuer']['O']);
}
}
if(empty($expire)){
$expire = "0000-00-00";
}
mysqli_query($mysqli,"INSERT INTO certificates SET certificate_name = '$name', certificate_domain = '$domain', certificate_issued_by = '$issued_by', certificate_expire = '$expire', certificate_created_at = NOW(), certificate_client_id = $client_id, company_id = $session_company_id");
mysqli_query($mysqli,"INSERT INTO certificates SET certificate_name = '$name', certificate_domain = '$domain', certificate_issued_by = '$issued_by', certificate_expire = '$expire', certificate_created_at = NOW(), certificate_public_key = '$public_key', certificate_client_id = $client_id, company_id = $session_company_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Certificate', log_action = 'Created', log_description = '$name', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");
@@ -4589,11 +4600,22 @@ if(isset($_POST['edit_certificate'])){
$domain = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['domain'])));
$issued_by = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['issued_by'])));
$expire = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['expire'])));
$public_key = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['public_key'])));
if (!empty($public_key)) {
// Parse the public certificate key. If successful, set attributes from the certificate
$public_key_obj = openssl_x509_parse($_POST['public_key']);
if ($public_key_obj) {
$expire = date('Y-m-d', $public_key_obj['validTo_time_t']);
$issued_by = strip_tags($public_key_obj['issuer']['O']);
}
}
if(empty($expire)){
$expire = "0000-00-00";
}
mysqli_query($mysqli,"UPDATE certificates SET certificate_name = '$name', certificate_domain = '$domain', certificate_issued_by = '$issued_by', certificate_expire = '$expire', certificate_updated_at = NOW() WHERE certificate_id = $certificate_id AND company_id = $session_company_id");
mysqli_query($mysqli,"UPDATE certificates SET certificate_name = '$name', certificate_domain = '$domain', certificate_issued_by = '$issued_by', certificate_expire = '$expire', certificate_updated_at = NOW(), certificate_public_key = '$public_key' WHERE certificate_id = $certificate_id AND company_id = $session_company_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Certificate', log_action = 'Modified', log_description = '$name', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");