Makale numarası: 182888 - Son Gözden Geçirme: 01 Temmuz 2004 Perşembe - Gözden geçirme: 2.1

Geçersiz sertifika yetkilisi hata Winınet tanıtıcı nasıl kullanılır

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Verilen tarafından bilinmiyor veya geçersiz bir sunucu SSL sertifikası, sertifika yetkilisine Winınet HttpSendRequest API veya MFC CInternetFile::SendRequest 12045 (ERROR_INTERNET_INVALID_CA) hatası vererek başarısız olur.

Internet Explorer URL erişmeye çalıştığında, benzer bir hata bildirilir.

Daha fazla bilgi

Bu hata, istemci sunucu sertifikasını veren sertifika yetkilisi hakkında bilmeniz oluşur. Sertifika yetkilisinin kök sertifikası'nı yükleyerek sorunu düzeltti. Yüklü olan tüm sertifikaların BIR listesini, ınternet Explorer'dan görüntülenebilir. Görünüm menüsünden ınternet Seçenekleri'ni tıklatın, sonra da içerik sekmesini tıklatın ve yetkilileri'ı tıklatın.

Bu hata, Winınet uygulamada sertifika yüklemeden atlamak olasıdır. Bu hata işleme için iki yöntem vardır. Aşağıdakine benzer bir kod kullanabilirsiniz.

Yöntem 1. (ınternet Explorer için benzer bir ileti kutusu üretilen) bir kullanıcı ARABIRIMI ile:
   ...
   Again:
   if (!HttpSendRequest (hReq,...))
       dwError = GetLastError ();

   if (dwError == ERROR_INTERNET_INVALID_CA)
   {
       // Make sure to check return code from InternetErrorDlg
       // user may click either OK or Cancel. In case of Cancel
       // request should not be resumbitted.
       InternetErrorDlg (GetDesktopWindow(),
                         hReq,
                         ERROR_INTERNET_INVALID_CA,
                         FLAGS_ERROR_UI_FILTER_FOR_ERRORS |
                         FLAGS_ERROR_UI_FLAGS_GENERATE_DATA |
                         FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS,
                         NULL);
      goto again;
   }
   ...
				
yöntem 2 '. Bir kullanıcı ARABIRIMI olmadan:
   ...
   Again:
   if (!HttpSendRequest (hReq,...))
      dwError = GetLastError ();
   if (dwError == ERROR_INTERNET_INVALID_CA)
   {
      DWORD dwFlags;
      DWORD dwBuffLen = sizeof(dwFlags);

      InternetQueryOption (hReq, INTERNET_OPTION_SECURITY_FLAGS,
            (LPVOID)&dwFlags, &dwBuffLen);

      dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;
      InternetSetOption (hReq, INTERNET_OPTION_SECURITY_FLAGS,
                            &dwFlags, sizeof (dwFlags) );
      goto again;
   }
   ...
				
benzer mantığı MFC Winınet sınıflarıyla kullanılabilir. Bu durumda, aşağıdaki MFC yöntemleri yukarıda kullanılan Apı Winınet karşılık gelir:

  • CInternetFile::SendRequest
  • CInternetFile::QueryOption
  • CInternetFile::SetOption
  • CInternetFile::ErrorDlg
Visual C++ 5.0 belgeleri, CInternetFile::ErrorDlg CInternetFile::QueryOption ve CInternetFile::SetOption eksik olduğunu unutmayın. Inet.cpp MFC kaynak Bkz: bilgi için bu yöntemi kullanmak için dosya.

Not 1: InternetErrorDlg değerleri döndürebilir:
   ERROR_SUCCESS
   ERROR_CANCELLED
   ERROR_INTERNET_FORCE_RETRY.
				
ERROR_INTERNET_FORCE_RETRY döndüğünde isteği tekrar. ERROR_SUCCESS döndüğünde bile ınternet Explorer 4.0 ve 4.01, ancak isteği tekrar gerekir.

Microsoft bu sorunun InternetErrorDlg API olmasını onaylamıştır. Not 2: ınternet Explorer 3.0 ve 3.02 SECURITY_FLAG_IGNORE_UNKNOWN_CA uygulanmadı.

InternetErrorDlg yine de, ancak aşağıdaki özel durum ile çalışır. Bu API tarafından oluşturulan iletişim kutusunda izin geçersiz sertifika yetkilisine hatayı yoksaymak; yalnızca bir sayfa kullanıcıya bildirim görüntülenemiyor değildir.

Not 3: Bu hatayı göz ardı seçeneği, hata oluşmadan önce ayarlanamaz. Ilk isteği göndermek, hatayı alıyorsunuz sonra seçeneğini ayarlamak (veya InternetErrorDlg arayın) girişiminde ve yeniden göndermeniz gerekir.

Referanslar

Ek bilgi için lütfen aşağıdaki article(s) olarak Microsoft Knowledge Base'de bakın:
168151  (http://support.microsoft.com/kb/168151/EN-US/ ) Nasıl yapılır: SSL istekleri Winınet kullanarak oluştur.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
Anahtar Kelimeler: 
kbmt kberrmsg KB182888 KbMttr
Otomatik TercümeOtomatik Tercüme
Ö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:182888  (http://support.microsoft.com/kb/182888/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.