Støtte for TLS systemet standard versjoner inkludert i .NET Framework 2.0 SP2 på Windows Vista SP2 og Server 2008 SP2

.NET framework versjon 2.0 Service Pack 2 (SP2) og tidligere versjoner hardkodet bruk av Secure Sockets Layer (SSL) v3.0 og Transport Layer Security (TLS) v1.0 som standard med mindre en annen protokollversjon ble angitt av .NET-program. Denne oppdateringen for .NET Framework 2.0 SP2 på Windows Vista SP2 og Windows Server 2008 SP2 legger til muligheten til å bruke SSL- og TLS-standarder som leveres av operativsystemet.

Løsning

Nedlastingsinformasjon

Følgende filer er tilgjengelige for nedlasting fra Microsoft Download Center:

Download Last ned pakken x86-baserte nå.

Download Last ned pakken x64-baserte nå.

Download Last ned pakken for IA64-baserte nå.

Vi har gjort følgende forbedringer i dette området:

  • Følgende nøkler kan angis til å bruke operativsystemet registret som standard for SSL- og TLS i stedet for en hardkodet .NET Framework standarder for et administrert program som kjører på datamaskinen.

    • For 64-biters operativsystemer:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

      [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    • For 32-biters operativsystemer:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    Obs! Hvis programmet har satt ServicePointManager.SecureProtocol gjennom config filer til en bestemt verdi eller i koden, eller bruker SslStream.AuthenticateAs* APIer til å angi en bestemt SslProtocols -opplisting, forekommer registret innstillingen atferden ikke.

  • I tillegg har vi lagt til SslProtocolsExtensions -opplistingen som du kan bruke som et alternativ for å angi TLS v1.2, TLS v1.1, i tillegg til operativsystemet standarder for egenskapen ServicePointManager.SecurityProtocol når .NET framework versjon 2.0 SP2-målretting. (Se delen Utvikler retningslinjer for informasjon om hvordan du bruker utvidelsene.)

    Obs! Windows Vista SP2 og Windows Server 2008 SP2 støtter ikke Transport Layer Security (TLS)-protokoll versjoner som er nyere enn 1.0. Behandlede .NET Framework 2.0 SP2-programmer som kjører på Windows Vista SP2 eller Windows Server 2008 SP2 kan ikke bruke TLS 1.2 eller TLS 1.1, selv om disse protokollene er angitt i egenskapen ServicePointManager.SecurityProtocol .


Hvis du vil ha mer informasjon om hvordan du laster ned Microsoft-støttefiler, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

119591 hvordan du ned Microsoft-støttefiler fra elektroniske tjenesterMicrosoft har søkt etter virus i denne filen. Microsoft brukte det nyeste antivirusprogrammet som var tilgjengelig den datoen filen ble lagt ut. Filen lagres på sikkerhetsforbedrede servere som bidrar til å hindre uautoriserte endringer i filen.

Veiledning for utviklere

Definisjonen av de nye utvidelsene er i følgende filer:

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    using System.Security.Authentication;
    public static class SecurityProtocolTypeExtensions
    {
    public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;
    public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;
    public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;
    }
    }

  • SslProtocolsExtensions.csnamespace System.Security.Authentication
    {
    public static class SslProtocolsExtensions
    {
    public const SslProtocols Tls12 = (SslProtocols)0x00000C00;
    public const SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

Hvis du vil ha støtte for TLS v1.2, inkludere kildefilene i prosjektet, og angi deretter protokollversjonen ved hjelp av følgende metoder:

  • Programmer som bruker ServicePointManager-baserte APIer kan angi protokollen ved hjelp av følgende:

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • Programmer som bruker SslStream AuthenticateAsClient (streng, X509CertificateCollection, SslProtocols, boolsk) -overlasten kan angi verdien SslProtocols som SslProtocolsExtensions. Tls12.

Hvis registerinnstillingen som er nevnt i det første avsnittet er angitt, og SslProtocols -verdi er angitt i programmet som SslProtocols.None, systemet standardvirkemåte som velges, avhenger av Windows-versjonen.

Også, når du endrer programmet koden å aktivere støtte for TLS v1.2 med .NET Framework 3.5 SP1, må du kontrollere at du løser følgende unntak på datamaskiner som denne oppdateringen ikke er distribuert:

  1. Hvis hurtigreparasjonen ikke er installert, ServicePointManager-baserte APIer (HTTP, FTP, SMTP) vil iverksette "System.NotSupportedException: den forespurte sikkerhetsprotokollen støttes ikke" når programmet kaller ServicePointManager.SecurityProtocol til å angi den nye verdien.

  2. Hvis hurtigreparasjonen ikke er installert, SslStream-baserte APIer kvitter unntak når de kaller opp en av APIene AuthenticateAs *:

    System.ArgumentException: Den angitte verdien er ikke gyldig i 'SslProtocolType'-opplistingen.
    Parameternavn: sslProtocolType

Obs! For SslStream , en kombinasjon av Tls12, Tls11 med noen av de eksisterende Tls, Ssl3, Ssl2 (for eksempel: Tls12 | Tls11 | TLS) vil nedgraderer i eksisterende protokollene (for eksempel: Tls) på et system uten oppdateringen. Kobler den til Tls uten forårsaket unntaket.

Hvis du vil ha mer informasjon

Hvis du vil aktivere TLS v1.1 eller v1.2 som standard operativsystem, følg instruksjonene i https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.

Obs! TLS-v1.1 og v1.2 er ikke tilgjengelig i Windows Vista eller Windows Server 2008.

Hvis du må deaktivere standardverdiene for operativsystemet som er angitt av registernøkkelen som er nevnt i delen "Løsning" for bestemte programmer, kan du gjøre dette ved å legge til følgende registernøkkel:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Full path of the .exe for the file>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0

Hvis du vil ha mer informasjon om TLS v1.2, se Innføring i TLS v1.2.

Når du aktiverer registernøkkelen SystemDefaultTlsVersions .NET, skjer en annen for hver versjon av Windows, som vist i følgende tabell.

Windows-versjon

SSL2-klient

SSL2 Server

SSL3-klient

SSL3 Server

TLS 1.0 klient

TLS 1.0 Server

TLS 1.1 klient

TLS 1.1 Server

TLS 1.2 klient

TLS 1.2 Server

Windows Vista SP2 og Windows Server 2008 SP2

Av

N/A

N/A

N/A

N/A

Windows 7 SP1 og Windows Server 2008 R2 SP1

Av

Av

Av

Av

Av

Windows Server 2012

Av

Av

Windows 8.1 og Windows Server 2012 R2

Av

Av

Windows 10

Av

Av

Windows-10 (1511)

Av

Av

Windows 10 (1607) og Windows Server 2016

N/A

N/A

Av

Av

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×