{"id":129,"date":"2019-07-09T07:09:39","date_gmt":"2019-07-09T07:09:39","guid":{"rendered":"https:\/\/www.ssls.com\/knowledgebase\/?p=129"},"modified":"2022-09-20T14:14:48","modified_gmt":"2022-09-20T14:14:48","slug":"how-to-install-an-ssl-certificate-on-node-js","status":"publish","type":"post","link":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/","title":{"rendered":"How to install an SSL certificate on Node.js"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Once a <a href=\"https:\/\/www.ssls.com\/knowledgebase\/how-to-generate-a-csr-code-on-node-js\/\">CSR code is generated<\/a> and the certificate is issued, the codes with your domain certificate and CA bundle will be emailed to you by Certificate Authority, or you can download them <\/span><a href=\"https:\/\/www.ssls.com\/knowledgebase\/can-i-download-certificate-somewhere-on-your-site\/\"><span style=\"font-weight: 400;\">from SSLs.com dashboard<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The installation implies performing 2 steps: uploading the required files to a needed directory on a server and creating an HTTPS server in node.js environment. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The main idea of node.js is creating an endpoint asynchronous server (something like a responder) in the command line interface. Thus, your server code should be corrected with the following lines: <\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">var https = require(&#8216;https&#8217;);<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\">var fs = require(&#8216;fs&#8217;);<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\">\u00a0<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\">var options = {<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\"> \u00a0key: fs.readFileSync(&#8216;\/path\/to\/private.key&#8217;),<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\"> \u00a0cert: fs.readFileSync(&#8216;\/path\/to\/certificate.crt&#8217;),<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\"> \u00a0ca: fs.readFileSync (&#8216;\/path\/to\/bundle.ca-bundle&#8217;)<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\">};<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\">\u00a0<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\">https.createServer(options, function (req, res) { <\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400;\">&lt;!&#8211; server script ?<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">where: <\/span><\/p>\n<p><strong>\/path\/to\/bundle.ca-bundle <\/strong><span style=\"font-weight: 400;\">\u2013 <\/span><span style=\"font-weight: 400;\">full path to the uploaded .ca-bundle file<\/span><\/p>\n<p><strong>\/path\/to\/private.key <\/strong><span style=\"font-weight: 400;\">\u2013<\/span><span style=\"font-weight: 400;\"> full path to your private key generated along with CSR and stored on the server<\/span><\/p>\n<p><strong>\/path\/to\/certificate.crt <\/strong><span style=\"font-weight: 400;\">\u2013<\/span><span style=\"font-weight: 400;\"> full path to the end-entity certificate.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Note that a hostname and port should be declared earlier in the script as constants (const) or variables (var).<\/span><\/p>\n<p><strong>Note<\/strong><span style=\"font-weight: 400;\">: Due to some peculiarity in node.js tls module, different node.js builds, and JavaScript construction, there is a possibility that the .ca-bundle file provided by Sectigo may not be recognized by the server. Only the first intermediate certificate from the chain will be returned (as a parser may skip other certificates apart from the first one) which will make the connections insecure in old desktop browsers and most mobile ones.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This issue happens in Node.js versions 0.5.x and further to 3.x.x. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Version 5.4.1 which was used in the demonstration displayed 3 certificates in the bundle.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this case, there is a workaround of certificate array line-by-line parsing using the following<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/CoffeeScript\"> <span style=\"font-weight: 400;\">(CoffeeScript-written)<\/span><\/a><span style=\"font-weight: 400;\"> script: <\/span><\/p>\n<p><em><span style=\"font-weight: 400;\">ca = []<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">chain = fs.readFileSync(\u2018\/path\/to\/mydomain.ca-bundle\u2019);<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">chain = chain.split &#8220;n&#8221;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">cert = []<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">for <\/span><span style=\"font-weight: 400;\">line <\/span><span style=\"font-weight: 400;\">in <\/span><span style=\"font-weight: 400;\">chain <\/span><span style=\"font-weight: 400;\">when <\/span><span style=\"font-weight: 400;\">line.length<\/span><span style=\"font-weight: 400;\"> isnt <\/span><span style=\"font-weight: 400;\">0<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0<\/span><span style=\"font-weight: 400;\">cert.push<\/span> <span style=\"font-weight: 400;\">line<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0if <\/span><span style=\"font-weight: 400;\">line.match<\/span><span style=\"font-weight: 400;\"> \/-END CERTIFICATE-\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0<\/span><span style=\"font-weight: 400;\">ca.push cert.join<\/span><span style=\"font-weight: 400;\"> &#8220;n&#8221;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0\u00a0\u00a0cert = []<\/span><\/em><\/p>\n<p><span style=\"font-weight: 400;\">After using this part of script, SSL-related options, specifically the \u201cca\u201d directive, can be written down as:<\/span><\/p>\n<p><strong>ca: ca<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">where ca: ca will be executed by the server automatically, as it refers to the result of the script cycle segment above.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With the help of implementing these parts of code, the full certificate chain will be displayed.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The configuration can be done in a text editor and the server script can be saved as a .js file. The saved script can be executed using this command in node.js shell:<\/span><\/p>\n<p><strong> node &lt; script name &gt;.js<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">The test server has been brought up on a test machine, and the certificate has been displayed correctly: <\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img decoding=\"async\" src=\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Note<\/strong>: In newer node.js versions, the script output isn\u2019t showing as it is saving in the \/dev\/null directory; however, if the script has been run in a node shell, the output will be as follows:<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img decoding=\"async\" src=\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p2.png\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400;\">After the SSL certificate is configured and the server is started, you should notice the <\/span><strong>&#8220;secureConnection<\/strong><span style=\"font-weight: 400;\"><strong>&#8220;<\/strong> event in the output. This, however, should not be considered as a confirmation of a correct SSL installation since in terms of Node.js, there is no specific indicator that translates into a proper SSL setup.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Instead, online checkers can be used to verify the accuracy of SSL certificate configuration <\/span><a href=\"https:\/\/decoder.link\/sslchecker\"><span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\"> or\u00a0<\/span><a href=\"https:\/\/certlogik.com\/ssl-checker\/\"><span style=\"font-weight: 400;\">here<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Once a CSR code is generated and the certificate is issued, the codes with your domain certificate and CA bundle will be emailed to you by Certificate Authority, or you can download them from SSLs.com dashboard. The installation implies performing 2 steps: uploading the required files to a needed directory on a server and creating ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-129","post","type-post","status-publish","format-standard","hentry","category-ssl-installation-instructions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to install an SSL certificate on Node.js \u2013 HelpDesk | SSLs.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to install an SSL certificate on Node.js \u2013 HelpDesk | SSLs.com\" \/>\n<meta property=\"og:description\" content=\"Once a CSR code is generated and the certificate is issued, the codes with your domain certificate and CA bundle will be emailed to you by Certificate Authority, or you can download them from SSLs.com dashboard. The installation implies performing 2 steps: uploading the required files to a needed directory on a server and creating ..Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\" \/>\n<meta property=\"og:site_name\" content=\"SSL Certificate Knowledgebase | SSLs.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SSLsCom\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-09T07:09:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-20T14:14:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png\" \/>\n<meta name=\"author\" content=\"sslbizdev\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SSLscom\" \/>\n<meta name=\"twitter:site\" content=\"@SSLscom\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"sslbizdev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\"},\"author\":{\"name\":\"sslbizdev\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/person\/7e29a188929740c7a59d9a1c15c18806\"},\"headline\":\"How to install an SSL certificate on Node.js\",\"datePublished\":\"2019-07-09T07:09:39+00:00\",\"dateModified\":\"2022-09-20T14:14:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\"},\"wordCount\":574,\"publisher\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png\",\"articleSection\":[\"SSL Installation instructions\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\",\"url\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\",\"name\":\"How to install an SSL certificate on Node.js \u2013 HelpDesk | SSLs.com\",\"isPartOf\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png\",\"datePublished\":\"2019-07-09T07:09:39+00:00\",\"dateModified\":\"2022-09-20T14:14:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage\",\"url\":\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png\",\"contentUrl\":\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.ssls.com\/knowledgebase\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to install an SSL certificate on Node.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#website\",\"url\":\"https:\/\/www.ssls.com\/knowledgebase\/\",\"name\":\"SSL Certificate Knowledgebase | SSLs.com\",\"description\":\"SSL Knowledgebase | SSLs.com\",\"publisher\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.ssls.com\/knowledgebase\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#organization\",\"name\":\"SSLs.com\",\"url\":\"https:\/\/www.ssls.com\/knowledgebase\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/8WCg7Uph_400x400-1.png\",\"contentUrl\":\"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/8WCg7Uph_400x400-1.png\",\"width\":400,\"height\":400,\"caption\":\"SSLs.com\"},\"image\":{\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SSLsCom\",\"https:\/\/x.com\/SSLscom\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/person\/7e29a188929740c7a59d9a1c15c18806\",\"name\":\"sslbizdev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/b43c2e48b8cf4c353e91aa8232dac0c56e490f3f1eff58a7652c7d9a866e3f66?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b43c2e48b8cf4c353e91aa8232dac0c56e490f3f1eff58a7652c7d9a866e3f66?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b43c2e48b8cf4c353e91aa8232dac0c56e490f3f1eff58a7652c7d9a866e3f66?s=96&d=mm&r=g\",\"caption\":\"sslbizdev\"},\"url\":\"https:\/\/www.ssls.com\/knowledgebase\/author\/sslbizdev\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to install an SSL certificate on Node.js \u2013 HelpDesk | SSLs.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/","og_locale":"en_US","og_type":"article","og_title":"How to install an SSL certificate on Node.js \u2013 HelpDesk | SSLs.com","og_description":"Once a CSR code is generated and the certificate is issued, the codes with your domain certificate and CA bundle will be emailed to you by Certificate Authority, or you can download them from SSLs.com dashboard. The installation implies performing 2 steps: uploading the required files to a needed directory on a server and creating ..Read more","og_url":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/","og_site_name":"SSL Certificate Knowledgebase | SSLs.com","article_publisher":"https:\/\/www.facebook.com\/SSLsCom","article_published_time":"2019-07-09T07:09:39+00:00","article_modified_time":"2022-09-20T14:14:48+00:00","og_image":[{"url":"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png","type":"","width":"","height":""}],"author":"sslbizdev","twitter_card":"summary_large_image","twitter_creator":"@SSLscom","twitter_site":"@SSLscom","twitter_misc":{"Written by":"sslbizdev","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#article","isPartOf":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/"},"author":{"name":"sslbizdev","@id":"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/person\/7e29a188929740c7a59d9a1c15c18806"},"headline":"How to install an SSL certificate on Node.js","datePublished":"2019-07-09T07:09:39+00:00","dateModified":"2022-09-20T14:14:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/"},"wordCount":574,"publisher":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/#organization"},"image":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png","articleSection":["SSL Installation instructions"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/","url":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/","name":"How to install an SSL certificate on Node.js \u2013 HelpDesk | SSLs.com","isPartOf":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage"},"image":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png","datePublished":"2019-07-09T07:09:39+00:00","dateModified":"2022-09-20T14:14:48+00:00","breadcrumb":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#primaryimage","url":"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png","contentUrl":"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/p1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ssls.com\/knowledgebase\/how-to-install-an-ssl-certificate-on-node-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ssls.com\/knowledgebase\/"},{"@type":"ListItem","position":2,"name":"How to install an SSL certificate on Node.js"}]},{"@type":"WebSite","@id":"https:\/\/www.ssls.com\/knowledgebase\/#website","url":"https:\/\/www.ssls.com\/knowledgebase\/","name":"SSL Certificate Knowledgebase | SSLs.com","description":"SSL Knowledgebase | SSLs.com","publisher":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ssls.com\/knowledgebase\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.ssls.com\/knowledgebase\/#organization","name":"SSLs.com","url":"https:\/\/www.ssls.com\/knowledgebase\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/logo\/image\/","url":"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/8WCg7Uph_400x400-1.png","contentUrl":"https:\/\/www.ssls.com\/knowledgebase\/wp-content\/uploads\/2019\/07\/8WCg7Uph_400x400-1.png","width":400,"height":400,"caption":"SSLs.com"},"image":{"@id":"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SSLsCom","https:\/\/x.com\/SSLscom"]},{"@type":"Person","@id":"https:\/\/www.ssls.com\/knowledgebase\/#\/schema\/person\/7e29a188929740c7a59d9a1c15c18806","name":"sslbizdev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b43c2e48b8cf4c353e91aa8232dac0c56e490f3f1eff58a7652c7d9a866e3f66?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b43c2e48b8cf4c353e91aa8232dac0c56e490f3f1eff58a7652c7d9a866e3f66?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b43c2e48b8cf4c353e91aa8232dac0c56e490f3f1eff58a7652c7d9a866e3f66?s=96&d=mm&r=g","caption":"sslbizdev"},"url":"https:\/\/www.ssls.com\/knowledgebase\/author\/sslbizdev\/"}]}},"publishpress_future_action":{"enabled":false,"date":"2026-05-13 12:35:51","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"category","extraData":[]},"publishpress_future_workflow_manual_trigger":{"enabledWorkflows":[]},"_links":{"self":[{"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=129"}],"version-history":[{"count":6,"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/129\/revisions"}],"predecessor-version":[{"id":6216,"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/129\/revisions\/6216"}],"wp:attachment":[{"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ssls.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}