{"id":1847,"date":"2017-05-10T18:47:44","date_gmt":"2017-05-10T16:47:44","guid":{"rendered":"https:\/\/www.bussink.ch\/?p=1847"},"modified":"2018-05-23T17:57:35","modified_gmt":"2018-05-23T15:57:35","slug":"issuing-ca-renewal-operations","status":"publish","type":"post","link":"https:\/\/www.bussink.ch\/?p=1847","title":{"rendered":"Issuing CA Renewal operation"},"content":{"rendered":"<p>There is a german proverb &#8220;Ubung macht den Meister&#8221; that I have always tried to apply to my day to day computer science skills. While dealing with my Public Key Infrastructure in the home datacenter (#HomeDC), this means having a proper multi-tier PKI infrastructure with a Standalone Root CA, an Issuing CA, a PKI Web publishing server for Certificates and Certificate Revocation List. Nearly everyone can setup a PKI infrastructure with Microsoft Windows Server using Next Next Next and a 40 years Root Certificate Authority, but I had to make this a bit more challenging and make it so that it needs a yearly maintenance process to keep my PKI skills fresh.<\/p>\n<p>My PKI Certificate Lifecycle is based on the following schema:<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/HomeDC-PKI-Lifecycle.jpg\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-1848\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/HomeDC-PKI-Lifecycle.jpg\" alt=\"\" width=\"883\" height=\"764\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/HomeDC-PKI-Lifecycle.jpg 883w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/HomeDC-PKI-Lifecycle-300x260.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/HomeDC-PKI-Lifecycle-768x664.jpg 768w\" sizes=\"(max-width: 883px) 100vw, 883px\" \/><\/a><\/p>\n<p>You can find the original diagram on this <a href=\"https:\/\/blogs.technet.microsoft.com\/xdot509\/2013\/05\/27\/operating-a-windows-pki-certification-authority-certificate-lifecycle-and-renewals\/\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft PKI Certificate Lifecycle article<\/a>. So instead of having a Root CA that is valid for 20 years and an Issuing CA that is valid for 10 years, I went with smaller validity periods, like 8 years for the Root CA and 4 years with the Issuing CA.<\/p>\n<p>I use two different set of Generation PKI Infrastructure. The G1 on which this article is written is using a Root CA with a <strong>RSA (4096 Bits) Public Key<\/strong> and a <strong>sha512RSA Signature Algorithm<\/strong> for my G1 tier and the same for my Issuing CA. The G2 that you will see on some of the screenshots is based on a Root CA with a Elliptic curve cryptography (ECC)\u00a0P521 and a sha512ECDSA Signature Algorithm.<\/p>\n<p>Since my infrastructure is now running since 2015, I&#8217;m now closing in to the half-time of the Issuing CA validity period. What I decided to do is the following renewal:<\/p>\n<ul>\n<li>At T+4\u00a0years the Issuing CA certificate will be renewed with a new key pair. This action enforces the 4\u00a0year lifetime of the RSA key pair as agreed to when designing the PKI and PKI security. This will create a new CA certificate with a new key pair. This will also force the CA to generate a new CRL file, since there is a new key pair. A CRL signed by the \u201cold\u201d key pair will continue to be generated as long as the CA certificate associated with the \u201cold\u201d key pair is still time valid.<\/li>\n<\/ul>\n<p>When you do a certificate renewal, the new version has a (1) behind it. The certificate request would now be called Issuing CA G1(1).req<\/p>\n<p>Let&#8217;s have a look at the original Issuing CA certificate on the Root CA.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/00.-Root-CA-G1-view-of-the-Issuing-CA-G1-with-4y-lifetime.jpg\"><img loading=\"lazy\" class=\"aligncenter wp-image-1849 size-full\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/00.-Root-CA-G1-view-of-the-Issuing-CA-G1-with-4y-lifetime.jpg\" alt=\"\" width=\"1128\" height=\"206\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/00.-Root-CA-G1-view-of-the-Issuing-CA-G1-with-4y-lifetime.jpg 1128w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/00.-Root-CA-G1-view-of-the-Issuing-CA-G1-with-4y-lifetime-300x55.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/00.-Root-CA-G1-view-of-the-Issuing-CA-G1-with-4y-lifetime-768x140.jpg 768w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/00.-Root-CA-G1-view-of-the-Issuing-CA-G1-with-4y-lifetime-1024x187.jpg 1024w\" sizes=\"(max-width: 1128px) 100vw, 1128px\" \/><\/a><\/p>\n<p>And the Issuing CA detail is<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/01.-Issuing-CA-G10-Certificate-had-4y-lifetime.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1850\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/01.-Issuing-CA-G10-Certificate-had-4y-lifetime.jpg\" alt=\"\" width=\"421\" height=\"526\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/01.-Issuing-CA-G10-Certificate-had-4y-lifetime.jpg 421w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/01.-Issuing-CA-G10-Certificate-had-4y-lifetime-240x300.jpg 240w\" sizes=\"(max-width: 421px) 100vw, 421px\" \/><\/a><\/p>\n<p>This is now impacting me when I attempt to sign new certificates with a validity of over 24 months. Because those are now limited in their validity until the 4th December 2019.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/02.-Issuing-CA-G1-Certificate-under-24-months-till-2019.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1851\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/02.-Issuing-CA-G1-Certificate-under-24-months-till-2019.jpg\" alt=\"\" width=\"473\" height=\"427\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/02.-Issuing-CA-G1-Certificate-under-24-months-till-2019.jpg 473w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/02.-Issuing-CA-G1-Certificate-under-24-months-till-2019-300x271.jpg 300w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/a><\/p>\n<p>The first step on the Issuing CA is to <strong>Stop Service<\/strong> of the PKI and launch the <strong>Renew CA Certificate<\/strong> process. I decided to generate a new public and private key, so my new Issuing CA request file is now named Issuing CA G1(1).\u00a0Take the certificate request to the Root CA. On the Root CA, \u00a0<del><strong>Revoke<\/strong> the current Issuing CA certificate as it&#8217;s <strong>Supersed<\/strong><strong>ed<\/strong> and<\/del><strong> Submit new request <\/strong>of the Issuing CA(1) request file. <strong>Issue<\/strong> the new SubCA certificate. We now have a Issuing CA certificate with two fields.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/03.-Update-Issuing-CA-G1-Certificate-field-0.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1852\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/03.-Update-Issuing-CA-G1-Certificate-field-0.jpg\" alt=\"\" width=\"846\" height=\"548\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/03.-Update-Issuing-CA-G1-Certificate-field-0.jpg 846w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/03.-Update-Issuing-CA-G1-Certificate-field-0-300x194.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/03.-Update-Issuing-CA-G1-Certificate-field-0-768x497.jpg 768w\" sizes=\"(max-width: 846px) 100vw, 846px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/04.-Updated-Issuing-CA-G1-Certificate-field-1.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1853\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/04.-Updated-Issuing-CA-G1-Certificate-field-1.jpg\" alt=\"\" width=\"841\" height=\"549\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/04.-Updated-Issuing-CA-G1-Certificate-field-1.jpg 841w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/04.-Updated-Issuing-CA-G1-Certificate-field-1-300x196.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/04.-Updated-Issuing-CA-G1-Certificate-field-1-768x501.jpg 768w\" sizes=\"(max-width: 841px) 100vw, 841px\" \/><\/a><\/p>\n<p>I need to <strong>export<\/strong> the signed certificate (I used the PKCS #7 .p7b with certificate path format), move it to the Issuing CA and <strong>Import CA Certificate<\/strong>.<\/p>\n<p>In the following steps I&#8217;m doing a few more operations on the Root CA. Now that I have Revoked (Yeah with insight I might better have not revoked the original Issuing CA&#8230; might need to update this article if I run into issues&#8230;) it&#8217;s time to do the annual <strong>publish<\/strong>ing of the Certificate Revocation List (CRL).<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/05.-Export-Root-CA-G1-updated-CRL.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1854\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/05.-Export-Root-CA-G1-updated-CRL.jpg\" alt=\"\" width=\"1111\" height=\"353\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/05.-Export-Root-CA-G1-updated-CRL.jpg 1111w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/05.-Export-Root-CA-G1-updated-CRL-300x95.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/05.-Export-Root-CA-G1-updated-CRL-768x244.jpg 768w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/05.-Export-Root-CA-G1-updated-CRL-1024x325.jpg 1024w\" sizes=\"(max-width: 1111px) 100vw, 1111px\" \/><\/a><\/p>\n<p>I can see in my Root CA CRL now the old revoked Issuing CA certificate serial number.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/06.-Lets-see-the-old-SubCA-superseeded-in-the-Root-CRL.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1855\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/06.-Lets-see-the-old-SubCA-superseeded-in-the-Root-CRL.jpg\" alt=\"\" width=\"563\" height=\"360\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/06.-Lets-see-the-old-SubCA-superseeded-in-the-Root-CRL.jpg 563w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/06.-Lets-see-the-old-SubCA-superseeded-in-the-Root-CRL-300x192.jpg 300w\" sizes=\"(max-width: 563px) 100vw, 563px\" \/><\/a><\/p>\n<p>Moving along on the Issuing CA in the Active Directory, I&#8217;m publishing the update Root CA CRL using <strong>certutil -dsPublish RootCA.crl RootCA<\/strong><\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/07.-Publich-Root-CA-CRL-to-AD.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1856\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/07.-Publich-Root-CA-CRL-to-AD.jpg\" alt=\"\" width=\"1011\" height=\"99\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/07.-Publich-Root-CA-CRL-to-AD.jpg 1011w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/07.-Publich-Root-CA-CRL-to-AD-300x29.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/07.-Publich-Root-CA-CRL-to-AD-768x75.jpg 768w\" sizes=\"(max-width: 1011px) 100vw, 1011px\" \/><\/a><\/p>\n<p>For the computers and operating systems that are not in the Active Directory and that cannot check the state of the Certificates from the AD, I have a Windows server with the IIS Web server running that publishes the CRLs. This server while having the FQDN of pki-web.bussink.org is also referred by the alias pki.bussink.org on my network. I copied the updated Issuing CA(1) certificate and the Root CA CRL on the directory mapped by the IIS server.<\/p>\n<p>On the Issuing CA in the Enterprise PKI tab, you can ensure that all paths to the Certificates, Certificate Revocation List and Delta CRL work. As you see in the top part of the following screenshot I had not yet copied the Issuing CA(1) certificate. That is corrected in the bottom part of the screenshot.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/09.-Ensure-the-Enterprise-PKI-AIA-locations-work-with-new-Certificate.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1857\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/09.-Ensure-the-Enterprise-PKI-AIA-locations-work-with-new-Certificate.jpg\" alt=\"\" width=\"1412\" height=\"563\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/09.-Ensure-the-Enterprise-PKI-AIA-locations-work-with-new-Certificate.jpg 1412w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/09.-Ensure-the-Enterprise-PKI-AIA-locations-work-with-new-Certificate-300x120.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/09.-Ensure-the-Enterprise-PKI-AIA-locations-work-with-new-Certificate-768x306.jpg 768w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/09.-Ensure-the-Enterprise-PKI-AIA-locations-work-with-new-Certificate-1024x408.jpg 1024w\" sizes=\"(max-width: 1412px) 100vw, 1412px\" \/><\/a><\/p>\n<p>Having the Issuing CA running again, I forced a Publishing of the Issuing CA CRLs. You can now see them below on the Web server in Purple. There are two sets of the CRL, the ones for the original Issuing CA certificate and the set for the updated Issuing CA(1) certificate.<\/p>\n<p><a href=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/10.-Status-of-the-PKI-Web-folder.-Manual-Cert-replacement-in-Red-Automated-CRL-publishing-in-Violet.jpg\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-1858\" src=\"http:\/\/www.bussink.ch\/wp-content\/uploads\/\/2017\/05\/10.-Status-of-the-PKI-Web-folder.-Manual-Cert-replacement-in-Red-Automated-CRL-publishing-in-Violet.jpg\" alt=\"\" width=\"1290\" height=\"498\" srcset=\"https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/10.-Status-of-the-PKI-Web-folder.-Manual-Cert-replacement-in-Red-Automated-CRL-publishing-in-Violet.jpg 1290w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/10.-Status-of-the-PKI-Web-folder.-Manual-Cert-replacement-in-Red-Automated-CRL-publishing-in-Violet-300x116.jpg 300w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/10.-Status-of-the-PKI-Web-folder.-Manual-Cert-replacement-in-Red-Automated-CRL-publishing-in-Violet-768x296.jpg 768w, https:\/\/www.bussink.ch\/wp-content\/uploads\/2017\/05\/10.-Status-of-the-PKI-Web-folder.-Manual-Cert-replacement-in-Red-Automated-CRL-publishing-in-Violet-1024x395.jpg 1024w\" sizes=\"(max-width: 1290px) 100vw, 1290px\" \/><\/a><\/p>\n<p>The files in the red boxes are the ones I manually added to my PKI-WEB repository. They are the annual Root CA CRL and the new Issuing CA G1(1) certificate (I already mentionned it above, I might have been a bit premature in removing the original Issuing CA G1 certificate. I will update this article if I run into serious issues).<\/p>\n<p>I wrote this blog article more for myself as a recap of the operations, as I will have to redo it before 2021. While this is only 4 years down the road, I have already I had the opportunity once in my career to setup a Root CA infrastructure in 2004 with Windows Server 2003 and have to renew it completly 10 years later in 2014. This was a lot more complicated as I had to change the PKI CryptoProvider from the old one only support SHA1 to one that supported SHA2.\u00a0This is a reminder to all professionals, if you setup a PKI, you might have to work on it again a decade later.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There is a german proverb &#8220;Ubung macht den Meister&#8221; that I have always tried to apply to my day to day computer science skills. While dealing with my Public Key Infrastructure in the home datacenter (#HomeDC), this means having a proper multi-tier PKI infrastructure with a Standalone Root CA, an Issuing CA, a PKI Web [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12,45],"tags":[247,245,215,246,249,248],"_links":{"self":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/1847"}],"collection":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1847"}],"version-history":[{"count":8,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/1847\/revisions"}],"predecessor-version":[{"id":1926,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=\/wp\/v2\/posts\/1847\/revisions\/1926"}],"wp:attachment":[{"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bussink.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}