mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Service certificate status.
The service details page has been modified to show certificate status using bullets. It will also show the revocation reason, and display the restore button only if the certificate is on hold. The buttons action handlers have been moved into service_usercertificate_load() so they can update the bullets. A test data file for cert-show operation has been added. Other test data files containing certificate info has been updated for consistency. The certificate_confirmation_dialog() has been removed because it's no longer used.
This commit is contained in:
parent
c2a2ffbe69
commit
267e803cdf
@ -53,38 +53,15 @@ function certificate_parse_dn(dn) {
|
||||
return result;
|
||||
}
|
||||
|
||||
function certificate_confirmation_dialog(spec) {
|
||||
var that = {};
|
||||
spec = spec || {};
|
||||
|
||||
var dialog = $('<div/>', {
|
||||
'title': spec.title
|
||||
});
|
||||
|
||||
dialog.append(spec.message);
|
||||
|
||||
that.open = function() {
|
||||
dialog.dialog({
|
||||
modal: true,
|
||||
width: 300,
|
||||
height: 150,
|
||||
buttons: {
|
||||
'Close': function() {
|
||||
dialog.dialog('destroy');
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return that;
|
||||
}
|
||||
|
||||
function certificate_get_dialog(spec) {
|
||||
var that = {};
|
||||
spec = spec || {};
|
||||
|
||||
that.title = spec.title || '';
|
||||
that.usercertificate = spec.usercertificate || '';
|
||||
|
||||
var dialog = $('<div/>', {
|
||||
'title': spec.title
|
||||
'title': that.title
|
||||
});
|
||||
|
||||
var textarea = $('<textarea/>', {
|
||||
@ -94,7 +71,7 @@ function certificate_get_dialog(spec) {
|
||||
|
||||
textarea.val(
|
||||
BEGIN_CERTIFICATE_REQUEST+'\n'+
|
||||
spec.usercertificate+'\n'+
|
||||
that.usercertificate+'\n'+
|
||||
END_CERTIFICATE_REQUEST
|
||||
);
|
||||
|
||||
@ -118,8 +95,11 @@ function certificate_revoke_dialog(spec) {
|
||||
var that = {};
|
||||
spec = spec || {};
|
||||
|
||||
that.title = spec.title || '';
|
||||
that.revoke = spec.revoke;
|
||||
|
||||
var dialog = $('<div/>', {
|
||||
'title': spec.title
|
||||
'title': that.title
|
||||
});
|
||||
|
||||
var table = $('<table/>').appendTo(dialog);
|
||||
@ -160,8 +140,8 @@ function certificate_revoke_dialog(spec) {
|
||||
'Revoke': function() {
|
||||
var values = {};
|
||||
values['reason'] = select.val();
|
||||
if (spec.revoke) {
|
||||
spec.revoke(values);
|
||||
if (that.revoke) {
|
||||
that.revoke(values);
|
||||
}
|
||||
dialog.dialog('destroy');
|
||||
},
|
||||
@ -179,8 +159,11 @@ function certificate_restore_dialog(spec) {
|
||||
var that = {};
|
||||
spec = spec || {};
|
||||
|
||||
that.title = spec.title || '';
|
||||
that.restore = spec.restore;
|
||||
|
||||
var dialog = $('<div/>', {
|
||||
'title': spec.title
|
||||
'title': that.title
|
||||
});
|
||||
|
||||
dialog.append(
|
||||
@ -195,8 +178,8 @@ function certificate_restore_dialog(spec) {
|
||||
buttons: {
|
||||
'Restore': function() {
|
||||
var values = {};
|
||||
if (spec.restore) {
|
||||
spec.restore(values);
|
||||
if (that.restore) {
|
||||
that.restore(values);
|
||||
}
|
||||
dialog.dialog('destroy');
|
||||
},
|
||||
@ -214,11 +197,17 @@ function certificate_view_dialog(spec) {
|
||||
var that = {};
|
||||
spec = spec || {};
|
||||
|
||||
that.title = spec.title || '';
|
||||
that.subject = certificate_parse_dn(spec.subject);
|
||||
that.serial_number = spec.serial_number || '';
|
||||
that.issuer = certificate_parse_dn(spec.issuer);
|
||||
that.issued_on = spec.issued_on || '';
|
||||
that.expires_on = spec.expires_on || '';
|
||||
that.md5_fingerprint = spec.md5_fingerprint || '';
|
||||
that.sha1_fingerprint = spec.sha1_fingerprint || '';
|
||||
|
||||
var dialog = $('<div/>', {
|
||||
'title': spec.title
|
||||
'title': that.title
|
||||
});
|
||||
|
||||
var table = $('<table/>').appendTo(dialog);
|
||||
@ -250,7 +239,7 @@ function certificate_view_dialog(spec) {
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
$('<td>Serial Number:</td>').appendTo(tr);
|
||||
$('<td/>', {
|
||||
'html': spec.serial_number
|
||||
'html': that.serial_number
|
||||
}).appendTo(tr);
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
@ -286,13 +275,13 @@ function certificate_view_dialog(spec) {
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
$('<td>Issued On:</td>').appendTo(tr);
|
||||
$('<td/>', {
|
||||
'html': spec.issued_on
|
||||
'html': that.issued_on
|
||||
}).appendTo(tr);
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
$('<td>Expires On:</td>').appendTo(tr);
|
||||
$('<td/>', {
|
||||
'html': spec.expires_on
|
||||
'html': that.expires_on
|
||||
}).appendTo(tr);
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
@ -304,13 +293,13 @@ function certificate_view_dialog(spec) {
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
$('<td>SHA1 Fingerprint:</td>').appendTo(tr);
|
||||
$('<td/>', {
|
||||
'html': spec.sha1_fingerprint
|
||||
'html': that.sha1_fingerprint
|
||||
}).appendTo(tr);
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
$('<td>MD5 Fingerprint:</td>').appendTo(tr);
|
||||
$('<td/>', {
|
||||
'html': spec.md5_fingerprint
|
||||
'html': that.md5_fingerprint
|
||||
}).appendTo(tr);
|
||||
|
||||
that.open = function() {
|
||||
@ -333,8 +322,11 @@ function certificate_request_dialog(spec) {
|
||||
var that = {};
|
||||
spec = spec || {};
|
||||
|
||||
that.title = spec.title || '';
|
||||
that.request = spec.request;
|
||||
|
||||
var dialog = $('<div/>', {
|
||||
'title': spec.title
|
||||
'title': that.title
|
||||
});
|
||||
|
||||
dialog.append('Copy and paste the Base64-encoded CSR below:');
|
||||
@ -365,8 +357,8 @@ function certificate_request_dialog(spec) {
|
||||
$.trim(request)+'\n'+
|
||||
END_CERTIFICATE_REQUEST+'\n';
|
||||
values['request'] = request;
|
||||
if (spec.request) {
|
||||
spec.request(values);
|
||||
if (that.request) {
|
||||
that.request(values);
|
||||
}
|
||||
dialog.dialog('destroy');
|
||||
},
|
||||
|
@ -20,6 +20,10 @@
|
||||
|
||||
/* REQUIRES: ipa.js, details.js, search.js, add.js, entity.js */
|
||||
|
||||
var SERVICE_CERTIFICATE_VALID = 1;
|
||||
var SERVICE_CERTIFICATE_REVOKED = 2;
|
||||
var SERVICE_CERTIFICATE_MISSING = 3;
|
||||
|
||||
ipa_entity_set_search_definition('service', [
|
||||
['krbprincipalname', 'Principal', null],
|
||||
['quick_links', 'Quick Links', ipa_entity_quick_links]
|
||||
@ -88,11 +92,40 @@ function service_provisioning_status_load(container, dt, result) {
|
||||
// skip provisioning_status
|
||||
}
|
||||
|
||||
function service_usercertificate_get(result) {
|
||||
function service_usercertificate_load(container, dt, result) {
|
||||
|
||||
var li1, li2, li3;
|
||||
|
||||
function set_status(status, revocation_reason) {
|
||||
li1.css('list-style-type', status == SERVICE_CERTIFICATE_VALID ? 'disc' : 'circle');
|
||||
li2.css('list-style-type', status == SERVICE_CERTIFICATE_REVOKED ? 'disc' : 'circle');
|
||||
li3.css('list-style-type', status == SERVICE_CERTIFICATE_MISSING ? 'disc' : 'circle');
|
||||
|
||||
$('#revocation_reason').html(revocation_reason ? CRL_REASON[revocation_reason] : '');
|
||||
$('#restore_button').css('visibility', revocation_reason == 6 ? 'visible' : 'hidden')
|
||||
}
|
||||
|
||||
function check_status(serial_number) {
|
||||
ipa_cmd(
|
||||
'cert_show',
|
||||
[serial_number],
|
||||
{ },
|
||||
function(data, text_status, xhr) {
|
||||
var revocation_reason = data.result.result.revocation_reason;
|
||||
if (revocation_reason) {
|
||||
set_status(SERVICE_CERTIFICATE_REVOKED, revocation_reason);
|
||||
} else {
|
||||
set_status(SERVICE_CERTIFICATE_VALID);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function get_certificate(result) {
|
||||
|
||||
var usercertificate = result['usercertificate'];
|
||||
if (!usercertificate) {
|
||||
alert('Service has no usercertificate.');
|
||||
set_status(SERVICE_CERTIFICATE_MISSING);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -107,11 +140,11 @@ function service_usercertificate_get(result) {
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
function service_usercertificate_view(result) {
|
||||
function view_certificate(result) {
|
||||
|
||||
var usercertificate = result['usercertificate'];
|
||||
if (!usercertificate) {
|
||||
alert('Service has no usercertificate.');
|
||||
set_status(SERVICE_CERTIFICATE_MISSING);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -132,11 +165,11 @@ function service_usercertificate_view(result) {
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
function service_usercertificate_revoke(result) {
|
||||
function revoke_certificate(result) {
|
||||
|
||||
var usercertificate = result['usercertificate'];
|
||||
if (!usercertificate) {
|
||||
alert('Service has no usercertificate.');
|
||||
set_status(SERVICE_CERTIFICATE_MISSING);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -157,11 +190,7 @@ function service_usercertificate_revoke(result) {
|
||||
'revocation_reason': reason
|
||||
},
|
||||
function(data, text_status, xhr) {
|
||||
var dialog = certificate_confirmation_dialog({
|
||||
title: 'Success',
|
||||
message: 'Certificate has been revoked successfully.'
|
||||
});
|
||||
dialog.open();
|
||||
check_status(serial_number);
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -170,11 +199,11 @@ function service_usercertificate_revoke(result) {
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
function service_usercertificate_restore(result) {
|
||||
function restore_certificate(result) {
|
||||
|
||||
var usercertificate = result['usercertificate'];
|
||||
if (!usercertificate) {
|
||||
alert('Service has no usercertificate.');
|
||||
set_status(SERVICE_CERTIFICATE_MISSING);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -191,11 +220,7 @@ function service_usercertificate_restore(result) {
|
||||
[serial_number],
|
||||
{ },
|
||||
function(data, text_status, xhr) {
|
||||
var dialog = certificate_confirmation_dialog({
|
||||
title: 'Success',
|
||||
message: 'Certificate has been restored successfully.'
|
||||
});
|
||||
dialog.open();
|
||||
check_status(serial_number);
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -204,7 +229,7 @@ function service_usercertificate_restore(result) {
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
function service_usercertificate_request(result) {
|
||||
function request_certificate(result) {
|
||||
|
||||
var krbprincipalname = result['krbprincipalname'][0];
|
||||
var service_name = krbprincipalname.replace(/@.*$/, '');
|
||||
@ -219,6 +244,9 @@ function service_usercertificate_request(result) {
|
||||
[request],
|
||||
{
|
||||
'principal': krbprincipalname
|
||||
},
|
||||
function(data, text_status, xhr) {
|
||||
check_status(data.result.result.serial_number);
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -227,8 +255,6 @@ function service_usercertificate_request(result) {
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
function service_usercertificate_load(container, dt, result) {
|
||||
|
||||
var krbprincipalname = result['krbprincipalname'][0];
|
||||
|
||||
var table = $('<table/>');
|
||||
@ -236,40 +262,45 @@ function service_usercertificate_load(container, dt, result) {
|
||||
var tr = $('<tr/>').appendTo(table);
|
||||
|
||||
var td = $('<td/>').appendTo(tr);
|
||||
li1 = $('<li/>', {
|
||||
style: 'color: green;'
|
||||
}).appendTo(td);
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
td.append('Valid Certificate Present:');
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
$('<input/>', {
|
||||
type: 'button',
|
||||
value: 'Get',
|
||||
click: function() {
|
||||
'type': 'button',
|
||||
'value': 'Get',
|
||||
'click': function() {
|
||||
ipa_cmd('service_show', [krbprincipalname], {},
|
||||
function(data, text_status, xhr) {
|
||||
service_usercertificate_get(data.result.result);
|
||||
get_certificate(data.result.result);
|
||||
}
|
||||
);
|
||||
}
|
||||
}).appendTo(td);
|
||||
|
||||
$('<input/>', {
|
||||
type: 'button',
|
||||
value: 'Revoke',
|
||||
click: function() {
|
||||
'type': 'button',
|
||||
'value': 'Revoke',
|
||||
'click': function() {
|
||||
ipa_cmd('service_show', [krbprincipalname], {},
|
||||
function(data, text_status, xhr) {
|
||||
service_usercertificate_revoke(data.result.result);
|
||||
revoke_certificate(data.result.result);
|
||||
}
|
||||
);
|
||||
}
|
||||
}).appendTo(td);
|
||||
|
||||
$('<input/>', {
|
||||
type: 'button',
|
||||
value: 'View',
|
||||
click: function() {
|
||||
'type': 'button',
|
||||
'value': 'View',
|
||||
'click': function() {
|
||||
ipa_cmd('service_show', [krbprincipalname], {},
|
||||
function(data, text_status, xhr) {
|
||||
service_usercertificate_view(data.result.result);
|
||||
view_certificate(data.result.result);
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -277,17 +308,28 @@ function service_usercertificate_load(container, dt, result) {
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
li2 = $('<li/>', {
|
||||
'style': 'color: red;'
|
||||
}).appendTo(td);
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
td.append('Certificate Revoked:');
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
td.append($('<span/>', {
|
||||
'id': 'revocation_reason'
|
||||
}));
|
||||
td.append(' ');
|
||||
|
||||
$('<input/>', {
|
||||
type: 'button',
|
||||
value: 'Restore',
|
||||
click: function() {
|
||||
'id': 'restore_button',
|
||||
'type': 'button',
|
||||
'value': 'Restore',
|
||||
'click': function() {
|
||||
ipa_cmd('service_show', [krbprincipalname], {},
|
||||
function(data, text_status, xhr) {
|
||||
service_usercertificate_restore(data.result.result);
|
||||
restore_certificate(data.result.result);
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -295,18 +337,30 @@ function service_usercertificate_load(container, dt, result) {
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
li3 = $('<li/>', {
|
||||
'style': 'color: goldenrod;'
|
||||
}).appendTo(td);
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
td.append('No Valid Certificate:');
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
$('<input/>', {
|
||||
type: 'button',
|
||||
value: 'New Certificate',
|
||||
click: function() {
|
||||
service_usercertificate_request(result);
|
||||
'type': 'button',
|
||||
'value': 'New Certificate',
|
||||
'click': function() {
|
||||
request_certificate(result);
|
||||
}
|
||||
}).appendTo(td);
|
||||
|
||||
var dd = ipa_create_first_dd(this.name, table);
|
||||
dt.after(dd);
|
||||
|
||||
var usercertificate = result['usercertificate'];
|
||||
if (usercertificate) {
|
||||
check_status(result.serial_number);
|
||||
} else {
|
||||
set_status(SERVICE_CERTIFICATE_MISSING);
|
||||
}
|
||||
}
|
||||
|
@ -3,15 +3,15 @@
|
||||
"id": 0,
|
||||
"result": {
|
||||
"result": {
|
||||
"certificate": "MIIC2DCCAcCgAwIBAgIBFTANBgkqhkiG9w0BAQsFADAuMQwwCgYDVQQKEwNJUEExHjAcBgNVBAMTFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMDEwMTUwNTE3MzZaFw0xMTA0MTMwNTE3MzZaMCgxDDAKBgNVBAoTA0lQQTEYMBYGA1UEAxMPZGV2LmV4YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDk18o/IK1Qe0Y/eURWsIHcJ/TmGdNy1h2fhzGIILtv8Qgq1K3U4T9eGAZVambpo1SUnJY+k+AAo43TyavSU05se4DIsw00XrrOyD5UunwsW+b+cIUCWbBJLFy9ODsVDJduXrj0RZGHEyta3VuO/gJBtdI9anjVvgegqXUBkenjPwIDAQABo4GKMIGHMB8GA1UdIwQYMBaAFCv9XyGV5ijtHriYMcECVmnNiMMAMD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDovL2Rldi5leGFtcGxlLmNvbTo5MTgwL2NhL29jc3AwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4IBAQB/OtoBZUYuGD0KZWpNdzIVdCxCTzZAetHA+o97cZCdufiBckZfZ9LEkQdL2MWvcnLlXOnRnQO/BnEAAtYVe4dpmizuzPn1+JTmK9+7q2HhQhXuU2NcsWutgYySNme7eNmfqi8uDoQ8FOPX4LvxLQDyKjkOogs6cEMZePMK8RE60ulHKdYfI23rRNtIExOl1zLJXkpExuXNq1flshyaLLu84B9zwE5FhSD/XAjPyAqYP97IPIkUfWpMyEs3N12JVCVNm0/753CDI946RPnyPpsULZufBV/8sdhDnULHfPIUMPgdOYemm9cYTP/V1uhwwCnFemhSAXSM/g6e9Xm4hH7s",
|
||||
"certificate": "MIICAjCCAWugAwIBAgICBAswDQYJKoZIhvcNAQEFBQAwKTEnMCUGA1UEAxMeSVBBIFRlc3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMTAwNzIzMzk0NFoXDTE1MTAwNzIzMzk0NFowKDEMMAoGA1UECgwDSVBBMRgwFgYDVQQDDA9kZXYuZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOTXyj8grVB7Rj95RFawgdwn9OYZ03LWHZ+HMYggu2/xCCrUrdThP14YBlVqZumjVJSclj6T4ACjjdPJq9JTTmx7gMizDTReus7IPlS6fCxb5v5whQJZsEksXL04OxUMl25euPRFkYcTK1rdW47+AkG10j1qeNW+B6CpdQGR6eM/AgMBAAGjOjA4MBEGCWCGSAGG+EIBAQQEAwIGQDATBgNVHSUEDDAKBggrBgEFBQcDATAOBgNVHQ8BAf8EBAMCBPAwDQYJKoZIhvcNAQEFBQADgYEASIhq723VL5xP0q51MYXFlGU1boD7pPD1pIQspD/MjCIEupcbH2kAo4wf+EiKsXR0rs+WZkaSgvFqaM4OQ2kWSFTiqmFXFDBEi6EFr68yLg7IpQpNTzVBXERd8B4GwNL9wrRw60jPXlUK29DPBsdGq8fDgX18l39wKkWXv7p1to4=",
|
||||
"issuer": "CN=Certificate Authority,O=IPA",
|
||||
"md5_fingerprint": "87:ca:33:52:e3:07:4c:82:76:24:8d:53:ba:da:b3:fe",
|
||||
"request_id": "50",
|
||||
"md5_fingerprint": "08:86:a9:f9:87:af:0d:d7:42:01:e0:5f:12:9b:32:7f",
|
||||
"request_id": "1",
|
||||
"serial_number": "1",
|
||||
"sha1_fingerprint": "9f:fc:d3:e2:3b:f0:c1:1d:fc:5c:09:fa:f4:10:de:7b:b2:25:ae:7c",
|
||||
"sha1_fingerprint": "b8:4c:4b:79:4f:13:03:79:47:08:fa:6b:52:63:3d:f9:15:8e:7e:dc",
|
||||
"subject": "CN=dev.example.com,O=IPA",
|
||||
"valid_not_after": "Wed Apr 13 05:17:36 2011 UTC",
|
||||
"valid_not_before": "Fri Oct 15 05:17:36 2010 UTC"
|
||||
"valid_not_after": "Tue Oct 13 01:59:32 2015 UTC",
|
||||
"valid_not_before": "Wed Oct 13 01:59:32 2010 UTC"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
17
install/static/test/data/cert_show.json
Normal file
17
install/static/test/data/cert_show.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"error": null,
|
||||
"id": 0,
|
||||
"result": {
|
||||
"result": {
|
||||
"certificate": "MIICAjCCAWugAwIBAgICBAswDQYJKoZIhvcNAQEFBQAwKTEnMCUGA1UEAxMeSVBBIFRlc3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMTAwNzIzMzk0NFoXDTE1MTAwNzIzMzk0NFowKDEMMAoGA1UECgwDSVBBMRgwFgYDVQQDDA9kZXYuZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOTXyj8grVB7Rj95RFawgdwn9OYZ03LWHZ+HMYggu2/xCCrUrdThP14YBlVqZumjVJSclj6T4ACjjdPJq9JTTmx7gMizDTReus7IPlS6fCxb5v5whQJZsEksXL04OxUMl25euPRFkYcTK1rdW47+AkG10j1qeNW+B6CpdQGR6eM/AgMBAAGjOjA4MBEGCWCGSAGG+EIBAQQEAwIGQDATBgNVHSUEDDAKBggrBgEFBQcDATAOBgNVHQ8BAf8EBAMCBPAwDQYJKoZIhvcNAQEFBQADgYEASIhq723VL5xP0q51MYXFlGU1boD7pPD1pIQspD/MjCIEupcbH2kAo4wf+EiKsXR0rs+WZkaSgvFqaM4OQ2kWSFTiqmFXFDBEi6EFr68yLg7IpQpNTzVBXERd8B4GwNL9wrRw60jPXlUK29DPBsdGq8fDgX18l39wKkWXv7p1to4=",
|
||||
"issuer": "CN=Certificate Authority,O=IPA",
|
||||
"md5_fingerprint": "08:86:a9:f9:87:af:0d:d7:42:01:e0:5f:12:9b:32:7f",
|
||||
"revocation_reason": 6,
|
||||
"serial_number": "1",
|
||||
"sha1_fingerprint": "b8:4c:4b:79:4f:13:03:79:47:08:fa:6b:52:63:3d:f9:15:8e:7e:dc",
|
||||
"subject": "CN=dev.example.com,O=IPA",
|
||||
"valid_not_after": "Tue Oct 13 01:59:32 2015 UTC",
|
||||
"valid_not_before": "Wed Oct 13 01:59:32 2010 UTC"
|
||||
}
|
||||
}
|
||||
}
|
@ -13,7 +13,7 @@
|
||||
"dev.example.com"
|
||||
],
|
||||
"md5_fingerprint": "08:86:a9:f9:87:af:0d:d7:42:01:e0:5f:12:9b:32:7f",
|
||||
"serial_number": "1052",
|
||||
"serial_number": "1",
|
||||
"sha1_fingerprint": "b8:4c:4b:79:4f:13:03:79:47:08:fa:6b:52:63:3d:f9:15:8e:7e:dc",
|
||||
"subject": "CN=dev.example.com,O=IPA",
|
||||
"usercertificate": [
|
||||
|
Loading…
Reference in New Issue
Block a user