HandshakeException для сертификата сервера - PullRequest
0 голосов
/ 27 октября 2019

Я работаю над мобильным приложением, которое отправляет запросы на общедоступные сборки API моей компании, и использую действующий сертификат для создания защищенного соединения с моей стороны каждый раз, когда я пытаюсь сделать исключение при запросе рукопожатия, не способное получить локальный доступ. появляется сертификат эмитента, и когда я запускаю эту команду

openssl s_client -showcerts -servername pub.dartlang.org -connect pub.dartlang.org:443

выводниже показано

    CONNECTED(00000003)
    depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
    verify error:num=20:unable to get local issuer certificate
    ---
    Certificate chain
     0 s:/CN=pub.dartlang.org
       i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
    -----BEGIN CERTIFICATE-----
   ....
    -----END CERTIFICATE-----
     1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
       i:/O=Digital Signature Trust Co./CN=DST Root CA X3
    -----BEGIN CERTIFICATE-----
   ...
    -----END CERTIFICATE-----
    ---
    Server certificate
    subject=/CN=pub.dartlang.org
    issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
    ---
    No client certificate CA names sent
    Peer signing digest: SHA256
    Server Temp Key: ECDH, P-256, 256 bits
    ---
    SSL handshake has read 3055 bytes and written 456 bytes
    ---
    New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
    Server public key is 2048 bit
    Secure Renegotiation IS supported
    Compression: NONE
    Expansion: NONE
    No ALPN negotiated
    SSL-Session:
        Protocol  : TLSv1.2
        Cipher    : ECDHE-RSA-AES128-GCM-SHA256
        Session-ID: 6E905904FEF3D9B5BA45A2F9140CD2DEC8F31F762759AB2193FD0649585348C9
        Session-ID-ctx: 
        Master-Key: B7762B8FC1543749F02A0011ABBEC22E2C29CA0089F5A4410CCFDE2DB2F1067CED0D8496522292A0338E855E3C717B4E
        Key-Arg   : None
        PSK identity: None
        PSK identity hint: None
        SRP username: None
        Start Time: 1571919503
        Timeout   : 300 (sec)
        Verify return code: 20 (unable to get local issuer certificate)
    ---

    read:errno=0 

как решить эту проблему - я не хочу использовать код, который доверял всем сертификатам - я не хочу добавлять свой сертификат в папку активов

любойдругое решение? как добавить мой сертификат в доверенное хранилище флаттера?

1 Ответ

0 голосов
/ 03 ноября 2019

Я решил эту проблему с помощью httpClient , чтобы доверять моему сертификату, добавив мой корневой и цепной сертификат в зависимости от того же кода здесь Флаттер добавляет самоподписанный сертификат из папки активов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...