{"id":3514,"date":"2020-07-06T05:16:28","date_gmt":"2020-07-06T05:16:28","guid":{"rendered":"http:\/\/truelogic.org\/wordpress\/?p=3514"},"modified":"2020-07-06T05:16:31","modified_gmt":"2020-07-06T05:16:31","slug":"installing-a-code-signing-certificate-for-windows-applications","status":"publish","type":"post","link":"https:\/\/truelogic.org\/wordpress\/2020\/07\/06\/installing-a-code-signing-certificate-for-windows-applications\/","title":{"rendered":"Installing A Code Signing Certificate for Windows Applications"},"content":{"rendered":"\n<p>For executable applications created under Windows, it is often desirable to sign the executable with a code signing certificate. This helps end-users of the application to feel safe about installing the application. Given below is the process of obtaining a code signing certificate. The process is virtually the same regardless of which provider generates the certificate. Be sure to buy a code-signing certificate and not a domain SSL certificate as it is easy to get confused between the two.<\/p>\n\n\n\n<p><strong>1.GENERATE A CSR FROM A WINDOWS MACHINE<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>On the machine where the certificate is to be installed we need to create a CSR request.<\/li><li>From Start Menu go to <strong>Control Panel-&gt;Manager User Certificates<\/strong><\/li><li>In the MMC left pane expand <strong>Certificates Current User-&gt;Personal-&gt;Certificates<\/strong><\/li><li>Right click <strong>Certificates <\/strong>and click on <strong>All Tasks-&gt;Advanced Operations-&gt;Create Custom Request<\/strong><\/li><li>Click <strong>Next<\/strong><\/li><li>In Certificate Enrollment screen select <strong>Proceed without enrollment policy<\/strong> and click <strong>Next<\/strong><\/li><li>Keep <strong>Template <\/strong>as (No Template) CNG Key and <strong>Request Format <\/strong>as PKCS #10. Click <strong>Next<\/strong><\/li><li>Click the <strong>Details <\/strong>option and then click on <strong>Properties<\/strong><\/li><li>In the Properties popup, under <strong>General <\/strong>tab enter a value for <strong>Friendly Name.<\/strong> It could be anything.<\/li><li>Under <strong>Private Key <\/strong>tab, under <strong>Key Options<\/strong> set Key size as 2048. Check <strong>Make private key exportable. <\/strong>Under <strong>Select Hash Algorithm <\/strong>set <strong>Hash Algorithm <\/strong>as sha256<\/li><li>Under <strong>Subject <\/strong>tab, under <strong>Subject name, <\/strong>the following values need to be filled:<ol><li>Common Name &#8211; This has to be same value as Organization name (not a domain name)<\/li><li>Country &#8211; two letter ISO code for the country<\/li><li>Email &#8211; email id to which the certificate will be issued<\/li><li>Organization &#8211; name of organization to which it will be issued<\/li><li>State &#8211; State name<\/li><li>Street Address &#8211; address of the organisation<\/li><\/ol><\/li><li>Click <strong>Ok<\/strong><\/li><li>Click <strong>Next<\/strong><\/li><li>Click <strong>Browse <\/strong>to select the location of the file which will be created eg. request.csr Keep <strong>File format<\/strong> as Base 64. Click <strong>Finish<\/strong><\/li><li>This will create the csr file on the selected path in the disk.<\/li><\/ol>\n\n\n\n<p><strong>2.SUBMITTING THE CSR REQUEST<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The certificate provider will send a link to fill up a form and submit the details.&nbsp;<\/li><li>The following fields are needed to be filled:<\/li><\/ol>\n\n\n\n<p><em>Individual or Organisation: <\/em>&lt;choose between one><\/p>\n\n\n\n<p><em>Primary contact: <\/em>&lt;put email id here><\/p>\n\n\n\n<p><em>Org. name: <\/em>&lt;name of the organisation><\/p>\n\n\n\n<p><em>Address: <\/em>&lt;address of the organisation><\/p>\n\n\n\n<p><em>City: <\/em>&lt;city of organisation><\/p>\n\n\n\n<p><em>Country:<\/em> &lt;country or organisation><\/p>\n\n\n\n<p><em>Postal code: <\/em>&lt;postal code or zip code of organisation><\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.Use Internet Explorer 11 or later in Windows to fill up the form (not Edge). For the CSR field, selected the option to generate it from the browser instead of manual pasting.&nbsp;<\/p>\n\n\n\n<p>\u00a0\u00a0\u00a0\u00a0\u00a04.Once that is done, submit the form.<\/p>\n\n\n\n<p><strong>3.INSTALLING THE CERTIFICATE<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The certificate provider will send a confirmation mail with a login link to access the certificate. Use Internet Explorer 11 or later in Windows to access the link.<\/li><li>Once the login is successful, the browser will show a prompt asking for permission to allow the website to install a certificate. Click Ok<\/li><li>This will install the certificate in the Windows system.<\/li><\/ol>\n\n\n\n<p><strong>4.EXPORTING THE CERTIFICATE AS PFX<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>In order to use the certificate on other machines, we need to export it as a &nbsp;&nbsp;&nbsp; PFX file. The process is given below:<\/li><li>On the machine where the certificate is to be installed we need to create a CSR request.<\/li><li>From Start Menu go to <strong>Control Panel-&gt;Manager User Certificates<\/strong><\/li><li>In the MMC left pane expand <strong>Certificates Current User-&gt;Personal-&gt;Certificates-&gt;Personal-&gt;Certificates<\/strong><\/li><li>In the right pane, right click on the certificate and click <strong>All Tasks-&gt;Export<\/strong><\/li><li>Click <strong>Next<\/strong><\/li><li>Check <strong>Yes, export the private key <\/strong>and click <strong>Next<\/strong><\/li><li>Check <strong>Personal Information Exchange -PKCS #12 (PFX) <\/strong>and click <strong>Next<\/strong><\/li><li>Enter and confirm a password for the certificate and click <strong>Next<\/strong><\/li><li>Browse and select a file name for the exported certificate and click <strong>Next<\/strong><\/li><li>Click <strong>Finish<\/strong><\/li><li>This will create the PFX file which can be used for code signing.<\/li><\/ol>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>For executable applications created under Windows, it is often desirable to sign the executable with a code signing certificate. This helps end-users of the application <a class=\"mh-excerpt-more\" href=\"https:\/\/truelogic.org\/wordpress\/2020\/07\/06\/installing-a-code-signing-certificate-for-windows-applications\/\" title=\"Installing A Code Signing Certificate for Windows Applications\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":3515,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-3514","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows"],"_links":{"self":[{"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/posts\/3514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/comments?post=3514"}],"version-history":[{"count":2,"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/posts\/3514\/revisions"}],"predecessor-version":[{"id":3517,"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/posts\/3514\/revisions\/3517"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/media\/3515"}],"wp:attachment":[{"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/media?parent=3514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/categories?post=3514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/truelogic.org\/wordpress\/wp-json\/wp\/v2\/tags?post=3514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}