Fehler beim Erstellen einer SSL-Verbindung. So vermeiden Sie Fehler beim Senden von Interteil- und technischen Plänen auf direkten Interaktionskanälen aus den Programmen der Polygonserie. Welche Version von Sharpei zu installieren

Ich habe einen Web-Service, den ich überregte, den ich als "Link zum Service hinzufügen" registriert habe, für den HTTPS erforderlich ist, und Zertifikat. Unten ist mein Code, um eine Instanz meines Dienstes zu erstellen:

Service \u003d neuer myrefereredwebservice (); X509certificate2 cert \u003d new X509Certificate2 (); var stream \u003d Assembly.GetExecutingAssembly () GetManifestResourceStream ( "mycert.cer."); Var Bytes \u003d Neues Byte; Stream.Lead (Bytes, 0, Bytes.Length); Cert.Import (Bytes, MyPassword, X509KeystorageFlags.DefaultKeSet); service.clientcredits.clientCertificate.certificate \u003d Cert;

und meine Konfiguration sieht so aus:

Wenn ich eine einfache WinForms.exe erstellen und den obigen Code verwenden, erhalte ich eine Antwort von meinem Web-Service. Wenn ich jedoch den gleichen Code in ASP.NET setze, erhalte ich Folgendes:

Die Anforderung wurde unterbrochen: Fehler beim Erstellen eines sicheren SSL / TLS-Kanals.

Wie geht es dir in ASP.NET?

Bearbeiten: Ich muss hinzufügen. Das Client-Zertifikat, das ich verwende, ist an der Smart Card angeschlossen und erfordert, dass der PIN-Eingang verwendet wird. Nicht sicher, dass es ankommt oder nicht.

Wenn der Client in die Anwendung eintritt, fordert er ihr PIN-Code-Zertifikat an. In diesem Fall haben sie eine CAC-Karte, die in den CAC-Reader eingesetzt ist. Vielleicht kann ich irgendwie die Anfrage verwenden.ClientCertificat?

3 Antwort

Was ist dein Plan hier? Mit anderen Worten:

Wer wird Pin einführen? Wer wird eine Smart Card einfügen?

Sie können nicht den sicheren Kanal zwischen dem ASP.NET Web - Server und dem Web - Dienst ohne Smartcard und Ausgang, da der Client ( das heißt der ASP.NET Web - Server) installieren , muss den geschlossenen Schlüssel auf der Smartcard zugreifen (und für diese Sie brauchen eine Pin). Ich befürchte, dass der einzige Weg, um es zu funktionieren, um das gesamte Zertifikat (einschließlich eines geschlossenen Schlüssels) von einer Smart Card (der sehr schwierig sein sollte, wenn nicht unmöglich sein sollte).

Dein bester Weg zu handeln:

A) anfordern ein "Serverzertifikat" (nicht-Smart-Card), das als Client-Zertifikat für den Kanal zwischen dem ASP.NET-Webserver und dem Ziel-Webdienst verwendet werden kann.

B) Nehmen Sie die Lösung so, dass die Kunden (Menschen, die Smartcards und Kontakte) haben, wird direkt auf einen sicheren Web-Service verbunden, um eine Smartcard und einen PIN-Code.

Ist das Zertifikatzertifikat des Stammzertifikats des Zertifikats verfügbar? Wenn Sie es selbst importiert, hat es sich zu einem Benutzerzertifikatspeicher importiert worden zu dem IIS nicht zugreifen (statt es importieren in das Repository)

Die Dokumentation für den Klassen-Designer sagt, dass die Klasse Zugriff auf CSP erhält, um das Zertifikat geschlossene Schlüssel (für PFX) zu speichern. Es sollte nicht für die CER-Datei erforderlich sein, aber vielleicht stoßen Sie jedoch an Erlaubnisprobleme auf, wenn Sie als Benutzerpoolanwendung arbeiten?

Versuchen Sie, den Anwendungspool zu laufen als Benutzer mit Berechtigungen wechseln und sehen, ob es, wenn Sie hilft versuchen, das Zertifikat in der Maschine Zertifikatspeicher und Zugang den Zugriff darauf zu importieren.

WCF-Client-Konfiguration.

Stellen Sie nur für den Fall sicher, dass die Adresse Ihres Endpunkts geformt ist:

"HTTPS: // Hostname [: Port] /serviceDirectory/myservice.svc"

Angenommen, dass die Konfiguration Ihres Dienstes trifft, muss Ihre ASP.NET-Anwendungsbindungskonfiguration sein:

Das Problem, mit dem Sie antreten können, ist, das Kundenzertifikat an Ihren Dienst zu übertragen / zu versorgen.

Wenn Ihr Dienst in IIS geschrieben wird 6.0 oder IIS 7.0, müssen Sie IIS konfigurieren, auf das Ihr WCF-Dienst für die Annahme von Client-Zertifikaten gebucht wird.

Ihre ASP.NET-Anwendung ist ein WCF-Client. Siehe diese Seite, um das Chipkartenzertifikat zu verwenden und WCF-Dienste mit Zertifikaten zu schützen.

Sie benötigen auch ein SSL-Serverzertifikat, das in IIS installiert ist, wo Sie Ihren WCF-Dienst an der Unterstützung von HTTPs veröffentlichen.

WCF-Service-Konfiguration.

Der Endpunkt des Dienstes sollte umfassen HTTP geschützt Bindung, sowie Service-Verhalten zu aktivieren und deaktivieren HTTPSGeNABLED httpgeteneabled:

Es ist notwendig, die von ihrem Sonderbetrieb erhaltenen EDS zu verwenden. Die, die Sie verwenden, um die Berichterstattung an andere Zustände zu senden. Organs (PF, FTS, FSS usw.)

2. Welche Version von Sharpei zu installieren?

Zu lerne das Bit Ihre Fenster brauchen:

    Klicken Sie auf den rechten Maustaste auf meinem Computer

    Eigenschaften auswählen.

    Wenn Sie im Abschnitt "System" im Abschnitt "System" geschrieben werden, wird das 64-Bit-System geschrieben - es bedeutet das 64-Bit, in anderen Fällen 32-Bit.

3. Bei der Registrierung im Web-Sammelsystem wurde eine Nachricht veröffentlicht, dass bereits eine solche Organisation vorhanden ist

Wenn beim Registrieren ein Fehler ausgegeben wird organisation mit einem solchen OKPO wurde bereits registriertDies bedeutet, dass Informationen über die Organisation bereits im Berichtssystem vorhanden sind. Diese Informationen gelangen in das System von einem einzelnen Berichtsmodul.

In diesem Fall ist es notwendig:

  1. Senden Sie einen Brief an die Adresse [E-Mail geschützt] , Anzeigen Ihrer Daten:
    • Name der Firma
    • Auf dessen Name das Zertifikat ist (das Sie berichtet haben) und von jemandem ausgestellt
    • Kontaktdaten
    • e-Mail-Adresse: (Pflichtfeld)
  2. Nach dem Brief von Ihnen erhalten haben, werden die tOgc Mitarbeiter die fehlenden Informationen zu Ihrer Organisation machen und Sie mit den Kennwort-Änderungsanweisungen einen Brief schicken (wir benennen kein Passwort).
  3. Nachdem Sie das Verfahren zum Ändern des Kennworts bestanden haben, können Sie in elektronischer Form anfangen.

4. Wenn Sie den Bericht anmelden, kommt ein Fehler heraus: "Der Schlüsselzertifikatalgorithmus wird nicht unterstützt"

  1. Es gibt Microsoft-Updates, die beim Arbeiten mit EDS zu Fehlern führen.
    Dies sind die folgenden Updates:
    • 2604094
    • 2729450
    • 2729452
    • 2729453
    • 2742601
    Um den Fehler zu korrigieren, wird der Schlüsselzertifikat-Algorithmus nicht unterstützt. Sie müssen die oben genannten Microsoft-Updates löschen.
    Microsoft-Updates werden über das "Systemsteuerungsfeld" - "Entfernungsprogramme installieren" gelöscht.
  2. Dieser Fehler kann auch manifestieren, wenn SharpeireTe installiert ist vorsetzt Netzrahmen 2.0sp2. Führen Sie in diesem Fall die Installation aus Sharpeirirte wiederholt, wählen Sie "Bearbeiten" und überprüfen Sie den Rahmen 2 Support.

5. Wenn Sie einen Bericht von „Offline“ sendet ein Fehler kommt: „Es kann keine Verbindung mit der Website schaffen ... Es kann keine Vertrauensbeziehung für den geschützten Kanal SSL / TLS etablieren“

  1. Überprüfen Sie die Offline-Clienteinstellungen, die Richtigkeit der Anschlussadresseadressen:

    Sichere Verbindung: https://online.statrk.ru/online

  2. Installieren Sie in der "Trusted Root Certification Certification Certification" Repository "Certificate Collection Server. Siehe die Anweisungen.
  3. Öffnen Sie den Internet Explorer und gehen Sie zu https://online.statrk.ru/online. Wenn das Zertifikat "UTS GMC Rosstat" installiert ist, dann seite wird ohne Warnung geöffnet. Andernfalls wird eine Warnung über die Unmöglichkeit, die Authentizität der Site zu überprüfen.
  4. Prüfen Sie, ob der "Cryptopro of Sharpe" installiert ist. Es kann von der Online-Sammelstelle heruntergeladen werden ()

6. Beim Senden eines Berichts über den "Offline-Client" erscheint ein Fehler: "Fehlerprüfung der Nachrichtensicherheit"

    Überprüfen Sie die Uhrzeiteinstellung auf Ihrem Computer. Beim Senden des Systems prüft das System mit der Zeit auf dem World Time Accounting Server (UTC) und nicht lokal. Fortgeschritten für die Republik Kalmykiadie Zeitzone auf Ihrem Computer sollte als " (KOORDINIERTE WELTZEIT. +4:00 ) Moskau, St. Petersburg, Wolgograd " . Wenn Sie Zeitzone haben "(KOORDINIERTE WELTZEIT. +3:00 ) Moskau, St. Petersburg, Wolgograd " Sie müssen herunterladen und installieren

"Unter der Voraussetzung einmalige Gelegenheit senden des Quecksilbers und der technischen Pläne an Rosreir auf direkte Interaktionskanäle (Mit anderen Worten, direkt aus dem Programm).

In diesem Artikel betrachten die am häufigsten Fehler auftreten, wenn am Beispiel des Programms die intertaries und technische Pläne zu senden „“.

Um einen Internetplan aus dem Programm zu senden "" müssen Sie eine Erklärung in elektronischer Form bilden. Das Programm sorgt für die Möglichkeit, eine Erklärung von 2 XML-Systemen zu bilden:

  • Reguests_gzk_ateyty. Ausführung 17 ;
  • Statmentgkn. Ausführung 01 .

Hinweis: Weitere Informationen zum Ausfüllen einer Anweisung für ein bestimmtes XML-Schema finden Sie im Artikel "".

Lassen Sie uns direkt an die Berücksichtigung von Fehlern biegen, die beim Senden der Intertarien und technischen Pläne an Rosreir durch die Kanäle der direkten Interaktion entstehen.

1 Fehler Bitte beachte, dass zusätzliche Dokumente Sie müssen das Programm nur mit einer von dem XML-Schema gebildeten Erklärung an Rosreir senden Reguests_gzk_ateyty. Ausführung 17 .

Auf dem neuen XML-Schema Statmentgkn. Ausführung 01 zusätzliche Dokumente durchfahrt verboten, und ein Fehler wird ausgegeben "Die Prüfung wird nicht übergeben. FLK oder die Prüfung der EDS wird nicht übergeben. Unbekannte Typ-Anweisung » .

Entscheidung: Wenn dieser Fehler beim Senden zusätzlicher Dokumente aus dem Programm erteilt wurde, bildet diesen Fehler eine Anwendung für das XML-Schema Reguests_gzk_ateyty. Ausführung 17 Und senden Sie das Paket erneut.

2 Fehler Error "Die Warteschlange fehlgeschlagen Fehler: Remote-Server zurückgegebener Fehler (500). Interner Serverfehler" Es erscheint normalerweise beim Senden eines Zip-Archivs eines integrierten Plans, der ohne eine Anweisung gebildet wurde.

Entscheidung:im Fenster eingestellt "Die Einstellungen" Tick:

  • "Ein Paket (ZIP-Archiv und Anwendungsanwendung) für die Übertragung über direkte Interaktionskanäle";
  • "Formularerklärung StatementGKNGS Version 01"
  • "Eine Anweisung beim Entladen von XML" zu bilden ";
  • "Investieren in das ZIP-Archiv XML-Anweisung".

Abb.1. Das Fenster "Einstellungen".

Füllen Sie Nächstes aus, füllen Sie die Anwendung aus (zwei XML-Dateien werden gebildet, wenn Sie hochladen: die Anwendung und den Besprechungsplan) und bilden ein ZIP-Archiv mit dem Präfix req.. Darüber hinaus wird der Fehler angezeigt, wenn der lange Pfad zum ZIP-Archiv angegeben ist. In diesem Fall empfehlen wir, den Pfad zum ZIP-Archiv zu reduzieren.

3 Fehler "Die Warteschlange fehlgeschlagen Fehler: Die Anforderung wurde abgebrochen: SSL / TLS-Sicherungskanal konnte nicht erstellt werden »

"Die Warteschlange fehlgeschlagen Fehler: Die Anforderung wurde unterbrochen. Fehler beim Erstellen des SSL / TLS-geschützten Kanals "

Entscheidung: Um diesen Fehler zu beseitigen, müssen Sie Ihr elektronisches Signaturzertifikat (EP) überprüfen, nämlich:

  • Prüfen Sie, ob das Absenderzertifikat in den Programmeinstellungen korrekt ausgewählt ist (im Fenster "Die Einstellungen" Auf der Registerkarte "Senden" auf dem Feld "! Absenderzertifikat "):


Abb.2. Fenster "Einstellungen", die Registerkarte sendet.

    EP-Zertifikat muss in einem persönlichen Repository installiert sein.

    Prüfen Sie, ob der Container mit einem geschlossenen Schlüssel eingesetzt ist (z. B. Chipkarte, Flash-Laufwerk). * Eine geschlossene Taste kann auf einem Computer gespeichert werden, und nicht auf Wechselmedien.

    Prüfen Sie, ob das EP-Zertifikat Ziel "TLS-Client" ist. Um dieses Problem zu lösen, müssen Sie sich an das Zertifizierungszentrum wenden, in dem Sie eine Unterschrift gekauft haben.

    Cryptoprovider muss installiert sein Cryptopro csp..

    Prüfen Sie, ob die Gültigkeit der EP nicht vorbei ist.

    Finden Sie heraus, ob Ihre EP mit Rosrester zusammenarbeiten soll, und ist eine verstärkte qualifizierte EP des Katasteringenieurs. Wenden Sie sich ggf. an die Zertifizierungsstelle (siehe ").

Bitte lesen Sie die Systemanforderungen für diesen Service auf unserem Forum auf dem Link :.

4 Fehler. "Die Warteschlange fehlgeschlagen Fehler: Die Anfrage wurde abgeworfen: Die Anfrage wurde abgebrochen »

"Entfernen Sie nicht die Anfrage. Fehler: Die Anforderung wurde unterbrochen: Die Anforderung wurde abgebrochen. "

Dieser Fehler bezieht sich normalerweise auf die Tatsache, dass die Größe des ZIP-Archivs zu groß ist.

Entscheidung: im Fenster "Die Einstellungen" Auf der Registerkarte "Senden" Erhöhen Sie das Timeout für das Rosreestra-Portal auf dem Feld "Timeout für das Portal Rosreestra (sek.)", zum Beispiel bis zu 800 Sekunden.


Abb. 3. Fenster "Einstellungen", die Registerkarte sendet.

Hinweis: Bitte beachten Sie, dass auf den ZIP-Archiven, die durch die Kanäle der direkten Interaktion geschickt wurden, der Rosrester Einschränkungen hat. Die Größe des ZIP-Archivs, das durch die Kanäle der direkten Wechselwirkung gesendet wird, sollte 50 MB nicht überschreiten.

5 Fehler. "Das Sendungsmodul konnte nicht geöffnet werden. Sie können die CAPICOM.DLL-Bibliothek möglicherweise nicht oder falsch installieren. Die Funktionen des Versendens von Anfragen für das Rosreestra-Portal sind nicht verfügbar "

"Die Sendungsmoduldatei ist beschädigt. Letzte Änderungen gehen verloren, öffnen Sie die zuletzt gespeicherte Datei? Capicom ist nicht installiert oder falsch installiert. Die Funktionen des Versendens von Anfragen für das Rosreestra-Portal sind nicht verfügbar "

Dieser Fehler tritt aufgrund unvollständiger Zugriff auf das Sendungsmodul auf.

Entscheidung: Sie müssen das Schiffsprotokoll löschen und wiederherstellen. Gehen Sie dazu in den Ordner, in dem das Programm installiert ist, und löschen Sie die Dateien. exch.Log. und eXCH_BAK.LOG. . Danach im Fenster "Informationsaustausch mit Rosreiestrom" Klicken Sie neben der Taste auf das Dreieck "Die Einstellungen" und auswählen "Wiederherstellen des Protokolls".

Wir haben die häufigsten Fehler beim Senden von Land- und technischen Plänen direkt aus der Serie der Serie überprüft "Polygon".

Wenn der Fehler, den Sie interessiert sind, nicht in diesem Artikel nicht beschrieben ist, können Sie sich immer an die technische Support-Abteilung wenden, um ein Problem auf der kostenlosen Telefonnummer zu lösen. 8-800-100-58-90 oder per E-Mail :.

Immer froh, dir zu helfen!

Im Fall des Sendens zusätzliche Pakete, ist dieses Kontrollkästchen nicht installieren und eine Erklärung bildet nach der reguests_gzk_realty Version 17.


Anzahl der Treffer: 7151

Ein Zertifikat auf einer Maschine erstellt. Ich installierte eine andere zu einem anderen. Die Anwendung versucht, die XML-Datei springen aufzumuntern - ein Fehler auftritt: Es konnte keine sicheren SSL-TLS-Kanal erstellen.
Hilfe ist erforderlich, um das Problem zu lösen.

Klasse Mycerts (Private Static INT CERT_STORE_PROV_SYSTEM \u003d 10; Privat Static 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) return null; Sonst kehren m_certs zurück; ))) Klasse MyHttpresource (String M_URL; öffentlich MyHttpresource (String URL) (M_URL \u003d URL;) öffentliche Void GetFile () (HttpWebResponse result \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 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 Try (httpwebrequest req \u003d (httpwebrequest) WebRequest.Create (M_URL); REQ.Credentials \u003d CredentialCache.DefaultCredentials; // REQ. Clientcertificates.add (x509certificate2.createFromcertfile ("C: \\\\ temp \\\\ cert \\\\ c1.cel")); mycerts mycert \u003d neue mycerts (); if (mycert.init ()\u003e 0) req.clientCertificates.add ( meinzert); Console.WriteLine (Mycert.thumbprint); Console.WriteLine (Mycert.thumbprint); result \u003d (HttpWebResponse) Req.getResponse (); Streamwriter writer \u003d new Stream (@ "C: /123.txt"); Strom ReceiveStream \u003d Result.GetResponseStream (); #region für XML-Dateien Encoding Encode \u003d System.Text.Encoding.Default; #endregion #region Für Sites // codiercoding codieren \u003d system.text.coding.getcoding ("utf-8"); #Endregion Stream SR \u003d Neue Stream (ReceiveStream, Encode); Console.writine ("\\ r \\ nresponse stream empfangen"); Char Read \u003d New Char; Int count \u003d SR.Read (Lesen, 0, 256); Console.writeline ("http-Antwort ... \\ r \\ n"); Während (Count\u003e 0) (String Str \u003d new String (Lesen, 0, Count); Console.Write (STR); writer.WriteLine (STR); Count \u003d Sr.Read (Lesen, 0, 256);) Writer. Schließen (); ) Fang (WebException E) (Console.WriteLine (E.Message);) Und schließlich (IF (Ergebnis! \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 öffentliche Klasse mypolicy: IcyTificatePolicy (Servicepoint SrvpointResult (Servicepoint Srvpoint, X509Certificate Zertifikat, WebRequest Antrag, Int CertificateProblem) (return true;)) // \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 (Static Void Main (String Args ) (//console.writeline("kuds wird trauern Sie "); // String str \u003d Console.ReadLine (); // if (Str.startSwith (" http: // „)) // if (! Str.startSwith ( "https: //")) // str \u003d "http: //" + string str \u003d @ "https://192.168.191.248/xml/80020.xml"; Console.WriteLine (“Connect zu "+ STR); Try (MyHttpresource HR \u003d New MyHttpresource (STR); //" http://br.so-ups.ru/public/docs/doclist.aspx „hr.getfile ();) catch (Exception E) (console.writine (E. Botschaft); ) Rückkehr; ))

Fortsetzung des Themas:
Os

Ich habe einen Web-Service, den ich überregte, den ich als "Link zum Service hinzufügen" registriert habe, für den HTTPS erforderlich ist, und Zertifikat. Unten ist mein Code zum Erstellen einer Instanz ...