SSL接続を作成できませんでした。 Polygon Seriesプログラムからの直接的なインタラクションチャネルに関する一部と技術計画を送信するときの間違いを回避する方法。 インストールするSharpeiのバージョン
HTTPSが必要な場合は「サービスへのリンクを追加する」を登録したWebサービスがあります。 以下は私のサービスのインスタンスを作成するための私のコードです。
service \u003d new myReferencedWebService(); X509Certificate2 CERT \u003d NEW X509Certificate2(); var stream \u003d Assembly.GetExecutingAssembly()。getManifestResourcestream( "MyCert.cer"); var bytes \u003d新しいバイト; stream.read(バイト、0、バイト数); cert.import(バイト、MyPassword、x509keyStorageFlags.DefaultKeyset); Service.ClientCredentials.ClientCertificate.Certificate \u003d cert。
そして私の構成は次のようになります。
単純なWinForms.exeを作成して上記のコードを使用すると、Webサービスから答えが発生します。 ただし、ASP.NETに同じコードを入れると、次のようになります。
リクエストが中断されました。安全なSSL / TLSチャネルを作成できませんでした。
ASP.NETでそれをする方法
編集: 私は追加する必要があります。 私が使用するクライアント証明書はスマートカードに接続されており、PIN入力を使用する必要があります。 それが重要かどうかわからない。
クライアントがアプリケーションに入ったとき、彼はPINコード証明書を要求します。 この場合、CACリーダーにCACカードが挿入されています。 多分私はどういうわけかrequest.ClientCertificateを使うことができますか?
3回答
あなたの計画はここで何ですか? 言い換えると:
Pinを紹介しますか? スマートカードを挿入するつもりですか?
クライアント(すなわち、ASP.NET Webサーバ)がスマートカードのクローズドキーにアクセスする必要があるため、ASP.NET WebサーバーとWebサービスの間にSecure Channelをスマートカードと出力にインストールすることはできません(そしてこれについてはPINが必要です。 私はそれを作るための唯一の方法は、証明書全体(閉鎖キーを含む)をスマートカードから取得することです(これはデザインによると、不可能ではない場合は非常に難しいはずです)。
行動する最善の方法:
a)「サーバー証明書」(非スマートカード)を要求します。これは、ASP.NET WebサーバーとターゲットWebサービスの間のチャネルのクライアント証明書として使用できます。
b)顧客(スマートカードと連絡先を持っている人)がスマートカードとPINコードを使用して安全なWebサービスに直接接続されているようにソリューションを記録します。
認証のルート証明書の証明書証明書は利用可能ですか? 自分でインポートした場合は、IISがアクセスできないユーザー証明書ストアにインポートされました(代わりにリポジトリにインポートします)。
Class Designerのドキュメントは、クラスは証明書クローズドキーを格納するためにCSPへのアクセスを受信すると言っています(PFX用)。 CERファイルには必要ではありませんが、ユーザープールアプリケーションとして機能する場合は、依然として許可の問題が発生している可能性がありますか?
アプリケーションプールをユーザーとして実行するように切り替えて、マシン証明書ストア内の証明書をインポートしようとしたかどうかを確認して、それがそれにアクセスするかどうかを確認してください。
WCFクライアント構成
念のため、あなたのエンドポイントのアドレスが形作られていることを確認してください。
"https:// hostname [:port] / servicedirectory/myservice.svc"
サービスの設定がTRUEであると仮定すると、ASP.NETアプリケーションバインディング構成は次のとおりです。
あなたが遭遇するかもしれない問題は、顧客証明書をあなたのサービスに送る/供給することです。
サービスがIIS 6.0またはIIS 7.0で投稿された場\u200b\u200b合は、クライアント証明書を受け入れるためにWCFサービスが投稿されているIISを設定する必要があります。
ASP.NETアプリケーションはWCFクライアントです。 スマートカード証明書を使用し、証明書を使用してWCFサービスを保護するには、このページを参照してください。
また、IISにインストールされるSSLサーバー証明書が必要です。ここでは、WCFサービスをHTTPSをサポートするように投稿します。
WCFサービスの設定
サービスの終点には、HTTP保護バインディング、およびHTTPSGenabledを有効にしてHttpEneBubleDを無効にするためのサービス動作を含める必要があります。
特別な操作から得られたEDSを使用する必要があります。 他の州への報告を送信するために使用するもの。臓器(PF、FTS、FSSなど)
2.インストールするSharpEIのバージョン?
に ビットを学ぶ あなたの窓は必要です:
コンピュータのマウスボタンを右クリックします
プロパティを選択してください
システムセクションの「システム」セクションで書かれている場合は、64ビットシステムが書き込まれます。その他の場合は、32ビットで64ビットを意味します。
3. Webコレクションシステムに登録するときは、そのような組織がすでに存在するというメッセージが公開されました。
登録時にエラーが発生した場合 そのようなOKPOを使った組織はすでに登録されていますこれは、組織に関する情報がすでにレポートシステムに存在していることを意味します。 そのような情報は、単一の報告モジュールからシステムに入ります。
この場合、必要です。
- アドレスに手紙を送ってください [Eメールで保護されている] データを示す:
- 会社の名前
- その名前は証明書(あなたが報告に署名した)であり、誰でも発行された人によって
- 連絡先の詳細
- メールアドレス(必須)
- あなたからの手紙を受け取った後、TOGCの従業員はあなたの組織への欠けている情報を作り、パスワード変更指示を使ってあなたに手紙を送ります(パスワードを指定しない)。
- パスワードを変更するための手順を渡したら、電子形式での報告を開始できます。
4.レポートに署名するときは、エラーが発生します。「鍵証明書アルゴリズムはサポートされていません」
- EDSの操作時にエラーが発生するMicrosoftの更新があります。
これらは次の更新プログラムです。- 2604094
- 2729450
- 2729452
- 2729453
- 2742601
Microsoftのアップデートは「コントロールパネル」 - 「削除プログラムのインストール」を介して削除されます。 - また、このエラーは、SharpEirteがインストールされている場合にマニフェストが表示されることがあります 前net Framework 2.0SP2を設定します。 この場合は、インストールを実行してください Sharpeirteを繰り返し、「編集」を選択してフレームワーク2のサポートを確認してください。
5.「オフライン」から報告書を「オフライン」から送信するとき:「サイトとの接続を確立できませんでした...保護されたチャネルSSL / TLSの信頼関係を確立できません」
- オフラインクライアント設定、接続アドレスアドレスの正確さを確認してください。
安全な接続:https://online.statrk.ru/online.
- 「信頼できるルート認定認定「リポジトリ」証明書収集サーバーにインストールします。 説明書を参照してください。
- Internet Explorerを開き、https://online.statrk.ru/onlineにアクセスしてください。 証明書「UTS GMC ROSSTAT」がインストールされている場合は、 ページは警告なしで開きます。 それ以外の場合は、サイトの信頼性をチェックすることが不可能になることについて警告が解除されます。
- 「シャープの暗号プロト」が取り付けられているか確認してください。 オンラインコレクションサイト()からダウンロードできます
6.「オフラインクライアント」からレポートを送信するときは、エラーが発生します。「メッセージセキュリティの確認エラー」
コンピュータの時間設定を確認してください。 システムを送信するときは、World Time Accounting Server(UTC)で時間を持つコンピュータ上の時間の一致をチェックし、ローカルではありません。 先進的に カルディキア共和国のためにあなたのコンピュータのタイムゾーンは " (UTC。 +4:00 ・モスクワ、サンクトペテルブルク、ボルゴグラード " 。 タイムゾーンがある場合(UTC。 +3:00 ・モスクワ、セントピーターズバーグ、ボルゴグラード ダウンロードしてインストールする必要があります
「提供された ユニークな機会 直接的な相互作用チャネルに関するRosreestrへの水銀の送付 (言い換えれば、直接プログラムから)。
この記事では、プログラムの例についてインタラリーと技術計画を送信するときに最も頻繁に発生するエラーを検討してください。
プログラムからインターネットプランを送信するために、電子形式でステートメントを作成する必要があります。 プログラムは、2 XMLスキームのステートメントを作成する可能性を提供します。
- reguests_gzk_realty. バージョン 17 ;
- statmentgkn。 バージョン 01 .
注意: 特定のXMLスキーマのステートメントを記入する方法の詳細については、記事を参照してください。
直接対話のチャネルを通して、インタラリーと技術計画をRoSreestrに送信するときに発生するエラーの検討に直接回しましょう。
1エラーが発生しました。 その点に注意してください 追加の文書 XMLスキーマによって形成されたステートメントだけで、プログラムをRosreestrに送信する必要があります。 reguests_gzk_realty. バージョン 17 .
新しいXMLスキームについて statmentgkn。 バージョン 01 追加の文書 通行禁止エラーが発生しました 「チェックは渡されません。 FLK、またはEDSのチェックは渡されません。 不明なタイプのステートメント» .
決定: プログラムから追加の文書を送信するとき、このエラーが発行された場合は、XMLスキーマのアプリケーションを作成した場合 reguests_gzk_realty. バージョン 17 そしてもう一度パッケージを送ります。
2エラーが発生しました。 エラー "キューに失敗しました。 エラー:リモートサーバーがエラーを返しました(500)。 内部サーバーエラー" 通常、ステートメントなしで形成された統合計画のZIPアーカイブを送信するときに表示されます。
決定:ウィンドウに設定されています "設定" ティック:
- 「直接のインタラクションチャネルを伝送するためのパッケージ(ZIPアーカイブとアプリケーション)を形成する。
- "Form Statement StatementGKNバージョン01"
- 「XMLを降ろしたときにステートメントを作成する」。
- 「Zip Archive XML-Statementに投資するには」.
図1。 「設定」ウィンドウ。
次に、アプリケーションに記入してください(アップロードしたときに2つのXMLファイルが作成されます。アプリケーションと会議プラン)とプレフィックスを付けてZIPアーカイブを作成します。 req。。 さらに、ZIPアーカイブへの長いパスが指定されている場合、エラーが表示されることがあります。 この場合、ZIPアーカイブへのパスを小さくすることをお勧めします。
3エラーが発生しました。 "キューに失敗しました。 エラー:リクエストが中止されました.SSL / TLSセキュアチャネルを作成できませんでした»
"キューに失敗しました。 エラー:リクエストが中断されました。 SSL / TLS保護チャネルの作成に失敗しました」
決定: このエラーを排除するには、電子署名証明書(EP)を確認する必要があります。
- 送信者証明書がプログラム設定で正しく選択されているか確認してください(ウィンドウ内) "設定" タブに "送信" フィールドで "! 送信者証明書 "):
図2。 [設定]ウィンドウ、[送信]タブ。
EP証明書は個人リポジトリにインストールする必要があります。
コンテナが閉じたキー(スマートカード、フラッシュドライブ)で挿入されているか確認してください。 *閉じたキーはコンピュータに保存でき、リムーバブルメディアではありません.
EP証明書が宛先 "TLSクライアント"のかどうかを確認してください。 この問題を解決するには、署名を購入した認証センターに連絡する必要があります。
暗号プロバイダをインストールする必要があります 暗号Pro CSP。.
EPの有効性が終了していないか確認してください。
あなたのEPがRosresterと協力することを意図しているかどうかを調べて、Casastral Engineerの強化された資格のあるEPです。 必要に応じて、認証局に連絡してください(「参照」)。
リンク上のフォーラムでこのサービスのシステム要件を読んでください。
4エラーが発生しました。 "キューに失敗しました。 エラー:要求が承認されました。リクエストはキャンセルされました»
「リクエストを削除しないでください。 エラー:要求が中断されました:要求はキャンセルされました。」
このエラーは通常、ZIPアーカイブのサイズが大きすぎるという事実に関連しています。
決定: 窓の中に "設定" タブに "送信" フィールド内のRosreestraポータルのタイムアウトを増やす "ポータルRosreestra(秒)のタイムアウト"たとえば、最大800秒です。
図3 [設定]ウィンドウ、[送信]タブ。
注意: 直接の相互作用のチャンネルを通して送信されたZipアーカイブ上では、Rosresterには制限があります。 直接相互作用のチャネルを通して送信されるZIPアーカイブのサイズは50 MBを超えてはいけません。
5エラー. 「出荷モジュールを開くことができませんでした。 capicom.dllライブラリを持っていない、または正しくインストールされていない可能性があります。 Rosreestraポータルの要求を送信する機能は利用できません」
「出荷モジュールファイルが破損しています。 最近の変更が失われ、最後に保存されたファイルを開きますか? Capicomがインストールされていないか、誤ってインストールされていません。 Rosreestraポータルの要求を送信する機能は利用できません」
このエラーは、出荷モジュールへのアクセスが不完全なために発生します。
決定: 船のログを削除して復元する必要があります。 これを行うには、プログラムがインストールされているフォルダに移動してファイルを削除します。 eXCH.LOG。 そして exth_bak.log。 。 その後ウィンドウの後 "Rosreestromとの情報の交換" ボタンの横にある三角形をクリックしてください "設定" そして選択します "復元ログ".
シリーズのシリーズから直接両方の土地と技術計画を送る際に最も一般的なエラーを検討しました "ポリゴン".
この記事に記載されていないエラーが記載されていない場合は、常に無料の電話番号で問題を解決するためにテクニカルサポート部門に連絡することができます。 8-800-100-58-90 または電子メールで:。
常にあなたを助けてうれしいです!
追加のパケットを送信する場合、このチェックボックスはインストールされず、reguests_gzk_realtyバージョン17に従って文を作成しません。
ヒット数:7151
1つのマシンに証明書を作成しました。 私は別のものに別のものを取り付けました。 アプリケーションはXMLファイルのジャンプに元気づけることを試みています - エラーが発生しました:安全なSSL TLSチャネルを作成できませんでした。
問題を解決するために助けが必要です。
クラスMyCerts(プライベートスタティックINT CERT_STORE_PROV_SYSTEM \u003d 10;プライベートスタティック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を返します。 elseはm_certsを返します。 )))Class MyHTTPResource(String M_URL; Public MyHttpResource(String URL)(M_URL \u003d URL;)パブリック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\u003d\u003d\u003d\u003d \u003d\u003d \u003d\u003d: 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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d(HTTPWebRequest)WebRequest.Create(M_URL); req.credentials \u003d credentialcache.defaultCredentialss; //req。 ClientCertificates.Add(x509certificate2.CreateFromCertFile( "C:\\\\ Temp \\\\ CERT \\\\ c1.cer"); myCerts MyCert \u003d new myCerts();(myCert.init()\u003e 0)req.clientCertificates.Add( myCert); WriteLine(MyCert.Thumbprint); console.writeline(myCert.thumbprint); result \u003d(httpwebresponse)req.getResponse(); StreamWriter Writer \u003d新しいStreamWriter(@ "C:/ 123.txt");ストリームreceivestream \u003d result.getRespOnSestream(); encode \u003d system.text.encoding.default; #endregion #Region sites // encode \u003d system.text.encoding.getEncoding( "UTF-8")。 #endRegion StreamReader SR \u003d New StreamReader(Receivestream、Encode)。 Console.WriteLine( "\\ r \\ nresponse streamが受信されました"); char read \u003d new char。 int count \u003d sr.read(Read、0,256); Console.WriteLine( "HTTP応答... \\ r \\ n"); 間(count\u003e 0)(string str \u003d新しい文字列(読み出し、0、数); console.write(str); Writer.WriteLine(str); count \u003d sr.read(read、0,256);)ライター。クローズ(); )catch(webException e)(Console.WriteLine(e.message);)最後に(結果!\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003dパブリッククラスMyPolicy:icyTificatePolicy(ServicePoint SRVPointResult(ServicePoint SRVPoint、X509Certificate、WebRequestリクエスト、WebRequestリクエスト、INT証明書)(reture;))// \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003dクラスCertSample(静的void main(文字列args )// String Str \u003d console.readline(); // if(!str.startswith( "http://"))//(!)//(http:// "))//console.wwriteline(") str.startSwith( "https://"))// str \u003d "http://" +文字列str \u003d @ "https://192.168.191.248/xml/80020.xml"; console.writeline( "connect "+ str); try(MyHttpresource HR \u003d new myhttpresource(str); //" http://br.so-ups.ru/public/docs/doclist.aspx "hr.getfile();)catch(例外e)(コンソール.WriteLine(E。 メッセージ); )戻る。 ))))