{"id":1039,"date":"2023-06-07T12:21:04","date_gmt":"2023-06-07T12:21:04","guid":{"rendered":"https:\/\/certerassl.com\/blog\/?p=1039"},"modified":"2023-10-12T10:55:05","modified_gmt":"2023-10-12T10:55:05","slug":"create-code-signing-certificate-using-key-storage-provider","status":"publish","type":"post","link":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/","title":{"rendered":"Create Code Signing Certificate using the Key Storage Provider"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The following procedure will demonstrate how to generate a Code Signing Certificate request using a key generated and stored in the YubiHSM 2 using the Key Storage Provider (KSP). You can use the Microsoft &#8220;signtool tool&#8221; to digitally certify Windows binaries with this code signing certificate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s take a closer look at the foundational concepts covered in this article before we start the procedure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code Signing Certificate:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Software developers securely and digitally sign software programs, drivers, executables, and apps using Code Signing. This assures end users that an unauthorized party has not tampered with or compromised the code they obtain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A <a href=\"https:\/\/certera.com\/code-signing\">Code Signing Certificate<\/a> provides a digital signature to a piece of software, verifying its authenticity and enabling the detection of any modifications made to the code. A software publisher certificate or a Code Signing Certificate enables the security of the software and prevents unauthorized access.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">YubiHSM 2:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">YubiHSM 2 FIPS is a&nbsp;cryptographic hardware security module designed for server&nbsp;usage. It finds extensive usage in creating, protecting, and maintaining cryptographic keys that secure sensitive information, identities, and applications. It not only minimizes risk but also ensures compliance with regulations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With High quality, Rapid Integration, and Easy Management,&nbsp;the YubiHSM SDK 2.0 is&nbsp;currently available as open source; organizations&nbsp;can quickly and simply add support for the secure HSM to a variety of platforms and systems for both present and future use cases where robust security&nbsp;is essential more than ever.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Storage Provider (KSP):<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Key Storage Providers (KSP) enable&nbsp;to storage&nbsp;and retrieval of&nbsp;keys. For instance, if you would like to generate a new private key for your certificate authority (CA) and add the Microsoft Active Directory Certificate Services (AD CS) role to your Windows server, you could select the KSP that manages&nbsp;key storage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A wide variety of storage options, including&nbsp;hardware-based storage devices, cloud-based storage, and software-based solutions, are frequently provided by key storage providers. To further secure the private keys, they might additionally provide extra security measures like multi-factor authentication and encryption.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Steps to create a Code Signing Certificate using the Key Storage Provider<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this illustration, we&#8217;ll make use of the command-line <strong>certreq utility<\/strong>. If you want a UI experience, you can access all the&nbsp;methods described here using the Certificate Manager (<strong>certmgr.msc<\/strong>) MMC snap-in.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configure the Key Storage Provider<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Generally, the KSP will make use of slot 1&#8217;s factory authentication key. First Configure the KSP with the required key ID and password if usage of a different authentication key is requested or the factory authentication key is no longer valid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It should be noted that the specified authentication key has at least one of the capacities that follow: generate-asymmetric-key, sign-pkcs, &amp; delegated capability sign-pkcs. Add the exportable under-wrap delegated capability if you would like the created key to be exportable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example of Authentication Key<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Generate a new authentication key that can produce exportable asymmetric keys using KSP.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>yubihsm&gt; put authkey 0 0 \"GenerateKey\" 1 generate-asymmetric-key,sign-pkcs sign-pkcs,exportable-under-wrap password\nStored Authentication key 0x0e32<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Generate the Certificate Request Configuration file<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To define your request, you must provide <strong>a.inf<\/strong> file as input to the<strong> certreq<\/strong> utility.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Generate&nbsp;a certificate request file.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pass the certificate request configuration file to certreq as the input file argument&nbsp;after you&#8217;ve finished creating it, for example:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>certreq -new sign.inf sign.req<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Sign\/authenticate the Certificate Request<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The certificate request in the previous instance was written to sign.req. Grab the file &amp; submit&nbsp;your CA with its contents for signature. Once the file has been signed, install the certificate in the personal store by opening it (for example, sign.crt).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sign utilizing Signtool<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Make use of the following command to sign your binary after opening a prompt with signtool in the path.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; signtool sign &lt;binary name&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It can be required to determine your code signing certificate with hash if you have many&nbsp;certificates available. If this happens, the signtool will display valid certificates list. Just restart the sign tool using the certificate&#8217;s sha1 hash:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; signtool sign \/sha1 &lt;certificate hash&gt; &lt;binary name&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It might be necessary to manually hook the certificate to the private key while importing the certificate for the very first time on a new machine. As Windows doesn&#8217;t instantly create a connection between the key and the certificate since they are not stored together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make use of certutil utility&nbsp;offered by Windows to connect the YubiHSM private key to the certificate after importing it into your personal store.<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; certutil -repairstore my &lt;certificate hash&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The signtool error messages are frequently ineffective in determining why the signing process failed. You may use some commands to evaluate and identify the root problem in these circumstances.<\/li>\n\n\n\n<li>Use the \/v &amp; \/debug arguments when using signtool to receive a&nbsp;more comprehensive output. The response shown in the example added below is one you could get if the certificate is installed but the YubiHSM is disconnected or improperly configured.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; signtool sign \/v \/debug &lt;binary name&gt;\nAfter EKU filter, 1 certs were left.\nAfter expiry filter, 1 certs were left.\nAfter Hash filter, 1 certs were left.\nAfter Private Key filter, 0 certs were left.\nSignTool Error: No certificates were found that met all the given criteria.\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To verify the import certificate&#8217;s authenticity, use <strong>certutil<\/strong>.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; certutil -verifystore my &lt;certificate hash&gt;\n================ Certificate 0 ================\nSerial Number: 029fe48291dd587c1e6f42bca341291\n...\nCertificate is valid.\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To verify that the KSP has been installed successfully, use <strong>certutil<\/strong>. One of the entries&nbsp;with zero issues should be Provider Name: YubiHSM Key Storage Provider.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; certutil -csplist\nProvider Name: YubiHSM Key Storage Provider<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To determine whether the key is available through the storage provider, use <strong>certutil<\/strong>. For further details, you may also add the -v option.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; certutil -csp \"YubiHSM Key Storage Provider\" -key\nYubiHSM Key Storage Provider:\ntq-75c94c4b-5e40-4e44-bcd2-ee3330d4942f\nRSA\n  AT_SIGNATURE<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For dumping the certificate information, use <strong>certutil<\/strong>. This command might reflect Could not&nbsp;find the private key or certificate needed for decryption. if <strong>certutil <\/strong>-repair store&nbsp;hasn&#8217;t been run yet, while using a new PC.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>&gt; certutil -store my &lt;certificate hash&gt;\n================ Certificate 0 ================\nSerial Number: 029fe48291dd587c1e6f42bca341291\n...\nPrivate key is NOT exportable.\nSignature test passed.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In conclusion,&nbsp;utilizing&nbsp;the Key Storage Provider&nbsp;to create a code signing certificate is quite a simple&nbsp;procedure&nbsp;that provides additional security and protection&nbsp;to end users&#8217;&nbsp;software products. Customers&nbsp;can be sure that their&nbsp;software is&nbsp;secure and&nbsp;trustworthy,&nbsp;and their trust will enhance&nbsp;by working with a reliable certification authority&nbsp;and following&nbsp;industry standard best practices.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code Signing Resources to Understand<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/certera.com\/blog\/how-to-use-yubikey-in-code-signing-certificate\">How to use YubiKey in Code Signing<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/certera.com\/blog\/what-is-fips-140-2-how-to-be-fips-compliant\">What is FIPS 140-2?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/certera.com\/blog\/what-is-token-signing-in-code-signing\">What is Token Signing?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/certera.com\/blog\/yubikey-key-generation-and-attestation\">Yubikey Key Generation and Attestation for FIPS 140-2<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The following procedure will demonstrate how to generate a Code Signing Certificate request using a key generated and stored in the YubiHSM 2 using the Key Storage Provider (KSP). You can use the Microsoft &#8220;signtool tool&#8221; to digitally certify Windows binaries with this code signing certificate. Let&#8217;s take a closer look at the foundational concepts<span class=\"morelink d-block mt-3\"><a href=\"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":1055,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[53,51],"class_list":["post-1039","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-signing","tag-code-signing","tag-yubikey","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Create Code Signing Certificate with Key Storage Provider<\/title>\n<meta name=\"description\" content=\"Learn how to create a Code Signing Certificate with a Key Storage Provider for secure software distribution; follow our step-by-step guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create Code Signing Certificate using the Key Storage Provider\" \/>\n<meta property=\"og:description\" content=\"Learn how to create a Code Signing Certificate with a Key Storage Provider for secure software distribution; follow our step-by-step guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/\" \/>\n<meta property=\"og:site_name\" content=\"EncryptedFence by Certera - Web &amp; Cyber Security Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/certeraLLC\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-07T12:21:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-12T10:55:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/06\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"620\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Janki Mehta\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@certera_llc\" \/>\n<meta name=\"twitter:site\" content=\"@certera_llc\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Janki Mehta\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/\"},\"author\":{\"name\":\"Janki Mehta\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#\\\/schema\\\/person\\\/e5a476aa90d9e02260ebfe4b0bf046b7\"},\"headline\":\"Create Code Signing Certificate using the Key Storage Provider\",\"datePublished\":\"2023-06-07T12:21:04+00:00\",\"dateModified\":\"2023-10-12T10:55:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/\"},\"wordCount\":1007,\"publisher\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/certera.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp\",\"keywords\":[\"code signing\",\"yubikey\"],\"articleSection\":[\"Code Signing\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2023\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/\",\"url\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/\",\"name\":\"Create Code Signing Certificate with Key Storage Provider\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/certera.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp\",\"datePublished\":\"2023-06-07T12:21:04+00:00\",\"dateModified\":\"2023-10-12T10:55:05+00:00\",\"description\":\"Learn how to create a Code Signing Certificate with a Key Storage Provider for secure software distribution; follow our step-by-step guide.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/#primaryimage\",\"url\":\"https:\\\/\\\/certera.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp\",\"contentUrl\":\"https:\\\/\\\/certera.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp\",\"width\":960,\"height\":620,\"caption\":\"Create Code signing certificate with Key Storage Provider\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/create-code-signing-certificate-using-key-storage-provider\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/certera.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Code Signing Certificate using the Key Storage Provider\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/certera.com\\\/blog\\\/\",\"name\":\"EncryptedFence by Certera - Web & Cyber Security Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#organization\"},\"alternateName\":\"Certera's EncryptedFence Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/certera.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#organization\",\"name\":\"Certera\",\"url\":\"https:\\\/\\\/certera.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/certera.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/logo-encryptedfence.svg\",\"contentUrl\":\"https:\\\/\\\/certera.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/logo-encryptedfence.svg\",\"caption\":\"Certera\"},\"image\":{\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/certeraLLC\\\/\",\"https:\\\/\\\/x.com\\\/certera_llc\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/certera-llc\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/certera.com\\\/blog\\\/#\\\/schema\\\/person\\\/e5a476aa90d9e02260ebfe4b0bf046b7\",\"name\":\"Janki Mehta\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1fba817ef81065f1393461fc3a0d85c40f2cc826919819ea4df4b12d76566e62?s=96&d=https%3A%2F%2Fcertera.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2Fhttps-vs-sftp-jpg.webp&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1fba817ef81065f1393461fc3a0d85c40f2cc826919819ea4df4b12d76566e62?s=96&d=https%3A%2F%2Fcertera.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2Fhttps-vs-sftp-jpg.webp&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1fba817ef81065f1393461fc3a0d85c40f2cc826919819ea4df4b12d76566e62?s=96&d=https%3A%2F%2Fcertera.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2Fhttps-vs-sftp-jpg.webp&r=g\",\"caption\":\"Janki Mehta\"},\"description\":\"Janki Mehta is a passionate Cyber-Security Enthusiast who keenly monitors the latest developments in the Web\\\/Cyber Security industry. She puts her knowledge into practice and helps web users by arming them with the necessary security measures to stay safe in the digital world.\",\"sameAs\":[\"https:\\\/\\\/certerassl.com\\\/\"],\"url\":\"https:\\\/\\\/certera.com\\\/blog\\\/author\\\/certerabguser\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Create Code Signing Certificate with Key Storage Provider","description":"Learn how to create a Code Signing Certificate with a Key Storage Provider for secure software distribution; follow our step-by-step guide.","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:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/","og_locale":"en_US","og_type":"article","og_title":"Create Code Signing Certificate using the Key Storage Provider","og_description":"Learn how to create a Code Signing Certificate with a Key Storage Provider for secure software distribution; follow our step-by-step guide.","og_url":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/","og_site_name":"EncryptedFence by Certera - Web &amp; Cyber Security Blog","article_publisher":"https:\/\/www.facebook.com\/certeraLLC\/","article_published_time":"2023-06-07T12:21:04+00:00","article_modified_time":"2023-10-12T10:55:05+00:00","og_image":[{"width":960,"height":620,"url":"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/06\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp","type":"image\/jpeg"}],"author":"Janki Mehta","twitter_card":"summary_large_image","twitter_creator":"@certera_llc","twitter_site":"@certera_llc","twitter_misc":{"Written by":"Janki Mehta","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/#article","isPartOf":{"@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/"},"author":{"name":"Janki Mehta","@id":"https:\/\/certera.com\/blog\/#\/schema\/person\/e5a476aa90d9e02260ebfe4b0bf046b7"},"headline":"Create Code Signing Certificate using the Key Storage Provider","datePublished":"2023-06-07T12:21:04+00:00","dateModified":"2023-10-12T10:55:05+00:00","mainEntityOfPage":{"@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/"},"wordCount":1007,"publisher":{"@id":"https:\/\/certera.com\/blog\/#organization"},"image":{"@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/#primaryimage"},"thumbnailUrl":"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/06\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp","keywords":["code signing","yubikey"],"articleSection":["Code Signing"],"inLanguage":"en-US","copyrightYear":"2023","copyrightHolder":{"@id":"https:\/\/certera.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/","url":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/","name":"Create Code Signing Certificate with Key Storage Provider","isPartOf":{"@id":"https:\/\/certera.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/#primaryimage"},"image":{"@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/#primaryimage"},"thumbnailUrl":"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/06\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp","datePublished":"2023-06-07T12:21:04+00:00","dateModified":"2023-10-12T10:55:05+00:00","description":"Learn how to create a Code Signing Certificate with a Key Storage Provider for secure software distribution; follow our step-by-step guide.","breadcrumb":{"@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/#primaryimage","url":"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/06\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp","contentUrl":"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/06\/create-code-signing-certificate-with-key-sorage-provider-jpg.webp","width":960,"height":620,"caption":"Create Code signing certificate with Key Storage Provider"},{"@type":"BreadcrumbList","@id":"https:\/\/certera.com\/blog\/create-code-signing-certificate-using-key-storage-provider\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/certera.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Create Code Signing Certificate using the Key Storage Provider"}]},{"@type":"WebSite","@id":"https:\/\/certera.com\/blog\/#website","url":"https:\/\/certera.com\/blog\/","name":"EncryptedFence by Certera - Web & Cyber Security Blog","description":"","publisher":{"@id":"https:\/\/certera.com\/blog\/#organization"},"alternateName":"Certera's EncryptedFence Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/certera.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/certera.com\/blog\/#organization","name":"Certera","url":"https:\/\/certera.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/certera.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/08\/logo-encryptedfence.svg","contentUrl":"https:\/\/certera.com\/blog\/wp-content\/uploads\/2023\/08\/logo-encryptedfence.svg","caption":"Certera"},"image":{"@id":"https:\/\/certera.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/certeraLLC\/","https:\/\/x.com\/certera_llc","https:\/\/www.linkedin.com\/company\/certera-llc\/"]},{"@type":"Person","@id":"https:\/\/certera.com\/blog\/#\/schema\/person\/e5a476aa90d9e02260ebfe4b0bf046b7","name":"Janki Mehta","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1fba817ef81065f1393461fc3a0d85c40f2cc826919819ea4df4b12d76566e62?s=96&d=https%3A%2F%2Fcertera.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2Fhttps-vs-sftp-jpg.webp&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1fba817ef81065f1393461fc3a0d85c40f2cc826919819ea4df4b12d76566e62?s=96&d=https%3A%2F%2Fcertera.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2Fhttps-vs-sftp-jpg.webp&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1fba817ef81065f1393461fc3a0d85c40f2cc826919819ea4df4b12d76566e62?s=96&d=https%3A%2F%2Fcertera.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F02%2Fhttps-vs-sftp-jpg.webp&r=g","caption":"Janki Mehta"},"description":"Janki Mehta is a passionate Cyber-Security Enthusiast who keenly monitors the latest developments in the Web\/Cyber Security industry. She puts her knowledge into practice and helps web users by arming them with the necessary security measures to stay safe in the digital world.","sameAs":["https:\/\/certerassl.com\/"],"url":"https:\/\/certera.com\/blog\/author\/certerabguser\/"}]}},"_links":{"self":[{"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/posts\/1039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/comments?post=1039"}],"version-history":[{"count":20,"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/posts\/1039\/revisions"}],"predecessor-version":[{"id":1901,"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/posts\/1039\/revisions\/1901"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/media\/1055"}],"wp:attachment":[{"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/media?parent=1039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/categories?post=1039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/certera.com\/blog\/wp-json\/wp\/v2\/tags?post=1039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}