From 6c6cfec1fa9abb5428cbf3ea5df82c16185758d1 Mon Sep 17 00:00:00 2001 From: alee Date: Fri, 27 Feb 2009 17:29:15 +0000 Subject: Bugzilla 224835, 367171: edit nicknames and sizepanel git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@262 c9f7a03b-bd48-0410-a16d-cbbf54688b0b --- .../src/com/netscape/certsrv/util/HttpInput.java | 6 +++ .../src/com/netscape/cms/servlet/csadmin/Cert.java | 4 ++ .../cms/servlet/csadmin/CertRequestPanel.java | 8 +++- .../netscape/cms/servlet/csadmin/NamePanel.java | 42 +++++++++++++++---- .../netscape/cms/servlet/csadmin/SizePanel.java | 2 + pki/base/ra/doc/CS.cfg | 1 + pki/base/ra/lib/perl/PKI/RA/DonePanel.pm | 2 +- pki/base/ra/lib/perl/PKI/RA/NamePanel.pm | 44 +++++++++++++++----- pki/base/ra/lib/perl/PKI/RA/SizePanel.pm | 8 ++++ pki/base/tps/doc/CS.cfg | 1 + pki/base/tps/lib/perl/PKI/TPS/DonePanel.pm | 2 +- pki/base/tps/lib/perl/PKI/TPS/NamePanel.pm | 47 +++++++++++++++++----- pki/base/tps/lib/perl/PKI/TPS/SizePanel.pm | 7 ++++ pki/dogtag/common-ui/dogtag-pki-common-ui.spec | 4 +- .../shared/admin/console/config/namepanel.vm | 12 +++++- .../shared/admin/console/config/sizepanel.vm | 4 +- pki/dogtag/common/pki-common.spec | 4 +- pki/dogtag/ra-ui/dogtag-pki-ra-ui.spec | 4 +- .../docroot/ra/admin/console/config/namepanel.vm | 6 ++- .../docroot/ra/admin/console/config/sizepanel.vm | 4 +- pki/dogtag/ra/pki-ra.spec | 4 +- pki/dogtag/tps-ui/dogtag-pki-tps-ui.spec | 4 +- .../docroot/tps/admin/console/config/namepanel.vm | 6 ++- .../docroot/tps/admin/console/config/sizepanel.vm | 4 +- pki/dogtag/tps/pki-tps.spec | 6 ++- 25 files changed, 188 insertions(+), 48 deletions(-) diff --git a/pki/base/common/src/com/netscape/certsrv/util/HttpInput.java b/pki/base/common/src/com/netscape/certsrv/util/HttpInput.java index 034cfd6cd..b64ac4622 100644 --- a/pki/base/common/src/com/netscape/certsrv/util/HttpInput.java +++ b/pki/base/common/src/com/netscape/certsrv/util/HttpInput.java @@ -241,6 +241,12 @@ public class HttpInput { return getString(request, name); } + + public static String getNickname(HttpServletRequest request, String name) + throws IOException + { + return getString(request, name); + } public static String getHostname(HttpServletRequest request, String name) throws IOException diff --git a/pki/base/common/src/com/netscape/cms/servlet/csadmin/Cert.java b/pki/base/common/src/com/netscape/cms/servlet/csadmin/Cert.java index 4de73d2da..88b13453f 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/csadmin/Cert.java +++ b/pki/base/common/src/com/netscape/cms/servlet/csadmin/Cert.java @@ -51,6 +51,10 @@ public class Cert { return mEnable; } + public void setNickname(String s) { + mNickname = s; + } + public String getNickname() { return mNickname; } diff --git a/pki/base/common/src/com/netscape/cms/servlet/csadmin/CertRequestPanel.java b/pki/base/common/src/com/netscape/cms/servlet/csadmin/CertRequestPanel.java index 1767bdf84..427a662f3 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/csadmin/CertRequestPanel.java +++ b/pki/base/common/src/com/netscape/cms/servlet/csadmin/CertRequestPanel.java @@ -443,7 +443,9 @@ public class CertRequestPanel extends WizardPanelBase { private boolean findBootstrapServerCert() { IConfigStore cs = CMS.getConfigStore(); try { - String nickname = cs.getString("preop.cert.sslserver.nickname", ""); + String instanceID = cs.getString("instanceId", ""); + String nickname = "Server-Cert cert-" + instanceID; + CryptoManager cm = CryptoManager.getInstance(); X509Certificate cert = cm.findCertByNickname(nickname); Principal issuerDN = cert.getIssuerDN(); @@ -460,7 +462,9 @@ public class CertRequestPanel extends WizardPanelBase { private void deleteBootstrapServerCert() { IConfigStore cs = CMS.getConfigStore(); try { - String nickname = cs.getString("preop.cert.sslserver.nickname", ""); + String instanceID = cs.getString("instanceId", ""); + String nickname = "Server-Cert cert-" + instanceID; + deleteCert("Internal Key Storage Token", nickname); } catch (Exception e) { CMS.debug("CertRequestPanel deleteBootstrapServerCert Exception="+e.toString()); diff --git a/pki/base/common/src/com/netscape/cms/servlet/csadmin/NamePanel.java b/pki/base/common/src/com/netscape/cms/servlet/csadmin/NamePanel.java index 8eafdeac5..75a524e5a 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/csadmin/NamePanel.java +++ b/pki/base/common/src/com/netscape/cms/servlet/csadmin/NamePanel.java @@ -562,16 +562,29 @@ public class NamePanel extends WizardPanelBase { { CMS.debug("NamePanel: configCertWithTag start"); Enumeration c = mCerts.elements(); - + IConfigStore config = CMS.getConfigStore(); + while (c.hasMoreElements()) { Cert cert = (Cert) c.nextElement(); String ct = cert.getCertTag(); CMS.debug("NamePanel: configCertWithTag ct=" + ct + " tag=" +tag); if (ct.equals(tag)) { - configCert(request, response, context, cert); - CMS.debug("NamePanel: configCertWithTag done with tag=" + tag); - return; + try { + String nickname = HttpInput.getNickname(request, ct + "_nick"); + if (nickname != null) { + CMS.debug("configCertWithTag: Setting nickname for " + ct + " to " + nickname); + config.putString(PCERT_PREFIX + ct + ".nickname", nickname); + cert.setNickname(nickname); + config.commit(false); + } + } catch (Exception e) { + CMS.debug("NamePanel: configCertWithTag: Exception in setting nickname for " + ct + ": " + e.toString()); + } + + configCert(request, response, context, cert); + CMS.debug("NamePanel: configCertWithTag done with tag=" + tag); + return; } } CMS.debug("NamePanel: configCertWithTag done"); @@ -598,6 +611,12 @@ public class NamePanel extends WizardPanelBase { if (!olddn.equals(dn)) hasChanged = true; + + String oldnick = config.getString(PCERT_PREFIX + ct + ".nickname"); + String nick = HttpInput.getNickname(request, ct + "_nick"); + if (!oldnick.equals(nick)) + hasChanged = true; + } } catch (Exception e) { } @@ -727,7 +746,6 @@ public class NamePanel extends WizardPanelBase { while (c.hasMoreElements()) { Cert cert = (Cert) c.nextElement(); String ct = cert.getCertTag(); - String nickname = cert.getNickname(); String tokenname = cert.getTokenname(); boolean enable = config.getBoolean(PCERT_PREFIX+ct+".enable", true); if (!enable) @@ -737,10 +755,20 @@ public class NamePanel extends WizardPanelBase { if (certDone) continue; + // get the nicknames and put in config + String nickname = HttpInput.getNickname(request, ct + "_nick"); + if (nickname != null) { + CMS.debug("NamePanel: update: Setting nickname for " + ct + " to " + nickname); + config.putString(PCERT_PREFIX + ct + ".nickname", nickname); + cert.setNickname(nickname); + } else { + nickname = cert.getNickname(); + } + // get the dn's and put in config - String dn = HttpInput.getDN(request, cert.getCertTag()); + String dn = HttpInput.getDN(request, ct); - config.putString(PCERT_PREFIX + cert.getCertTag() + ".dn", dn); + config.putString(PCERT_PREFIX + ct + ".dn", dn); // commit here in case it changes config.commit(false); diff --git a/pki/base/common/src/com/netscape/cms/servlet/csadmin/SizePanel.java b/pki/base/common/src/com/netscape/cms/servlet/csadmin/SizePanel.java index 131eebd22..d5b6f7d1b 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/csadmin/SizePanel.java +++ b/pki/base/common/src/com/netscape/cms/servlet/csadmin/SizePanel.java @@ -170,6 +170,7 @@ public class SizePanel extends WizardPanelBase { context.put("certs", mCerts); context.put("errorString", errorString); context.put("default_keysize", DEFAULT_RSA_KEY_SIZE); + context.put("default_ecc_keysize", DEFAULT_ECC_KEY_SIZE); context.put("panel", "admin/console/config/sizepanel.vm"); } @@ -474,6 +475,7 @@ public class SizePanel extends WizardPanelBase { context.put("title", "Key Pairs"); context.put("certs", mCerts); context.put("default_keysize", DEFAULT_RSA_KEY_SIZE); + context.put("default_ecc_keysize", DEFAULT_ECC_KEY_SIZE); context.put("panel", "admin/console/config/sizepanel.vm"); } } diff --git a/pki/base/ra/doc/CS.cfg b/pki/base/ra/doc/CS.cfg index 831f91a07..203a29da2 100644 --- a/pki/base/ra/doc/CS.cfg +++ b/pki/base/ra/doc/CS.cfg @@ -243,3 +243,4 @@ preop.keysize._002=######################################### preop.keysize.customsize=2048 preop.keysize.select=custom preop.keysize.size=2048 +preop.keysize.ecc.size=256 diff --git a/pki/base/ra/lib/perl/PKI/RA/DonePanel.pm b/pki/base/ra/lib/perl/PKI/RA/DonePanel.pm index 4bd04cf76..76827fcf3 100755 --- a/pki/base/ra/lib/perl/PKI/RA/DonePanel.pm +++ b/pki/base/ra/lib/perl/PKI/RA/DonePanel.pm @@ -304,7 +304,7 @@ sub display system( "chmod 00660 $instDir/conf/nss.conf.tmp" ); open(NSS_CONF, "<$instDir/conf/nss.conf"); while () { - if ((/^NSSNickname/) && ($tokenname ne "") && ($tokenname ne "NSS Certificate DB")) { + if (/^NSSNickname/) { print TMP_NSS_CONF "NSSNickname \"$nickname\"\n"; } else { print TMP_NSS_CONF $_; diff --git a/pki/base/ra/lib/perl/PKI/RA/NamePanel.pm b/pki/base/ra/lib/perl/PKI/RA/NamePanel.pm index 0a67dc213..383654184 100755 --- a/pki/base/ra/lib/perl/PKI/RA/NamePanel.pm +++ b/pki/base/ra/lib/perl/PKI/RA/NamePanel.pm @@ -128,6 +128,21 @@ sub update $::config->put("preop.cert.".$certtag.".dn", $cert_dn); $::config->commit(); + my $sslnickname = $::config->get("preop.cert.sslserver.nickname"); + my $nickname = $q->param($certtag . "_nick"); + if ($nickname ne "") { + &PKI::RA::Wizard::debug_log("NamePanel: update nickname for $certtag set to $nickname"); + &PKI::RA::Wizard::debug_log("NamePanel: update nickname for $certtag being updated in config file"); + $::config->put("preop.cert.".$certtag.".nickname", $nickname); + $::config->commit(); + } else { + $nickname = $::config->get("preop.cert.$certtag.nickname"); + if ($nickname eq "") { + $nickname = "RA ".$certtag." cert"; + &PKI::RA::Wizard::debug_log("NamePanel: update nickname not found for $certtag -- try $nickname"); + } + } + my $cert_request = $::config->get("preop.cert.$certtag.certreq"); if ($cert_request ne "") { &PKI::RA::Wizard::debug_log("NamePanel: update do not generate new keys"); @@ -137,12 +152,6 @@ sub update # =====generate requests======== # getting new request should void old cert - my $sslnickname = $::config->get("preop.cert.sslserver.nickname"); - my $nickname = $::config->get("preop.cert.$certtag.nickname"); - if ($nickname eq "") { - $nickname = "RA ".$certtag." cert"; - &PKI::RA::Wizard::debug_log("NamePanel: update nickname not found for $certtag -- try $nickname"); - } my $file= "$instanceDir/conf/".$certtag."_cert.txt"; my $tmp = `rm $file`; @@ -347,9 +356,16 @@ $debug_req = "/usr/bin/sslget -e \"$params\" -d \"$instanceDir/alias\" -p \"(sen $nickname = "RA ".$certtag." cert"; &PKI::RA::Wizard::debug_log("NamePanel: update nickname not found for $certtag -- try $nickname"); } - &PKI::RA::Wizard::debug_log("NamePanel: update: try to delete existing cert $nickname, if any....ok if it fails"); - $tmp = `certutil -d $instanceDir/alias -D -n "$nickname"`; - $tmp = `certutil -d $instanceDir/alias -D $hw -f $instanceDir/conf/.pwfile -n "$tk$nickname"`; + + if ($certtag ne "sslserver") { + &PKI::RA::Wizard::debug_log("NamePanel: update: try to delete existing cert $nickname, if any....ok if it fails"); + $tmp = `certutil -d $instanceDir/alias -D -n "$nickname"`; + $tmp = `certutil -d $instanceDir/alias -D $hw -f $instanceDir/conf/.pwfile -n "$tk$nickname"`; + } else { + &PKI::RA::Wizard::debug_log("NamePanel: update: try to delete existing cert $sslnickname, if any....ok if it fails"); + $tmp = `certutil -d $instanceDir/alias -D -n "$sslnickname"`; + $tmp = `certutil -d $instanceDir/alias -D $hw -f $instanceDir/conf/.pwfile -n "$tk$sslnickname"`; + } &PKI::RA::Wizard::debug_log("NamePanel: update: try to import cert from $cert_fn"); $tmp = `certutil -d $instanceDir/alias $hw -f $instanceDir/conf/.pwfile -A -n "$nickname" -t "u,u,u" -a -i $cert_fn`; @@ -369,8 +385,18 @@ $debug_req = "/usr/bin/sslget -e \"$params\" -d \"$instanceDir/alias\" -p \"(sen $::config->put("conn.tks1.clientNickname", "$tk$nickname"); } $::config->commit(); + } else { + if ($certtag eq "subsystem") { + # setting these just in case the subsystem nickname changed. + &PKI::RA::Wizard::debug_log("NamePanel: update: setting in case the subsystem nickname changed"); + $::config->put("conn.ca1.clientNickname", "$nickname"); + $::config->put("conn.drm1.clientNickname", "$nickname"); + $::config->put("conn.tks1.clientNickname", "$nickname"); + } + $::config->commit(); } + &PKI::RA::Wizard::debug_log("NamePanel: update: done importing cert: $tk$nickname"); $tmp = `rm $cert_fn`; } diff --git a/pki/base/ra/lib/perl/PKI/RA/SizePanel.pm b/pki/base/ra/lib/perl/PKI/RA/SizePanel.pm index c5ad6ca49..763b184be 100755 --- a/pki/base/ra/lib/perl/PKI/RA/SizePanel.pm +++ b/pki/base/ra/lib/perl/PKI/RA/SizePanel.pm @@ -223,6 +223,14 @@ sub display } else { $::symbol{default_keysize} = $default_size; } + + my $default_ecc_size = $::config->get("preop.keysize.ecc.size"); + if ($default_ecc_size eq "") { + $::symbol{default_ecc_keysize} = 256; + } else { + $::symbol{default_ecc_keysize} = $default_ecc_size; + } + my $custom_size = $::config->get("preop.keysize.customsize"); if ($custom_size eq "") { $::symbol{custom_size} = 2048; diff --git a/pki/base/tps/doc/CS.cfg b/pki/base/tps/doc/CS.cfg index 0c57db31b..5120b4078 100644 --- a/pki/base/tps/doc/CS.cfg +++ b/pki/base/tps/doc/CS.cfg @@ -345,6 +345,7 @@ preop.keysize._002=######################################### preop.keysize.customsize=2048 preop.keysize.select=custom preop.keysize.size=2048 +preop.keysize.ecc.size=256 op.enroll._000=######################################### op.enroll._001=# Default Operations op.enroll._002=# diff --git a/pki/base/tps/lib/perl/PKI/TPS/DonePanel.pm b/pki/base/tps/lib/perl/PKI/TPS/DonePanel.pm index dd5058208..1323e961d 100755 --- a/pki/base/tps/lib/perl/PKI/TPS/DonePanel.pm +++ b/pki/base/tps/lib/perl/PKI/TPS/DonePanel.pm @@ -316,7 +316,7 @@ sub display system( "chmod 00660 $instDir/conf/nss.conf.tmp" ); open(NSS_CONF, "<$instDir/conf/nss.conf"); while () { - if ((/^NSSNickname/) && ($tokenname ne "") && ($tokenname ne "NSS Certificate DB")) { + if (/^NSSNickname/) { print TMP_NSS_CONF "NSSNickname \"$nickname\"\n"; } else { print TMP_NSS_CONF $_; diff --git a/pki/base/tps/lib/perl/PKI/TPS/NamePanel.pm b/pki/base/tps/lib/perl/PKI/TPS/NamePanel.pm index 21ef98a4a..8baaafad2 100755 --- a/pki/base/tps/lib/perl/PKI/TPS/NamePanel.pm +++ b/pki/base/tps/lib/perl/PKI/TPS/NamePanel.pm @@ -127,6 +127,21 @@ sub update $::config->put("preop.cert.".$certtag.".dn", $cert_dn); $::config->commit(); + my $sslnickname = $::config->get("preop.cert.sslserver.nickname"); + my $nickname = $q->param($certtag . "_nick"); + if ($nickname ne "") { + &PKI::TPS::Wizard::debug_log("NamePanel: update nickname for $certtag set to $nickname"); + &PKI::TPS::Wizard::debug_log("NamePanel: update nickname for $certtag being updated in config file"); + $::config->put("preop.cert.".$certtag.".nickname", $nickname); + $::config->commit(); + } else { + $nickname = $::config->get("preop.cert.$certtag.nickname"); + if ($nickname eq "") { + $nickname = "TPS ".$certtag." cert"; + &PKI::TPS::Wizard::debug_log("NamePanel: update nickname not found for $certtag -- try $nickname"); + } + } + my $cert_request = $::config->get("preop.cert.$certtag.certreq"); if ($cert_request ne "") { &PKI::TPS::Wizard::debug_log("NamePanel: update do not generate new keys"); @@ -136,13 +151,6 @@ sub update # =====generate requests======== # getting new request should void old cert - my $sslnickname = $::config->get("preop.cert.sslserver.nickname"); - my $nickname = $::config->get("preop.cert.$certtag.nickname"); - if ($nickname eq "") { - $nickname = "TPS ".$certtag." cert"; - &PKI::TPS::Wizard::debug_log("NamePanel: update nickname not found for $certtag -- try $nickname"); - } - my $file= "$instanceDir/conf/".$certtag."_cert.txt"; my $tmp = `rm $file`; @@ -347,9 +355,16 @@ $debug_req = "/usr/bin/sslget -e \"$params\" -d \"$instanceDir/alias\" -p \"(sen $nickname = "TPS ".$certtag." cert"; &PKI::TPS::Wizard::debug_log("NamePanel: update nickname not found for $certtag -- try $nickname"); } - &PKI::TPS::Wizard::debug_log("NamePanel: update: try to delete existing cert $nickname, if any....ok if it fails"); - $tmp = `certutil -d $instanceDir/alias -D -n "$nickname"`; - $tmp = `certutil -d $instanceDir/alias -D $hw -f $instanceDir/conf/.pwfile -n "$tk$nickname"`; + + if ($certtag ne "sslserver") { + &PKI::TPS::Wizard::debug_log("NamePanel: update: try to delete existing cert $nickname, if any....ok if it fails"); + $tmp = `certutil -d $instanceDir/alias -D -n "$nickname"`; + $tmp = `certutil -d $instanceDir/alias -D $hw -f $instanceDir/conf/.pwfile -n "$tk$nickname"`; + } else { + &PKI::TPS::Wizard::debug_log("NamePanel: update: try to delete existing cert $sslnickname, if any....ok if it fails"); + $tmp = `certutil -d $instanceDir/alias -D -n "$sslnickname"`; + $tmp = `certutil -d $instanceDir/alias -D $hw -f $instanceDir/conf/.pwfile -n "$tk$sslnickname"`; + } &PKI::TPS::Wizard::debug_log("NamePanel: update: try to import cert from $cert_fn"); $tmp = `certutil -d $instanceDir/alias $hw -f $instanceDir/conf/.pwfile -A -n "$nickname" -t "u,u,u" -a -i $cert_fn`; @@ -369,7 +384,17 @@ $debug_req = "/usr/bin/sslget -e \"$params\" -d \"$instanceDir/alias\" -p \"(sen $::config->put("conn.tks1.clientNickname", "$tk$nickname"); } $::config->commit(); - } + } else { + if ($certtag eq "subsystem") { + # setting these just in case the subsystem nickname changed. + &PKI::TPS::Wizard::debug_log("NamePanel: update: setting in case the subsystem nickname changed"); + $::config->put("conn.ca1.clientNickname", "$nickname"); + $::config->put("conn.drm1.clientNickname", "$nickname"); + $::config->put("conn.tks1.clientNickname", "$nickname"); + } + $::config->commit(); + } + &PKI::TPS::Wizard::debug_log("NamePanel: update: done importing cert: $tk$nickname"); $tmp = `rm $cert_fn`; diff --git a/pki/base/tps/lib/perl/PKI/TPS/SizePanel.pm b/pki/base/tps/lib/perl/PKI/TPS/SizePanel.pm index 3ccf1a225..eb1fc6c30 100755 --- a/pki/base/tps/lib/perl/PKI/TPS/SizePanel.pm +++ b/pki/base/tps/lib/perl/PKI/TPS/SizePanel.pm @@ -222,6 +222,13 @@ sub display } else { $::symbol{default_keysize} = $default_size; } + my $default_ecc_size = $::config->get("preop.keysize.ecc.size"); + if ($default_ecc_size eq "") { + $::symbol{default_ecc_keysize} = 256; + } else { + $::symbol{default_ecc_keysize} = $default_ecc_size; + } + my $custom_size = $::config->get("preop.keysize.customsize"); if ($custom_size eq "") { $::symbol{custom_size} = 2048; diff --git a/pki/dogtag/common-ui/dogtag-pki-common-ui.spec b/pki/dogtag/common-ui/dogtag-pki-common-ui.spec index 954ef7196..93a819d56 100644 --- a/pki/dogtag/common-ui/dogtag-pki-common-ui.spec +++ b/pki/dogtag/common-ui/dogtag-pki-common-ui.spec @@ -34,7 +34,7 @@ ## Package Header Definitions %define base_name %{base_ui_prefix}-%{base_prefix}-%{base_component} %define base_version 1.0.0 -%define base_release 9 +%define base_release 10 %define base_group System Environment/Base %define base_vendor Red Hat, Inc. %define base_license GPLv2 with exceptions @@ -222,6 +222,8 @@ rm -rf ${RPM_BUILD_ROOT} ############################################################################### %changelog +* Fri Feb 27 2009 Ade Lee 1.0.0-10 +- Bugzilla 224835 and 367171: Allow cert nicknames to be edited and sizepanel fixes * Thu Feb 26 2009 Matthew Harmsen 1.0.0-9 - Bugzilla Bug #458337 - Provide separate listening ports for CS * Wed Feb 11 2009 Matthew Harmsen 1.0.0-8 diff --git a/pki/dogtag/common-ui/shared/admin/console/config/namepanel.vm b/pki/dogtag/common-ui/shared/admin/console/config/namepanel.vm index a76a65d9d..ef5c564e6 100644 --- a/pki/dogtag/common-ui/shared/admin/console/config/namepanel.vm +++ b/pki/dogtag/common-ui/shared/admin/console/config/namepanel.vm @@ -26,7 +26,7 @@ function performPanel() { } } -Each certificate associated with this instance needs to have a unique name within the PKI hierarchy. The following information will be used to generate these unique names. [Details] +Each certificate associated with this instance needs to have a unique name within the PKI hierarchy. The following information will be used to generate these unique names. Each certificate will be stored in the security module using a unique nickname.[Details] -Each certificate associated with this instance needs to have a unique name within the PKI hierarchy. The following information will be used to generate these unique names. [Details] +Each certificate associated with this instance needs to have a unique name within the PKI hierarchy. The following information will be used to generate these unique names. Each certificate will be stored in the security module using a unique nickname. [Details] -Each certificate associated with this instance needs to have a unique name within the PKI hierarchy. The following information will be used to generate these unique names. [Details] +Each certificate associated with this instance needs to have a unique name within the PKI hierarchy. The following information will be used to generate these unique names. Each certificate will be stored in the security module using a unique nickname.[Details]