2017-06-18 15 views
1

私はSamsung Smart AC(ヒートポンプ/ミニスプリット)を持っており、それに対して何らかの自動化を行いたいと考えています。私はAndroid携帯にAPPを持っています。 はたくさんの研究では、私は私はこのようOpenSSL.exeと私のACを制御できることが判明:C#のOpenSSL.exe s_client相当

openssl.exe s_client -connect 192.168.1.154:2878 

その後、接続が確立された後、私はその後、/貼り付けるこのコピーできます

"<Request Type="AuthToken"><User Token="16968012-2892-M993-N707-3738REMOVED" /></Request>" 
"<Request Type="DeviceControl"><Control CommandID="cmd11111" DUID="7825ADREMOVED"><Attr ID="AC_FUN_POWER" Value="On" /></Control></Request>" 

そしてをACがオンになります。

問題は、接続が確立されるのを待ってから要求をコピー/ペーストする必要があるため、タスクを自動化できないということです。 Openssl.exeは私が使用できるパラメータを取っていないようです。

私はInvoke-WebRequest/RestMethodでPowershellを試しましたが、SSL/TLSエラーが発生します。私はC#でも同じ結果を試してみました。あなたは私もちょうどSSLエラーを取得せずにC#のでACに接続する/取得することはできません見ることができるよう

public static bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) 
    { 
     return true; 
    } 
    static void Main(string[] args) 
    { 

     ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications); 
     Uri uri = new Uri("https://192.168.1.154:2878"); 
     WebRequest webRequest = WebRequest.Create(uri); 
     WebResponse webResponse = webRequest.GetResponse(); 
     webResponse.GetResponseStream(); 

     Console.Read(); 

    } 

だから私は、このエラー

The request was aborted: Could not create SSL/TLS secure channel. 

を与えます。

「Openssl.exe s_client」が動作して以来何が起きているのか分かりません。誰か私を啓発することはできますか? OpenSSLのから

UPDATE 出力:

 

    C:\Program Files (x86)\GnuWin32\bin>openssl.exe s_client -connect 192.168.1.154:2878 
    Loading 'screen' into random state - done 
    CONNECTED(0000017C) 
    depth=0 /C=KR/L=Suwon/O=Samsung Electronics/OU=Digital Applicance/CN=a287848/[email protected] 
    verify error:num=20:unable to get local issuer certificate 
    verify return:1 
    depth=0 /C=KR/L=Suwon/O=Samsung Electronics/OU=Digital Applicance/CN=a287848/[email protected] 
    verify error:num=21:unable to verify the first certificate 
    verify return:1 
    --- 
    Certificate chain 
    0 s:/C=KR/L=Suwon/O=Samsung Electronics/OU=Digital Applicance/CN=a287848/[email protected] 
     i:/C=KR/L=Suwon/O=Samsung Electronics/OU=Digital Applicance/CN=a287848/[email protected] 
    --- 
    Server certificate 
    -----BEGIN CERTIFICATE----- 
    MIIDdDCCAt2gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBkTELMAkGA1UEBhMCS1Ix 
    DjAMBgNVBAcTBVN1d29uMRwwGgYDVQQKExNTYW1zdW5nIEVsZWN0cm9uaWNzMRsw 
    GQYDVQQLExJEaWdpdGFsIEFwcGxpY2FuY2UxEDAOBgNVBAMTB2EyODc4NDgxJTAj 
    BgkqhkiG9w0BCQEWFm1vd2Vvbi5sZWVAc2Ftc3VuZy5jb20wHhcNNzAwMTAxMDkw 
    MDE2WhcNNzAwMjAxMDkwMDE2WjCBkTELMAkGA1UEBhMCS1IxDjAMBgNVBAcTBVN1 
    d29uMRwwGgYDVQQKExNTYW1zdW5nIEVsZWN0cm9uaWNzMRswGQYDVQQLExJEaWdp 
    dGFsIEFwcGxpY2FuY2UxEDAOBgNVBAMTB2EyODc4NDgxJTAjBgkqhkiG9w0BCQEW 
    Fm1vd2Vvbi5sZWVAc2Ftc3VuZy5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ 
    AoGBANWEclyhZblo3TwG39hFVZK+LHTICEbgWwHQdAx1RwLFvIgsTFlgHu8Hb0fC 
    AN2Wknx5vb0ks355PycY/xlUY6Rmr3eSU34undtt7jE1K0OYeasUOvxpXyBtmSo6 
    72YtDSN6rh3F6SgOKrUVsQFDCJ2V5CQHxKyH5FFwAmcHUbjzAgMBAAGjgdkwgdYw 
    CQYDVR0TBAIwADAkBglghkgBhvhCAQ0EFxYVIlNhbXN1bmcgZWxlY3Ryb25pY3Mi 
    MB0GA1UdDgQWBBTdhKfUKlp5ocnU6K9BF4smWiDPbzBfBgNVHSMEWDBWoUmkRzBF 
    MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 
    ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkggkAvwoLvHnlSoIwCwYDVR0PBAQDAgUgMBYG 
    A1UdEQQPMA2CC3NhbXN1bmcuY29tMA0GCSqGSIb3DQEBBQUAA4GBAHfi+2JxtpvO 
    6MFZReZkXg+GMOt2UEPqFKpeJGCRdCoKnEmvBMUsp8PaopZ6uy/Z3V4FIhP/wcUv 
    fC1+feizmZkzO3ixThJH6zo3edEjZAA7KBj+ecfLYd/PTXkAfIJFM9RlCfAkbbbc 
    gGSDyBpGJ4wJHhB91bjK8qamUw5LJJrY 
    -----END CERTIFICATE----- 
    subject=/C=KR/L=Suwon/O=Samsung Electronics/OU=Digital Applicance/CN=a287848/[email protected] 
    issuer=/C=KR/L=Suwon/O=Samsung Electronics/OU=Digital Applicance/CN=a287848/[email protected] 
    --- 
    No client certificate CA names sent 
    --- 
    SSL handshake has read 1212 bytes and written 202 bytes 
    --- 
    New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA 
    Server public key is 1024 bit 
    Compression: NONE 
    Expansion: NONE 
    SSL-Session: 
     Protocol : TLSv1 
     Cipher : DHE-RSA-AES256-SHA 
     Session-ID: D4576CA26103343877505F0B1726833E7F3C76481EFDEF21B482C4D4FBA 
     Session-ID-ctx: 
     Master-Key: 7609462DC362B422115C370DA282106208842119047CF97F384F3E1B5079AF5CE72A5CF9FA35A41C2D67400672E70CAE 
     Key-Arg : None 
     Start Time: 1498081620 
     Timeout : 300 (sec) 
     Verify return code: 21 (unable to verify the first certificate) 
    --- 
    DRC-1.00 
    

    closed 

+1

あなたのコンピュータがACの証明書を信頼していないと仮定します。 'Openssl s_client'は(それは診断ツールなので)気にしませんが、他のすべては気にしません。あなたのブラウザで 'https://192.168.1.154:2878'を開き、証明書の警告を無視しようとしましたか? – Swonkie

+0

'SslStream'を試しましたか? –

+1

'openssl s_client ...'が生成する実際のテキスト出力をポストします。これには接続に関する多くの情報が含まれます。そしてあなたは 'openssl s_client ... 'の標準入力にコンテンツを投稿することができます。開始するにはhttps://stackoverflow.com/questions/6763086/why-is-input-redirect-not-implemented-in-powershellをご覧ください。私は今、OpenSSLを先に私のポストを更新しました –

答えて

1

あなたが直面している問題は、最も可能性の高いSSL/TLSプロトコルのバージョンです。

あなたのコールバックは正しいです。

サーバーでSSLv3とTLSv10のみが許可されていて、クライアントにTLSv12が必要な場合は、この種のエラーが発生します。

両方とも同じバージョンを使用します。

使用この:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 

注:お使いのプロトコル・バージョンに基づいて、それに応じてプレースホルダを変更します。

+0

Ssl3を使用すると、私はパスする方法を理解できないという新しいエラーが発生します:System.Net.WebException: 'サーバーがプロトコル違反をコミットしました。セクション= ResponseStatusLine ' – user1281991

+0

それは何ですか。サーバーは最初に許可する必要があります。サーバー側からサポートされているバージョンを確認してください。私はあなたが使用しているWebサーバーを知らない。 IISはデフォルトでポート80でWeb要求をリッスンします。この場合、別のアプリケーションはポート80で要求を既にリスンしています。通常、Skypeはインストールされたときにポート80と443でリッスンします.Skype - > Tools - > Options - >詳細 - >接続: '。[プロトコル違反]を確認してください(http://www.kulov.net/2006/06/server-committed-protocol-violation.html) –