{"id":1640,"date":"2023-11-01T12:30:50","date_gmt":"2023-11-01T17:30:50","guid":{"rendered":"https:\/\/cloudlearning365.com\/?p=1640"},"modified":"2023-11-06T11:17:11","modified_gmt":"2023-11-06T16:17:11","slug":"request-renew-ssl-certificate-for-aviatrix-controller-copilot","status":"publish","type":"post","link":"https:\/\/cloudlearning365.com\/?p=1640","title":{"rendered":"Request\/Renew SSL Certificate for Aviatrix Controller\/CoPilot"},"content":{"rendered":"\n<p>As of writing, on Aviatrix Controller version 7.1.2131 and CoPilot v4.3.1, the current process of installing a certificate:<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\" start=\"1\">\n<li>For Aviatrix Controller\n<ul class=\"wp-block-list\">\n<li>By default, the Aviatrix Controller uses a self-signed certificate. In this case, an option to generate a Certificate Signing Request (CSR) will be available.&nbsp; The CSR requires the Fully Qualified Domain Name (FQDN) of the controller, e.g., avx-controller.mycompany.com.&nbsp; When the CSR is generated, the controller will also generate and store a corresponding private key.&nbsp; The generated CSR is supplied to the Certificate Authority (CA) which will return a signed public certificate.&nbsp; In addition to this certificate, a CA certificate (generally publicly available from the CA) will also be required during the import process.<\/li>\n\n\n\n<li>If a public certificate is already installed, you can no longer generate a CSR without first reverting to a self-signed certificate.<\/li>\n\n\n\n<li>There is also an option to import an externally generated private key with corresponding public and CA certs.&nbsp;<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>For Aviatrix CoPilot\n<ul class=\"wp-block-list\">\n<li>The Copilot does not support the generation of CSR\u2019s.&nbsp; Instead, an externally generated private key and corresponding CA-signed public key are required for importation.&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>The processes above can be challenging for customers, especially when renewing existing certificates.&nbsp; This confusion is compounded by the variety of different certificate types of Certification Authorities, certificate formats and operating system tools.<\/p>\n\n\n\n<p>This blog intends to create a more standardized process for Aviatrix Customers to follow.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">OpenSSL<\/h2>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\" start=\"1\">\n<li>To standardize the process of requesting a certificate, we will use a utility called <a href=\"https:\/\/www.openssl.org\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>OpenSSL<\/strong><\/a><\/li>\n\n\n\n<li>OpenSSL is included in all major Linux distributions as well as all versions of MacOS.<\/li>\n\n\n\n<li>For Windows, there is a list of 3rd party maintained binaries on <a href=\"https:\/\/wiki.openssl.org\/index.php\/Binaries\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/wiki.openssl.org\/index.php\/Binaries<\/a>.&nbsp; For the examples below I\u2019m using Windows 10 with <a href=\"https:\/\/slproweb.com\/products\/Win32OpenSSL.html\" target=\"_blank\" rel=\"noreferrer noopener\">Win32OpenSSL<\/a> installed.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Quick Win32OpenSSL install guide<\/strong><\/h2>\n\n\n\n<p>When downloading Win32 OpenSSL make sure to choose the binary matching your OS architecture.&nbsp;<\/p>\n\n\n\n<p><strong>Please note:<\/strong> Do not select the *light* edition as it is missing openssl.cfg file.<\/p>\n\n\n\n<p>The following examples assume a default installation of OpenSSL in <strong>C:\\Program Files\\OpenSSL-Win64<\/strong><\/p>\n\n\n\n<p>Make sure system environment variables include a new variable name: <strong>OPENSSL_CONF<\/strong><br>Value with a value of \u201c<strong>C:\\Program Files\\OpenSSL-Win64\\bin\\openssl.cfg<\/strong>\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"933\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-8-1024x933.png\" alt=\"\" class=\"wp-image-1654\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-8-1024x933.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-8-300x273.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-8-768x700.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-8-329x300.png 329w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-8.png 1282w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Make sure system environment variable <strong>Path<\/strong> includes <strong>C:\\Program Files\\OpenSSL-Win64\\bin<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"693\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-9-1024x693.png\" alt=\"\" class=\"wp-image-1655\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-9-1024x693.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-9-300x203.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-9-768x520.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-9-443x300.png 443w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-9.png 1058w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Restart Windows for the system variables to take effect.<\/p>\n\n\n\n<p><strong>NOTE: <\/strong>Microsoft Visual C++ 2015-2019 Redistributable must be installed for Win32OpenSSL to work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Certificate types<\/strong><\/h2>\n\n\n\n<p>Both Aviatrix Controller and CoPilot is looking for <strong><em>PEM encoded X.509 certificate<\/em><\/strong><\/p>\n\n\n\n<p>When a <strong>certificate with public key<\/strong> is opened in a text editor, it will look like following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-----BEGIN CERTIFICATE-----\n\nMIIGhz...\n\n...\n\n...WlLw==\n\n-----END CERTIFICATE-----<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>When a <strong><em>PEM encoded RSA private key<\/em><\/strong> is opened in a text editor, it will look like following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-----BEGIN RSA PRIVATE KEY-----\n\nMIIE...\n\n...\n\n...\n\n-----END RSA PRIVATE KEY-----<\/code><\/pre>\n\n\n\n<p><strong>NOTE:<\/strong>&nbsp; Any other encodings (DER, P7B\/PKCS#7 or PFX\/PKCS#12) are not supported but can be converted to PEM format by OpenSSL.&nbsp; Please see <a href=\"https:\/\/aboutssl.org\/convert-certificate-to-pem-crt-to-pem-crt-to-pem-der-to-pem\/\">https:\/\/aboutssl.org\/convert-certificate-to-pem-crt-to-pem-crt-to-pem-der-to-pem\/<\/a> for instructions.<\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff0000\" class=\"has-inline-color\">Important! The private key <u>cannot<\/u> have a password on it.<\/mark><\/strong><\/p>\n\n\n\n<p>If the private key has a password, use the following command to create a new key file without a password:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Run this command: openssl rsa -in [original.key] -out [new.key]<\/li>\n\n\n\n<li>Enter the passphrase for the original key when asked.<\/li>\n\n\n\n<li>The output file [new.key] should now be unencrypted.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The process<\/strong> summarized<\/h2>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\" start=\"1\">\n<li>Use OpenSSL to generate a private key.<\/li>\n\n\n\n<li>Use OpenSSL to generate a CSR from that private key.<\/li>\n\n\n\n<li>Submit CSR to your CA.<\/li>\n\n\n\n<li>Your CA will issue a signed server certificate.&nbsp; In addition, a signed intermediate CA certificate should be obtained.&nbsp;<\/li>\n\n\n\n<li>Install signed CA certificate, signed server certificate and private key on Controller\/CoPilot<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Use OpenSSL to generate a private key<\/strong><\/h3>\n\n\n\n<p>The following command is used to generate a 4096 bit RSA private key, outputting it to a file named \u201cprivatekey.pem\u201d:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl genpkey -algorithm RSA -out privatekey.pem -pkeyopt rsa_keygen_bits:4096<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>openssl<\/strong>: This is the command line tool for the OpenSSL binary.<\/li>\n\n\n\n<li><strong>genpkey<\/strong>: This is the OpenSSL command for generating a private key.<\/li>\n\n\n\n<li><strong>-algorithm RSA:<\/strong> This switch determines the algorithm to use for the key generation. In this case, RSA is specified.<\/li>\n\n\n\n<li><strong>-out privatekey.pem<\/strong>: The -out switch specifies the output filename. Here, the output of the command (the newly generated private key) is saved to a file named privatekey.pem.<\/li>\n\n\n\n<li><strong>-pkeyopt rsa_keygen_bits:4096<\/strong>: The -pkeyopt option allows for setting public key parameters. In this example, rsa_keygen_bits:4096 specifies that the RSA key to be generated should have a length of <strong>4096<\/strong> bits.<\/li>\n<\/ul>\n\n\n\n<p>To verify the consistency of a private key, use following command to check that the mathematical structure of the key is sound:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl rsa -in privateKey.pem -check -noout<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>rsa<\/strong>: This OpenSSL command handles RSA keys. Operations include generation, examination, and in some cases, private key decryption.<\/li>\n\n\n\n<li><strong>-in privateKey.pem<\/strong>: The -in option specifies the input filename. Here, the private key used for the operation is read from a file named \u2018privateKey.pem\u2019.<\/li>\n\n\n\n<li><strong>-check<\/strong>: This option checks the consistency of an RSA private key.<\/li>\n\n\n\n<li><strong>-noout<\/strong>: This prevents the key from being printed to the console.&nbsp; As such, only the result of the check will be written to stdout.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Use OpenSSL to generate CSR<\/strong><\/h3>\n\n\n\n<p>Use the following command to generate a CSR using the private key (privateKey.pem) created earlier. You\u2019ll be prompted to enter the details for the CSR, including your Common Name (domain name), organization name, and more. If you wish to automate this process, you can use -subj flag to provide the CSR information.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl req -new -key privatekey.pem -out request.csr<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>req<\/strong>: This OpenSSL command is for handling CSR (PKCS#10 X.509 Certificate Signing Request (CSR) management).<\/li>\n\n\n\n<li><strong>-new<\/strong>: This option generates a new CSR.<\/li>\n\n\n\n<li><strong>-key privatekey.pem<\/strong>: This specifies the file to read the private key from, in this case \u201cprivatekey.pem\u201d.<\/li>\n\n\n\n<li><strong>-out request.csr<\/strong>: This specifies the output filename. Here, the CSR is written to a file named \u201crequest.csr\u201d.<\/li>\n<\/ul>\n\n\n\n<p>Example of the prompt, it\u2019s critical to enter the server FQDN to match your intended URL to access the servers, e.g., <strong>avxctrl.cloudlearning365.com<\/strong> in the following example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>You are about to be asked to enter information that will be incorporated\n\ninto your certificate request.\n\nWhat you are about to enter is what is called a Distinguished Name or a DN.\n\nThere are quite a few fields but you can leave some blank\n\nFor some fields there will be a default value,\n\nIf you enter '.', the field will be left blank.\n\n-----\n\nCountry Name (2 letter code) &#91;AU]:CA\n\nState or Province Name (full name) &#91;Some-State]:Ontario\n\nLocality Name (eg, city) &#91;]:Toronto\n\nOrganization Name (eg, company) &#91;Internet Widgits Pty Ltd]:Aviatrix\n\nOrganizational Unit Name (eg, section) &#91;]:IT\n\nCommon Name (e.g. server FQDN or YOUR name) &#91;]:avxctrl.cloudlearning365.com\n\nEmail Address &#91;]:\n\nPlease enter the following 'extra' attributes\n\nto be sent with your certificate request\n\nA challenge password &#91;]:\n\nAn optional company name &#91;]:<\/code><\/pre>\n\n\n\n<p><strong>To validate the CSR file, use the following command:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl req -text -noout -verify -in request.csr<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>req<\/strong>: This OpenSSL command deals with Certificate Signing Requests (CSRs).<\/li>\n\n\n\n<li><strong>-text<\/strong>: Outputs the CSR information in a text-based, human-readable format.<\/li>\n\n\n\n<li><strong>-noout<\/strong>: Prevents output of the encoded version of the CSR request.<\/li>\n\n\n\n<li><strong>-verify:<\/strong> Checks the signature on the CSR to verify its integrity.<\/li>\n\n\n\n<li><strong>-in request.csr<\/strong>: This specifies the filename to read the CSR from. Here, \u2018request.csr\u2019 is the input CSR file.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Submit CSR to your Certificate Authority<\/strong><\/h3>\n\n\n\n<p>I\u2019ve summited the CSR to ZeroSSL and obtained a ZIP file containing: ca_bundle.crt and certificate.crt.<\/p>\n\n\n\n<p>Use following command to explore the certificate:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl x509 -in certificate.crt -text -noout | grep -E '(Subject|Issuer):'\n\nIssuer: C = AT, O = ZeroSSL, CN = ZeroSSL RSA Domain Secure Site CA\nSubject: CN = avxctrl.cloudlearning365.com<\/code><\/pre>\n\n\n\n<p>Now use the similar command on ca_bundle.crt to explore the certificate:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl x509 -in ca_bundle.crt -text -noout | grep -E '(Subject|Issuer):'\n\nIssuer: C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, CN = USERTrust RSA Certification Authority\nSubject: C = AT, O = ZeroSSL, CN = ZeroSSL RSA Domain Secure Site CA<\/code><\/pre>\n\n\n\n<p>Notice how the subject of ca_bundle.crt matches issuer of certificate.crt. This means ca_budle.crt is the intermediate CA that issued the certificate for avxctrl.cloudlearning365.com<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Install Aviatrix Controller Certificate<\/strong><\/h3>\n\n\n\n<p>Aviatrix Controller -&gt; Settings -&gt; Certificate<\/p>\n\n\n\n<p>When Aviatrix Controller is using self-signed certificate:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"603\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1024x603.png\" alt=\"\" class=\"wp-image-1644\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1024x603.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-300x177.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-768x452.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1536x904.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-2048x1205.png 2048w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-500x294.png 500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>When Aviatrix already has a certificate installed, and you are renewing the certificate:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"617\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1-1024x617.png\" alt=\"\" class=\"wp-image-1645\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1-1024x617.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1-300x181.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1-768x463.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1-1536x926.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1-2048x1234.png 2048w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-1-498x300.png 498w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">CoPilot SSL certificate installation<\/h3>\n\n\n\n<p>CoPilot -&gt; Settings -&gt; Configuration -&gt; General -&gt; CoPilot Certificates<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"416\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-2-1024x416.png\" alt=\"\" class=\"wp-image-1646\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-2-1024x416.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-2-300x122.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-2-768x312.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-2-500x203.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-2.png 1078w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Replace SSL Certificate with the server certificate, and SSL Certificate Key with the private key, then click on Save<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-3-1024x527.png\" alt=\"\" class=\"wp-image-1647\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-3-1024x527.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-3-300x154.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-3-768x396.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-3-500x257.png 500w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-3.png 1068w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Restart CoPilot Web Service -&gt; Settings -&gt; Resources -&gt; System health -&gt; Web -&gt; Restart<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"669\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-4-1024x669.png\" alt=\"\" class=\"wp-image-1648\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-4-1024x669.png 1024w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-4-300x196.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-4-768x501.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-4-1536x1003.png 1536w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-4-2048x1337.png 2048w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-4-459x300.png 459w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>DNS<\/strong><\/h2>\n\n\n\n<p>Make sure your DNS record is set correctly, e.g.:<\/p>\n\n\n\n<p><strong>avxctrl.cloudlearning365.com<\/strong> would resolve to Aviatrix Controller IP<\/p>\n\n\n\n<p><strong>avxcopilot.cloudlearning365.com<\/strong> would resolve to CoPilot IP<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Validation<\/strong><\/h2>\n\n\n\n<p>In the browser, try to open https:\/\/<strong>avxctrl.cloudlearning365.com<\/strong>, e.g. in Chrome, there\u2019s no warning, and then expand on the icon close to the URL, it shows <strong>Connection is secure<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"894\" height=\"446\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-5.png\" alt=\"\" class=\"wp-image-1649\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-5.png 894w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-5-300x150.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-5-768x383.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-5-500x249.png 500w\" sizes=\"auto, (max-width: 894px) 100vw, 894px\" \/><\/figure>\n\n\n\n<p>You can further explore the installed certificate by pressing on <strong>Connection is secure<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"546\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-6.png\" alt=\"\" class=\"wp-image-1650\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-6.png 684w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-6-300x239.png 300w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-6-376x300.png 376w\" sizes=\"auto, (max-width: 684px) 100vw, 684px\" \/><\/figure>\n\n\n\n<p>Then click on Certificate is valid, validate on Common Name which should match your URL FQDN (Fully Qualified Domain Name), and <strong>Expires on<\/strong> should be a future date.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"969\" height=\"1024\" src=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-7-969x1024.png\" alt=\"\" class=\"wp-image-1651\" srcset=\"https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-7-969x1024.png 969w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-7-284x300.png 284w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-7-768x812.png 768w, https:\/\/cloudlearning365.com\/wp-content\/uploads\/2023\/11\/image-7.png 1048w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>As of writing, on Aviatrix Controller version 7.1.2131 and CoPilot v4.3.1, the current process of installing a certificate: The processes above can be challenging for customers, especially when renewing existing certificates.&nbsp; This confusion is compounded by the variety of different &hellip; <a href=\"https:\/\/cloudlearning365.com\/?p=1640\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1640","post","type-post","status-publish","format-standard","hentry","category-aviatrix"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1640"}],"version-history":[{"count":8,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1640\/revisions"}],"predecessor-version":[{"id":1661,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=\/wp\/v2\/posts\/1640\/revisions\/1661"}],"wp:attachment":[{"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudlearning365.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}