{"id":344,"date":"2024-02-09T00:58:44","date_gmt":"2024-02-09T00:58:44","guid":{"rendered":"https:\/\/www.snoopdos.com\/blog\/?p=344"},"modified":"2024-02-09T00:58:44","modified_gmt":"2024-02-09T00:58:44","slug":"resolving-windows-2008-ssl-problems","status":"publish","type":"post","link":"https:\/\/www.snoopdos.com\/blog\/resolving-windows-2008-ssl-problems\/","title":{"rendered":"Resolving Windows 2008 SSL problems"},"content":{"rendered":"\n<p>While performing some maintenance and updates on an ancient Windows 2008 Server VM, I upgraded it to Service Pack 2, in an attempt to resolve various ongoing issues.<\/p>\n\n\n\n<p>Shortly afterwards, I discovered Windows Update was no longer working; it gave an obscure failure code and all the usual efforts to revive it, such as <a rel=\"noreferrer noopener\" href=\"https:\/\/learn.microsoft.com\/en-us\/troubleshoot\/windows-client\/deployment\/additional-resources-for-windows-update#how-do-i-reset-windows-update-components\" target=\"_blank\">flushing the software distribution cache<\/a>, were unsuccessful. No matter &#8212; Windows 2008 Server is out of support anyway, so there are unlikely to be any important updates, right?<\/p>\n\n\n\n<p>Some time later, I discovered that the recently upgraded<a href=\"https:\/\/www.pscs.co.uk\/products\/vpop3\/index\" target=\"_blank\" rel=\"noreferrer noopener\"> VPOP3 mail server,<\/a> running on the same machine, was complaining that it couldn&#8217;t access its activation server to verify its license. This wasn&#8217;t a critical failure, but it resulted in reduced functionality.<\/p>\n\n\n\n<p>Checking the mail server logs revealed this error message:<\/p>\n\n\n\n<p>    &#8220;<code>Server certificate verification failed. Connection aborted\" Windows code 0x80090302<\/code><\/p>\n\n\n\n<p>Hmm. I used Wireshark to monitor the network traffic when VPOP3 started up, and could see it issuing a HTTPS request to the remote activation server. However, the session ended immediately after the initial handshake &#8212; clearly something was amiss. I verified that Chrome running on the same machine could access the Activation website successfully; the issue appeared to be with the Windows 2008 SSL libraries.<\/p>\n\n\n\n<p>A check of the Windows Application event log revealed lots of repeated CAPI2 error events every 10 minutes:<\/p>\n\n\n\n<p><code>Failed extract of third-party root list from auto update cab at: <a href=\"http:\/\/www.download.windowsupdate.com\/msdownload\/update\/v3\/static\/trustedr\/en\/authrootstl.cab\">http:\/\/www.download.windowsupdate.com\/msdownload\/update\/v3\/static\/trustedr\/en\/authrootstl.cab<\/a> with error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.<\/code><\/p>\n\n\n\n<p>Next step was to visit the Applications and Services Logs in Event Viewer, then navigate to Microsoft \/ Windows \/ CAPI2 and right-click on the Operational Log to Enable CAPI2 logging. After doing so, a lot more detail about CAPI2 activity started to appear. (It&#8217;s a good idea to also increase the CAPI2 log size to 4096 Kb in Properties, as the default 1024 Kb can fill up very quickly.)<\/p>\n\n\n\n<p>Repeating the activation test with this additional debugging enabled revealed a new error:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"529\" height=\"461\" src=\"https:\/\/www.snoopdos.com\/blog\/wp-content\/uploads\/2024\/02\/image.png\" alt=\"\" class=\"wp-image-345\"\/><\/figure><\/div>\n\n\n\n<p>Very odd &#8212; apparently the Microsoft Root Certificate Authority 2010 was now considered untrusted. Just in case it had become corrupted, I used <strong>certmgr.msc<\/strong> to export a copy of this from another, newer machine and import it to the Windows 2008 Server instance, but this made no difference.<\/p>\n\n\n\n<p>After some more research, I discovered John Thaller&#8217;s useful <strong><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/JohnTHaller\/RootCertificateUpdatesForLegacyWindows\" target=\"_blank\">Root Certificate Updates For Legacy Windows<\/a><\/strong> github repository. Surely this would sort things out? Unfortunately, while it installed without issue, the problem remained.<\/p>\n\n\n\n<p>Eventually, after a lot of further searching, I came across a <a href=\"https:\/\/support.microsoft.com\/en-us\/topic\/2019-sha-2-code-signing-support-requirement-for-windows-and-wsus-64d1c82d-31ee-c273-3930-69a4cde8e64f\">Microsoft article from 2019<\/a> which described a plan to move Windows Update Services from SHA-1 signatures (now considered insecure) to SHA-2. A key part of this plan was that after August 2020, the Windows root certificates would no longer validate SHA-1 signatures, and all Windows Update Services would require SHA-2.<\/p>\n\n\n\n<p>However, Windows 2008 Server SP2 doesn&#8217;t actually support SHA-2 verification. No problem &#8211; Microsoft were pushing an update that would add the needed SHA-2 support, so once that update was installed ahead of the transition deadline, everything would be good.<\/p>\n\n\n\n<p>Christmas 2023 turned out to be NOT ahead of the transition deadline (missed it by more than three years, in fact) which explains why the server couldn&#8217;t access Windows Updates any more. As VPOP3&#8217;s Activation server appears to rely on a Microsoft certificate chain for authentication, it too fell victim to the lack of SHA-2 support.<\/p>\n\n\n\n<p>Fortunately,  there is a straightforward solution, as Microsoft describe in a follow-up article on <a rel=\"noreferrer noopener\" href=\"https:\/\/support.microsoft.com\/en-us\/topic\/windows-update-sha-1-based-endpoints-discontinued-for-older-windows-devices-10b58bd9-5ba2-b23d-498b-139ce5c709af\" target=\"_blank\">How to Update Windows Devices to SHA-2.<\/a> Microsoft made available a standalone <a rel=\"noreferrer noopener\" href=\"https:\/\/catalog.update.microsoft.com\/search.aspx?q=kb4474419\" target=\"_blank\">SHA-2 update download<\/a> page that has the correct installation file for a variety of different scenarios. Pick the one that matches your system, download and install, reboot, and you&#8217;re all set.<\/p>\n\n\n\n<p>And indeed, after doing just that, everything started working normally once again!<\/p>\n\n\n\n<p>All&#8217;s well that ends well, then. However, I do feel there was a missed opportunity here for the CAP2 logging to be a bit more explicit about the fact that it was the lack of SHA-2 signing support in the OS, or at least the lack of a verifiable signature in the provided certificate, that was the root cause of the failure &#8211; that would have saved a lot of time!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>While performing some maintenance and updates on an ancient Windows 2008 Server VM, I upgraded it to Service Pack 2, in an attempt to resolve various ongoing issues. Shortly afterwards, I discovered Windows Update was no longer working; it gave an obscure failure code and all the usual efforts to revive it, such as flushing &hellip; <a href=\"https:\/\/www.snoopdos.com\/blog\/resolving-windows-2008-ssl-problems\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Resolving Windows 2008 SSL problems<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-344","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/posts\/344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/comments?post=344"}],"version-history":[{"count":1,"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":346,"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions\/346"}],"wp:attachment":[{"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/media?parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/categories?post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.snoopdos.com\/blog\/wp-json\/wp\/v2\/tags?post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}