SSL bağlantısı oluşturulamadı. Polygon serisi programlarından doğrudan etkileşim kanallarıyla ilgili kısımlar ve teknik planlar gönderirken hatalar nasıl önlenir. Ne Sharpei sürümü yüklemek için

HTTPS'nin gerekli olduğu ve sertifika için "Hizmete Bir Bağlantı Ekle" ile kayıtlı olduğum bir web servisim var. Aşağıda benim hizmetin bir örneğini oluşturmak için benim kodudur:

Servis \u003d Yeni MyReferenceDWebService (); X509certificate2 cert \u003d yeni x509certificate2 (); var Stream \u003d montaj.getexecutingSembly (). getManifestresourcestream ("MyCert.cer"); var bayt \u003d Yeni bayt; Stream.Read (bayt, 0, bytes.length); Cert.Import (bayt, MyPassword, X509KeyStorageFlags.defaultKeySet); service.clientcredentials.clientcertificate.certificate \u003d CERT;

ve yapılandırmam buna benziyor:

Basit bir WinForms.exe oluşturursam ve yukarıdaki kodu kullanırsam, web servisimden bir cevap alıyorum. ASP.NET'te aynı kodu koymak Ancak, ben aşağıdaki alıyorum:

istek kesintiye oldu: Güvenli SSL / TLS kanalı oluşturulamadı.

Nasıl ASP.NET bunu yapmak için?

Düzenle: Ben eklemek zorunda. Kullandığım istemci sertifikası Akıllı Kart'a ekleniyor ve PIN girişini kullanmayı gerektirir. Değil emin bu konularda ya da değil o.

Müşteri başvuruya girdiğinde, PIN kodu sertifikasını ister. Bu durumda, CAC okuyucuya yerleştirilmiş bir CAC kartı var. Belki bir şekilde Request.clientCertificate'i kullanabilir miyim?

3 cevap

Buradaki planın nedir? Diğer bir deyişle:

Kim PIN tanıtacak? Kim akıllı kart ekleyecek?

Akıllı kartta kapalı anahtarı erişmesi gereken istemci (yani ASP.NET web sunucusu) beri, akıllı kart ve çıkışı olmadan ASP.NET web sunucusu ve web hizmeti arasında güvenli bir kanal yüklemek (ve Bunun için olamaz bir pin ihtiyacınız var). Ben tek yolu iş yapmak için korkuyorum (tasarıma göre, imkansız değilse de çok zor olmalı) bir akıllı karttan (kapalı bir anahtarın dahil) tüm sertifika elde etmektir.

Hareket etmenin en iyi yolun:

A) ASP.NET Web Sunucusu ve Hedef Web Hizmeti arasındaki kanal için bir istemci sertifikası olarak kullanılabilecek bir "sunucu sertifikası" (akıllı olmayan kart) isteyin.

B) Tutanak o müşteriler akıllı kartları ve temas var (kişi) için çözüm, doğrudan akıllı kart ve PIN kodu kullanarak güvenli bir web servisine bağlanır.

Sertifika sertifikasının sertifikası sertifikası mevcut mu? Kendiniz ithal ederseniz, IIS'nin erişemediği bir kullanıcı sertifikası deposuna alınmıştır (bunun yerine depoya içe aktarın)

Sınıf tasarımcısı için belgeler, sınıfın sertifika kapalı tuşunu (PFX için) depolamak için CSP'ye erişim alacağını söylüyor. Cer dosyası için gerekli olmamalıdır, ancak bir kullanıcı havuzu uygulaması olarak çalışırsanız, belki izin problemleriyle karşılaşırsınız?

Uygulama havuzunu izinli bir kullanıcı olarak çalıştırmaya çalışın ve sertifikayı makine sertifikası deposundaki içe aktarmayı ve erişimi erişmeye çalışırsanız yardımcı olup olmadığını görün.

WCF İstemci Yapılandırması

Sadece durumunda, bitiş noktasının adresinin şekillendirdiğinden emin olun:

"https: // hostname [: port] /servicedirectory/myservice.svc"

Hizmetinizin yapılandırmasının doğru olduğunu varsayarsak, ASP.NET uygulamanızın bağlanma yapılandırmanızın şunları şunlardır:

Karşılaşabileceğiniz sorun, müşteri sertifikasını hizmetinize iletmek / tedarik etmektir.

Hizmetiniz IIS 6.0 veya IIS 7.0'da yayınlandıysa, IIS'leri, istemci sertifikalarını kabul etmek için WCF servisinizin yayınlandığı şekilde yapılandırmanız gerekir.

ASP.NET uygulamanız bir WCF istemcisidir. Akıllı kart sertifikasını kullanmak ve WCF hizmetlerini sertifikalarla korumak için bu sayfaya bakın.

Ayrıca, WCF servisinizi HTTPS'yi desteklemek için gönderdiğiniz IIS'te yüklenecek bir SSL sunucu sertifikasına ihtiyacınız olacaktır.

WCF Servis Yapılandırması

Hizmetin bitiş noktası, HTTPGenabled'i etkinleştirmek ve httpgetenElent'i devre dışı bırakmak için HTTP korumalı bağlama ve hizmet davranışını içermelidir:

Özel çalışmasından elde edilen Eds'leri kullanmak gerekir. Diğer eyaletlere raporlama göndermek için kullandığınız. Organlar (PF, FTS, FSS, vb.)

2. Sharpei'nin hangi sürümünü yükleyecek?

İçin biti öğrenmek Windows'unuzun ihtiyacı:

    Bilgisayarımdaki farenin sağ düğmesine tıklayın

    Özellikler'i seçin

    Sistem bölümündeki "Sistem" bölümünde yazıldıysanız, 64 bit sistemi yazılır - 64-bit, diğer durumlarda, 32-bit anlamına gelir.

3. Web toplama sistemine kayıt yaparken, böyle bir kuruluşun zaten var olduğu bir mesaj yayınlandı.

Kayıt olurken bir hata verilirse böyle bir okpo ile organizasyon zaten kayıtlı olduBu, kuruluş hakkındaki bilgilerin raporlama sisteminde zaten mevcut olduğu anlamına gelir. Bu tür bilgiler sisteme tek bir raporlama modülünden girer.

Bu durumda, gereklidir:

  1. Adrese bir mektup gönder [E-posta Korumalı] , verilerinizi belirten:
    • Şirketin adı
    • Kimin adı (raporlamayı imzaladığınız) ve yayınlanan herkes tarafından
    • İletişim detayları
    • e-posta Adresi: (Gerekli)
  2. Mektubu sizden aldıktan sonra, TOGC çalışanları, eksik bilgileri kuruluşunuza yapacak ve size şifre değişikliği talimatlarına sahip bir mektup gönderecek (şifre atamıyoruz).
  3. Parolayı değiştirme prosedürünü geçtikten sonra, elektronik formda raporlamayı başlatabilirsiniz.

4. Raporun imzalanması sırasında bir hata çıkıyor: "Anahtar sertifika algoritması desteklenmiyor"

  1. EDS ile çalışırken hatalara yol açan Microsoft güncellemeleri var.
    Bunlar aşağıdaki güncellemelerdir:
    • 2604094
    • 2729450
    • 2729452
    • 2729453
    • 2742601
    Hatayı düzeltmek için, anahtar sertifika algoritması desteklenmez. Yukarıdaki Microsoft güncellemelerini silmeniz gerekir.
    Microsoft güncellemeleri "Kontrol Paneli" - "Yükleme Programları Yükleme" ile silinir.
  2. Ayrıca, bu hata sharpeirte kuruluysa ortaya çıkabilir öncenet Framework 2.0SP2'yi ayarlar. Bu durumda, kurulumu çalıştırın Sharpeirte tekrarlandı, "Düzenle" seçeneğini seçin ve çerçeveyi 2 desteğini kontrol edin.

5. "Çevrimdışı" bir rapor gönderirken bir hata çıkarken: "Site ile bağlantı kuramadı ... Korunan kanal SSL / TLS için bir güven ilişkisi kuramıyor"

  1. Çevrimdışı istemci ayarlarını kontrol edin, bağlantı adres adreslerinin doğruluğu:

    Güvenli Bağlantı: https://online.statrk.ru/online

  2. "Güvenilir kök sertifikası sertifikası" depo "sertifika koleksiyonu sunucusuna yükleyin. Talimatlara bakın.
  3. Internet Explorer'ı açın ve https://online.statrk.ru/online adresine gidin. "UTS GMC Rosstat" sertifikası kurulursa, o zaman sayfa uyarı olmadan açılacak. Aksi takdirde, sitenin gerçekliğini kontrol etmenin imkansızlığı hakkında bir uyarı serbest bırakılacaktır.
  4. "Cryptopro Sharpes" yüklü olup olmadığını kontrol edin. Çevrimiçi Koleksiyon Sitesinden () indirilebilir

6. "Çevrimdışı İstemci" nden bir rapor gönderirken, bir hata çıkıyor: "Mesaj güvenliğini kontrol etme"

    Bilgisayarınızdaki saat ayarını kontrol edin. Sistemi gönderirken, bilgisayarınızdaki zaman tesadüfini, Dünya Saati Muhasebe Sunucusu'nda (UTC) ve yerel değil zamanla kontrol eder. ileri kalmykia Cumhuriyeti içinbilgisayarınızdaki saat dilimi olarak ayarlanmalıdır " (UTC. +4:00 ) Moskova, St. Petersburg, Volgograd " . Eğer zaman diliminiz varsa "(UTC. +3:00 ) Moskova, St. Petersburg, Volgograd " İndirmeniz ve yüklemeniz gerekir.

"Sağlanan benzersiz fırsat merkür ve teknik planların doğrudan etkileşim kanallarında Rosreestr'a gönderilmesi (Başka bir deyişle, doğrudan programdan).

Bu makalede, "" programının örneğinde içişleri ve teknik planları gönderirken en sık ortaya çıkan hataları göz önünde bulundurun.

"" Programından bir İnternet planı göndermek için elektronik biçimde bir ifade oluşturmanız gerekir. Program, 2 XML şeması beyanı oluşturma olasılığını sağlar:

  • Reguests_gzk_realty sürüm 17 ;
  • Statmentgkn. sürüm 01 .

Not: Belirli bir XML şeması için bir ifadenin nasıl doldurulacağı hakkında daha fazla bilgi için, "" maddesine bakın.

Doğrudan etkileşim kanalları aracılığıyla Gezinti ve Teknik Planları Rosreestr'a gönderirken ortaya çıkan hataların değerlendirilmesine yol açın.

1 hata. Lütfen bunu not al ilave dosyalar Programı RosreOr'a yalnızca XML şeması tarafından oluşturulan bir ifadeyle göndermelisiniz. Reguests_gzk_realty sürüm 17 .

Yeni XML şemasında Statmentgkn. sürüm 01 ilave dosyalar geçemezsinizve bir hata verilir "Kontrol geçilmez. FLK veya EDS'nin kontrolü geçilmez. Bilinmeyen Tip Bildirimi » .

Karar: Eğer, programdan ek belge gönderirken, bu hata verildi, XML şeması için bir başvuru oluşturdu. Reguests_gzk_realty sürüm 17 Ve paketi tekrar gönder.

2 hata. Hata "Kuyrukta başarısız oldu. HATA: Uzaktan sunucu hata (500) döndürdü. İç Sunucu Hatası" Genellikle, ifade olmadan oluşturulan entegre bir planın zip-arşivi gönderirken ortaya çıkar.

Karar:pencerede ayarla "Ayarlar" Kene:

  • "Doğrudan etkileşim kanalları üzerinden iletim için bir paket (zip arşivi ve uygulama) oluşturmak için";
  • "Form Beyanı BeybeleriGKN Sürüm 01"
  • "XML'yi boşaltırken bir ifade oluşturmak için";
  • "ZIP Arşivi XML-deyimine yatırım yapmak".

Şekil 1. "Ayarlar" penceresi.

Ardından, uygulamayı doldurun (yüklediğinizde iki XML dosyası oluşturulur. Uygulama ve toplantı planı) ve önek ile bir zip arşivi oluşturun. req.. Ek olarak, ZIP arşivinin uzun yolu belirtilmişse hata görünebilir. Bu durumda, zip arşivinin yolunu azaltmanızı öneririz.

3 hata. "Kuyrukta başarısız oldu. Hata: İstek iptal edildi: SSL / TLS güvenli kanal oluşturulamadı »

"Kuyrukta başarısız oldu. Hata: İstek kesildi. SSL / TLS korumalı kanal oluşturulamadı "

Karar: Bu hatayı ortadan kaldırmak için, elektronik imza sertifikanızı (EP) kontrol etmeniz gerekir:

  • Program ayarlarında gönderen sertifikasının doğru seçilip seçilmediğini kontrol edin (pencerede "Ayarlar" Sekmede "Gönderme" alanda "! Gönderen Sertifikası "):


İncir. 2. "Ayarlar" penceresi, Gönderme sekmesi.

    Kişisel bir havuza EP sertifikası kurulmalıdır;

    Konteynerin kapalı bir anahtarla (örneğin, akıllı kart, flash sürücü) takılıp takılmadığını kontrol edin. * Kapalı bir anahtar bir bilgisayarda saklanabilir ve çıkarılabilir medyada değil.

    EP sertifikasının Hedef "TLS istemcisi" olup olmadığını kontrol edin. Bu sorunu çözmek için, bir imza satın aldığınız sertifika merkezine başvurmanız gerekir.

    Cryptoprovider kurulmalı Cryptopro CSP..

    EP'nin geçerliliğinin bitmediğini kontrol edin.

    EP'nizin Rosrester ile çalışıp çalışmadığını ve kadastro mühendisinin güçlendirilmiş nitelikli EP'si olduğunu öğrenin. Gerekirse, sertifika yetkilisine başvurun (bkz. ").

Lütfen bağlantıya forumumuzdaki bu hizmet için sistem gereksinimlerini okuyun :.

4 hata. "Kuyrukta başarısız oldu. Hata: İstek tahliydi: istek iptal edildi »

"İsteği kaldırmayın. Hata: İstek kesildi: istek iptal edildi. "

Bu hata genellikle zip arşivinin boyutunun çok büyük olduğu gerçeğiyle ilgilidir.

Karar: pencerede "Ayarlar" Sekmede "Gönderme" Alandaki Rosreestra Portal için zaman aşımını arttırın "Portal Rosreestra için zaman aşımı (sn.)", örneğin, 800 saniyeye kadar.


Şekil 3. "Ayarlar" penceresi, Gönderme sekmesi.

Not: Lütfen doğrudan etkileşim kanalları yoluyla gönderilen zip arşivlerinde, Rosrester'ın sınırlamaları olduğunu unutmayın. Doğrudan etkileşim kanalları yoluyla gönderilen zip arşivinin boyutu 50 MB'ı geçmemelidir.

5 hata. "Gönderi modülünü açamadı. Capicom.dll kütüphanesine sahip olmayabilir veya yanlış yüklenmiş olabilirsiniz. Rosreestra Portal için istek gönderme işlevleri mevcut değil "

"Gönderi modülü dosyası hasar gördü. Son değişiklikler kayboldu, son kaydedilen dosyayı açın mı? Capicom takılı değil veya yanlış yüklü. Rosreestra Portal için istek gönderme işlevleri mevcut değil "

Bu hata, gönderim modülüne eksik erişim nedeniyle oluşur.

Karar: Gemi günlüğünü silip geri yüklemelisiniz. Bunu yapmak için, programın yüklü olduğu klasöre gidin ve dosyaları silin. exch.log. ve exch_bak.log. . Bundan sonra pencerede "Rosreestrom ile bilgi alışverişi" Düğmenin yanındaki üçgeni tıklayın "Ayarlar" ve seç "Günlüğü Geri Yükle".

Hem toprağı hem de teknik planları doğrudan seri dizisinden gönderirken en yaygın hataları gözden geçirdik. "Çokgen".

Eğer ilgilendiğiniz hata bu makalede açıklanmadıysa, ücretsiz telefon numarasında bir problemi çözmek için her zaman teknik destek departmanına başvurabilirsiniz. 8-800-100-58-90 veya e-posta ile :.

Her zaman sana yardım etmekten mutluluk duy!

Ek paketler gönderilmesi durumunda, bu onay kutusu, Reguests_gzk_Realty sürüm 17'ye göre bir ifade kurmaz ve oluşturmaz.


Hit sayısı: 7151

Bir makinede bir sertifika oluşturuldu. Başka bir başkasına taktım. Uygulama XML dosyasını neşelendirmeye çalışıyor - bir hata oluştu: Güvenli bir SSL TLS kanalı oluşturulamadı.
Sorunu çözmek için yardım gereklidir.

Sınıf MyCerts (özel statik int cert_store_prov_system \u003d 10; özel statik int cert_system_store_current_user \u003d (1<< 16); //private static int CERT_SYSTEM_STORE_LOCAL_MACHINE = (2 << 16); public static extern IntPtr CertOpenStore(int storeProvider, int encodingType, int hcryptProv, int flags, string pvPara); public static extern IntPtr CertEnumCertificatesInStore(IntPtr storeProvider, IntPtr prevCertContext); public static extern bool CertCloseStore(IntPtr storeProvider, int flags); X509Certificate2Collection m_certs; public MyCerts() { m_certs = new X509Certificate2Collection(); } public int Init() { IntPtr storeHandle; storeHandle = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, "MY"); IntPtr currentCertContext; currentCertContext = CertEnumCertificatesInStore(storeHandle, (IntPtr)0); int i = 0; while (currentCertContext != (IntPtr)0) { m_certs.Insert(i++, new X509Certificate2(currentCertContext)); currentCertContext = CertEnumCertificatesInStore(storeHandle, currentCertContext); } CertCloseStore(storeHandle, 0); return m_certs.Count; } public X509Certificate2 this { get { if (index < 0 || index > M_certs.Count) null dönüş; Başka m_certs dönüş; ))) Sınıf MyHttpresource (Dize M_URL; Kamu MyHttpresource (Dize URL) (M_URL \u003d URL;) Genel Void GetFile () (HttpWebResponse sonucu \u003d null; // \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d System.NET. ServicePointManager.CertificatePolicy \u003d New MyPolicy (); // \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d deneyin (HttpWebRequest Tlp \u003d (HttpWebRequest) WebRequest.Create (M_URL); REQ.Credentials \u003d CredentialCache.DefaultCredentials; // req. ClientCertificates.Add (x509Certificate2.CreateFromCertFile ( "C: \\\\ geçici \\\\ Cert \\\\ C1.CER")); Mycerts Mycert \u003d Yeni Mycerts (); eğer (mycert.init ()\u003e 0) Req.clientCertificates.add ( MyCert); konsol.writeline (mycolt.thumbrint); konsol.writeline (mycert.thumbprint); sonuç \u003d (httpwebresponse) req.getresponse (); Streamwriter yazar \u003d yeni Streamwriter (@ "C: /123.txt"); akış Alıcı \u003d sonuç.getressestream (); # XML dosyaları için #Region kodlama kodlama \u003d system.text.encoding.default; #endRegion #Region sitelerde // kodlama kodlayan \u003d System.Text.Encoding.GetEncoding ( "UTF-8"); #Endregion StreamReader SR \u003d Yeni StreamReader (ReceiveStream, kodlama); Konsol.writeline ("\\ r \\ nresponse akışı alındı"); Char okuma \u003d yeni char; İnt sayımı \u003d sr.read (okuma, 0, 256); Konsol.writeline ("http yanıtı ... \\ r \\ n"); (\u003e 0 Kont) iken (Dize Str \u003d Yeni Dize (Oku, 0,) Kont; Console.Write (STR); Writer.WriteLine (STR); Sayım \u003d Sr.Read (okuma, 0, 256);) Yazar. Kapat (); ) Yakalama (WebException E) (Console.WriteLine (e.Message);) Nihayet (IF (Sonuç \u003d NULL!) (Result.close ();))) // \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d Kamu Sınıf Mypolicy: IcyTificatePolicy (ServicePoint SrvpointResult (ServicePoint Srvpoint, X509Certificate Belgesi, WebRequest Talebi, Int CertificateProblem) (Dönüş Doğru;)) // \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d CRASS CERTSAMPLE (Statik Void Main (string Args ) (//console.writeline("kuds, üzecek? "); // string str \u003d konsol.Readline (); // Eğer (! Str.Startswith (" http: // ")) // if (! Str.startSwith ( "https: //")) // str \u003d "http: //" + dize dize str \u003d @ "https://192.168.191.248/xml/80020.xml"; Console.Writeline (" Bağlan için ") + STR; Try (MyHttpresource İK \u003d Yeni MyHttpresource (STR); //" http://br.so-ups.ru/public/docs/doclist.aspx "hr.getfile ();) (Exception catch e) (Console.WriteLine (E. İleti); ) Dönüş; ))

Konuya devam ediyor:

Çevrimiçi Mağaza Biggeek, mobil cihazların ve gadget'ların satışı pazarındaki liderlerden biri olmuştur. Ayrıca müşterileri ile birikmiş bir deneyim, ortak bulmalarını sağladı ...