SORUN: "System.NET.WebException. Alt bağlantı kapatıldı. Remote Server ile güven ilişkisi ağımdaki değil." .NET Framework yeniden yükseltirken bir hata iletisi

Makale çevirileri Makale çevirileri
Makale numarası: 823177 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft .NET Framework sürüm 1.0'ı yüklediğinizde, Service Pack 2 veya .NET Framework sürüm 1.1, .NET Framework sürüm 1.0, Web hizmeti istemcileri, bir arama için aşağıdaki hata iletisini alabilirsiniz'den yükseltme bir Web hizmeti. Güvenli Yuva Katmanı (SSL) kullandığınızda, bu hata iletisi oluşur.

System.NET.WebException. temel alınan bağlantı kapatıldı. Uzak sunucu ile olan güven ilişkisi kurulamadı.

' Ü yükledikten sonra veya kod, beklediğiniz gibi çalışıyor olsa bile, yükselttikten sonra hata iletisi görünür.

Neden

.NET Framework sürüm 1.0 ile başlayarak bir SSL sertifikası ile verilen sunucu adını Service Pack 2 ve .NET Framework sürüm 1.1 ve sonraki sürümleri, HTTP isteğinde kullanılan ad eşleşmesi gerekir. Önceki SSL sertifikalarını belirli koşullar altında artık kabul. Ayrıca, sertifika iptal listesi (CRL), şimdi sertifikanın iptal edilmediğini emin olmak için incelenir.

Başka senaryolar da vardır. Örneğin, bazı ağlar, farklı bir ad çözümlemesi düzeninde kullanmak yerine, dış istemcilerin iç. Burada sertifika sunucuya ve intranet uygulamaları (örneğin, www.adatum.com) genel bir URL ile verilen durumlarda, iç etki alanı adı sistemi (DNS) sunucusu, aynı sunucu (örneğin, www.internal.corporate.adatum.com) için farklı bir ad sağlar. Bu Web hizmetini SSL üzerinden istekleri başarısız olabilir. Bu değişiklik, SSL kullanan Web hizmetlerinin güvenliğini artırmak için yapılır.

Not Örnek şirketler, kuruluşlar, ürünler, etki alanı adları, e-posta adresleri, logolar, kişiler, yerler ve burada olaylar kurgusaldır. Hiçbir ilişkisi herhangi gerçek şirket, kuruluş, ürün, etki alanı adı, e-posta adresi, logo, kişi, yer veya olayları amaçlanmaktadır veya olayla gerekir.

Çözüm

Bu sorun, aşağıdaki yöntemlerden birini kullanarak çözebilirsiniz:
  • DNS sunucusu için aynı adı sağlayan ad çözümlemesi düzenini değiştirebilirsiniz. Sunucu, sunucu için gelen şirket ya da denir olup olmadığını kullanılmalıdır için aynı ad dışında bir şirket.

    Örneğin, URL www.adatum.com için sertifika verilmiş olan varsayalım. Kuruluşunun dışına söz edilir herhangi bir Web hizmeti uygulaması, dış DNS çözümlemesi (www.adatum.com) şema kullanılarak adlandırılır. Iç DNS, intranet, hizmetin uygulama adlı bir Web sitesinin adını www.internal.corporate.adatum.com çevirir. Bu nedenle, tüm Web için istek SSL üzerinden hizmeti, ad çözümlemesi düzeni değiştirmediğiniz sürece başarısız olabilir.
  • Web hizmeti istemcisi hizmetinde için sertifikayı veren adı adıyla aynı olması gerekir, bir Web Web başvuru eklediğinizde, kullanılan ana bilgisayar adı.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, ICertificatePolicy uygulayabilirsiniz. Web hizmeti yöntem çağrısı yapılmadan önce ServicePointManager.CertificatePolicy için ICertificatePolicy geçmelidir.

Aşağıdaki kod örneği, istemci uygulamasında kullanılır. Kodu, istemci uygulaması, sunucu sağlayan her sertifika kabul etmek için zorlar. Bu yöntem, sunucunun kimlik doğrulamasını atlandığı için uygulamanın güvenlik düzeyini düşürür. Güvenli bir şekilde bu soruna geçici bir çözüm bulmak için <a0></a0>, bağlantı devam etmek izin vermeden önce bu sunucunun sertifika beklenen adı içerdiğinden emin olun.

Aşağıdaki örnek kodu ICertificatePolicy uygular ve sonra da SSL altında tüm istekleri kabul eder:

Microsoft Visual Basic .NET

Aşağıdaki iki ad alın ve sonra sınıfı uygulamak:
Imports System.Net
Imports System.Security.Cryptography.X509Certificates
Public Class MyPolicy
  Implements ICertificatePolicy

  Public Function CheckValidationResult(ByVal srvPoint As ServicePoint, _
                ByVal cert As X509Certificate, ByVal request As WebRequest, _
                ByVal certificateProblem As Integer) _
            As Boolean Implements ICertificatePolicy.CheckValidationResult
    'Return True to force the certificate to be accepted.
    Return True
  End Function
End Class
Microsoft Visual C# .NET

Aşağıdaki iki ad alın ve sonra sınıfı uygulamak:
using System.Net;
using System.Security.Cryptography.X509Certificates;

public class MyPolicy : ICertificatePolicy {
    public bool CheckValidationResult(
          ServicePoint srvPoint
        , X509Certificate certificate
        , WebRequest request
        , int certificateProblem) {

        //Return True to force the certificate to be accepted.
        return true;

    } // end CheckValidationResult
} // class MyPolicy
istemci kodu aşağıdaki kodu ekleyin. Web hizmeti yöntemi istemci koddan arama yapmadan önce aşağıdaki deyimde (Visual Basic .NET veya Visual C# .NET, uygun olarak) yeniden çalıştırılmalıdır:

Visual Basic. NET'e
System.Net.ServicePointManager.CertificatePolicy = New MyPolicy()
Visual C# .NET
System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Sorunu Yeniden Oluşturma Adımları

  1. Bir sunucu sertifikası oluşturun. Sunucu sertifikası TestComputer adlı bir bilgisayara atayın. Sunucu sertifikası oluşturduğunuzda, TestComputer ortak ad alanına yazdığınız adı olduğundan emin olun.
  2. Sertifika self-issued sertifikayı veren sertifika yetkilisi sertifikasını Güvenilir kök sertifika yetkilileri listesine (bir güvenilen sertifika yetkilisi tarafından yayımlanmayan) ekleyin.

    Not Bu siteyi Güvenilen siteler eklemek yeterli olan Microsoft ınternet Explorer <a1>Güvenlik</a1> sekmesinde, bölge.
  3. Sertifika yetkilisinin sertifika eklemek için aşağıdaki adımları izleyin:
    1. Internet Explorer'ı başlatın. Araçlar menüsünden Internet seçenekleri ' ni tıklatın.
    2. Içerik sekmesini tıklatın ve sonra Sertifikalar ' ı tıklatın.
    3. Tıklatın Güvenilen kök sertifika yetkilileri sekmesi.
    4. Al ' ı tıklatın ve sonra ileri ' yi tıklatın.
    5. Sertifika yetkilisi sertifikası dosyasını taşımak için Gözat ' ı tıklatın ve sonra ileri ' yi tıklatın.
    6. Tüm sertifikaları aşağıdaki depolama alanına yerleştir ' i tıklatın ve sonra da <a2>Gözat</a2>'ı tıklatın.
    7. Tıklatın Güvenilen kök sertifika yetkilileri, Tamam ' ı tıklatın, ileri ' yi tıklatın ve sonra da <a2>son</a2>'u tıklatın.

      Alma işleminin başarılı olduğunu gösteren BIR ileti görüntülenir.
    8. Kapat ' ı tıklatın ve sonra da Tamam ' ı tıklatın.
  4. WebService1 adlı bir Microsoft ASP.NET Web hizmeti uygulaması oluşturun. Içinde WebService1 MerhabaDünya WebMethod uncomment.
  5. SSL'YI WebService1 uygulama için etkinleştirin.
  6. WebApplication1 adlı bir ASP.NET Web uygulaması oluşturun. <a1>Ad</a1> DÜĞME Button1 denetler.
  7. Web başvurusunu WebService1 WebApplication1 ekleyin.
  8. Button1 OnClick olay MerhabaDünya arayın, bu WebMethod WebService1.
  9. WebApplication1 içinde Button1 ' ı tıklatın.

    Tarayıcıda Button1 bakın ve "Belirtiler" bölümünde açıklanan hata iletisini alırsınız.

Referanslar

ASP.NET'in güvenlik geliştirmeleri ve SSL hakkında ek bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/aa302384.aspx
ASP.NET ve ııS'YI SSL kullanacak şekilde yapılandırma hakkında ek bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/aa302411.aspx
Ekleme ve Web başvurularını kaldırmak hakkında ek bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/d9w023sx(vs.71).aspx

Özellikler

Makale numarası: 823177 - Last Review: 22 Mart 2007 Perşembe - Gözden geçirme: 4.5
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.0
  • Microsoft Common Language Runtime (included with the .NET Framework 1.1)
  • Microsoft Common Language Runtime (included with the .NET Framework) 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft Web Services (included with the .NET Framework) 1.0
Anahtar Kelimeler: 
kbmt kbprb kberrmsg kbwebservices kbdev kbcertservices kbsecurity KB823177 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:823177

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com