2017-02-08 22 views
8

Chcę połączyć się z serwerem, który obsługuje tylko protokół TLS 1.2. Jakie możliwe cyfry mogę określić, aby przesyłać strumieniowo kontekst w tworzeniu PHP NUSOAP SoapClient?Szyfrowanie TLS v1.2 do użycia w PHP NUSOAP SoapClient

<?php 
    $objSoapClient = new SoapClient(
     "https://example.com/?wsdl", 
     array(
      "encoding"=>"ISO-8859-1", 
      "stream_context"=>stream_context_create(
       array(
        "ssl"=>array("ciphers"=>"<????>") 
       ) 
      ) 
     ) 
    ); 
?> 
+0

jest odpowiedzią poniżej OK? –

+0

Twoja odpowiedź poniżej jest poprawna dla PHP SoapClient. Szukam również sposobu na to samo za pomocą PHP NUSOAP API. – Kartins

Odpowiedz

4

TLS v1.2 opisano w RFC5246, można read it here. Lista szyfrów można znaleźć in openssl wiki, użyj drugiej linii bez ciągnięcia 256. Możesz ręcznie uzyskać listę szyfrów używanych przez uruchomienie openssl ciphers -v | grep -v 'TLSv1.2' na serwerze w przypadku, gdy masz do niego dostęp.

$context = stream_context_create(
    [ 
     'ssl' => [ 
      'ciphers' => 'DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA', 
     ], 
    ] 
); 

Lista szyfrów w TLS v1.2

TLS_RSA_WITH_NULL_SHA256     NULL-SHA256 

TLS_RSA_WITH_AES_128_CBC_SHA256   AES128-SHA256 
TLS_RSA_WITH_AES_256_CBC_SHA256   AES256-SHA256 
TLS_RSA_WITH_AES_128_GCM_SHA256   AES128-GCM-SHA256 
TLS_RSA_WITH_AES_256_GCM_SHA384   AES256-GCM-SHA384 

TLS_DH_RSA_WITH_AES_128_CBC_SHA256  DH-RSA-AES128-SHA256 
TLS_DH_RSA_WITH_AES_256_CBC_SHA256  DH-RSA-AES256-SHA256 
TLS_DH_RSA_WITH_AES_128_GCM_SHA256  DH-RSA-AES128-GCM-SHA256 
TLS_DH_RSA_WITH_AES_256_GCM_SHA384  DH-RSA-AES256-GCM-SHA384 

TLS_DH_DSS_WITH_AES_128_CBC_SHA256  DH-DSS-AES128-SHA256 
TLS_DH_DSS_WITH_AES_256_CBC_SHA256  DH-DSS-AES256-SHA256 
TLS_DH_DSS_WITH_AES_128_GCM_SHA256  DH-DSS-AES128-GCM-SHA256 
TLS_DH_DSS_WITH_AES_256_GCM_SHA384  DH-DSS-AES256-GCM-SHA384 

TLS_DHE_RSA_WITH_AES_128_CBC_SHA256  DHE-RSA-AES128-SHA256 
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256  DHE-RSA-AES256-SHA256 
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256  DHE-RSA-AES128-GCM-SHA256 
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384  DHE-RSA-AES256-GCM-SHA384 

TLS_DHE_DSS_WITH_AES_128_CBC_SHA256  DHE-DSS-AES128-SHA256 
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256  DHE-DSS-AES256-SHA256 
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256  DHE-DSS-AES128-GCM-SHA256 
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384  DHE-DSS-AES256-GCM-SHA384 

TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256  ECDH-RSA-AES128-SHA256 
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384  ECDH-RSA-AES256-SHA384 
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256  ECDH-RSA-AES128-GCM-SHA256 
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384  ECDH-RSA-AES256-GCM-SHA384 

TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 ECDH-ECDSA-AES128-SHA256 
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 ECDH-ECDSA-AES256-SHA384 
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 ECDH-ECDSA-AES128-GCM-SHA256 
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 ECDH-ECDSA-AES256-GCM-SHA384 

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256  ECDHE-RSA-AES128-SHA256 
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384  ECDHE-RSA-AES256-SHA384 
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256  ECDHE-RSA-AES128-GCM-SHA256 
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384  ECDHE-RSA-AES256-GCM-SHA384 

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE-ECDSA-AES128-SHA256 
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE-ECDSA-AES256-SHA384 
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE-ECDSA-AES128-GCM-SHA256 
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE-ECDSA-AES256-GCM-SHA384 

TLS_DH_anon_WITH_AES_128_CBC_SHA256  ADH-AES128-SHA256 
TLS_DH_anon_WITH_AES_256_CBC_SHA256  ADH-AES256-SHA256 
TLS_DH_anon_WITH_AES_128_GCM_SHA256  ADH-AES128-GCM-SHA256 
TLS_DH_anon_WITH_AES_256_GCM_SHA384  ADH-AES256-GCM-SHA384