{"id":18341,"date":"2020-04-09T11:04:17","date_gmt":"2020-04-09T19:04:17","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/powershell\/?p=18341"},"modified":"2022-04-21T12:06:40","modified_gmt":"2022-04-21T20:06:40","slug":"powershell-gallery-tls-support","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/powershell-gallery-tls-support\/","title":{"rendered":"PowerShell Gallery TLS Support"},"content":{"rendered":"<h1 class=\"rich-diff-level-zero\"><span style=\"color: inherit; font-family: inherit; font-size: 3rem;\">Summary<\/span><\/h2>\n<p class=\"rich-diff-level-zero\">To provide the best-in-class encryption to our customers, the PowerShell Gallery has deprecated Transport Layer Security (TLS) versions 1.0 and 1.1 as of April 2020.<\/p>\n<p class=\"rich-diff-level-zero\">The Microsoft TLS 1.0 implementation has no known security vulnerabilities. But because of the potential for future protocol downgrade attacks and other TLS vulnerabilities, we are discontinuing support for TLS 1.0 and 1.1 in the PowerShell Gallery.<\/p>\n<p class=\"rich-diff-level-zero\">For information about how to remove TLS 1.0 and 1.1 dependencies, see\u00a0<a class=\"rich-diff-level-one\" href=\"https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=55266\" rel=\"nofollow\">the whitepaper Solving the TLS 1.0 problem<\/a>.<\/p>\n<h2 class=\"rich-diff-level-zero\">More information<\/h2>\n<p class=\"rich-diff-level-zero\">As of April 2020, TLS 1.2 is set to be the default for the PowerShell Gallery.<\/p>\n<p class=\"rich-diff-level-zero\">Please note that TLS 1.0 and 1.1 was already unsupported, but the actual deprecation when PowerShell Gallery will now stop accepting any connections using TLS 1.0 and 1.1 has occurred.<\/p>\n<p class=\"rich-diff-level-zero\">We recommend that all client-server combinations use TLS 1.2 (or a later version) to maintain connection to the PowerShell Gallery.<\/p>\n<h2 class=\"rich-diff-level-zero\">Mitigation<\/h2>\n<p class=\"rich-diff-level-zero\">To mitigate this chance we have released a minor update to PowerShellGet which will allow you to continue to interact with the PowerShell Gallery. To install this run:<\/p>\n<p class=\"rich-diff-level-zero\"><code class=\"rich-diff-level-one\"><\/code><\/p>\n<pre class=\"lang:ps decode:true\">[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 \r\nInstall-Module PowerShellGet -RequiredVersion 2.2.4 -SkipPublisherCheck<\/pre>\n<p>Note:<\/p>\n<p>This in this version of PowerShellGet when a call is made to the PowerShell Gallery, PowerShellGet will save the user&#8217;s current security protocol setting, then it it&#8217;ll change the security protocol to TLS 1.2 (by specifying [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12), after the action is taken by the cmdlet it will change the user&#8217;s security protocol back to what it was before the cmdlet was run.<\/p>\n<h2 class=\"rich-diff-level-zero\">Errors I Might See<\/h2>\n<p class=\"rich-diff-level-zero\">If you are running an older version of TLS and try to interact with the PowerShell Gallery you may see error messages like:<\/p>\n<h3 class=\"rich-diff-level-zero\">Publishing<\/h3>\n<pre class=\"lang:ps decode:true\">+ ...             Publish-PSArtifactUtility @PublishPSArtifactUtility_Param ...\r\n+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n+ CategoryInfo          : InvalidOperation: (:) [Write-Error], WriteErrorException\r\n+ FullyQualifiedErrorId : FailedToCreateCompressedModule,Publish-PSArtifactUtility<\/pre>\n<h3 class=\"rich-diff-level-zero\">Installing<\/h3>\n<pre class=\"lang:ps decode:true\">+ ...            $null = PackageManagement\\Install-Package @PSBoundParameters + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \r\n+ CategoryInfo : ResourceUnavailable: (C:\\Users\\T-Ncho...anagement.nupkg:String) [Install-Package], Exception \r\n+ FullyQualifiedErrorId : PackageFailedInstallOrDownload,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage<\/pre>\n<h2 class=\"rich-diff-level-zero\">Concerns and Support<\/h2>\n<p class=\"rich-diff-level-zero\">Please open an issue in\u00a0<a class=\"rich-diff-level-one\" href=\"https:\/\/github.com\/powershell\/powershellgallery\">our GitHub repository<\/a>\u00a0or contact our gallery support channel through\u00a0<a class=\"rich-diff-level-one\" href=\"mailto:cgadmin@microsoft.com\">cgadmin@microsoft.com<\/a>\u00a0if you have any concerns, challenges, or are unable to upgrade to TLS 1.2 or above.<\/p>\n<p>&nbsp;<\/p>\n<p class=\"rich-diff-level-zero\">Sydney Smith<\/p>\n<p class=\"rich-diff-level-zero\">PowerShell Team<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summary To provide the best-in-class encryption to our customers, the PowerShell Gallery has deprecated Transport Layer Security (TLS) versions 1.0 and 1.1 as of April 2020. The Microsoft TLS 1.0 implementation has no known security vulnerabilities. But because of the potential for future protocol downgrade attacks and other TLS vulnerabilities, we are discontinuing support for [&hellip;]<\/p>\n","protected":false},"author":2299,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[259,274],"class_list":["post-18341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-powershell-gallery","tag-powershellget"],"acf":[],"blog_post_summary":"<p>Summary To provide the best-in-class encryption to our customers, the PowerShell Gallery has deprecated Transport Layer Security (TLS) versions 1.0 and 1.1 as of April 2020. The Microsoft TLS 1.0 implementation has no known security vulnerabilities. But because of the potential for future protocol downgrade attacks and other TLS vulnerabilities, we are discontinuing support for [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/18341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/2299"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=18341"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/18341\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=18341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=18341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=18341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}