Получите доступ к самозаверяющим сертификатам X509 в XamarinForms для соединения mqtt TLS с брокером Mosquitto

Невозможно переместить iframe из одного места в дом в другое без его перезагрузки.

Вот пример, показывающий, что даже с использованием собственного JavaScript iFrames все еще перезагружают: http://jsfiddle.net/pZ23B/

var wrap1 = document.getElementById('wrap1');
var wrap2 = document.getElementById('wrap2');
setTimeout(function(){
    document.getElementsByTagName('body')[0].appendChild(wrap1);
},10000);

0
задан Jeff Albrecht 27 February 2019 в 22:06
поделиться

1 ответ

Так как вы используете .Net / Mono Socket (через M2MqttDotnetCore), просто используйте закрепление сертификатом, и вам нужно только обработать RemoteCertificateValidationCallback. Таким образом, не нужно связываться с надежными магазинами Android и т. Д.

Использование SslStream на Android:

Примечание. Есть проблем с SslStream на Android распределение объектов может сойти с ума ... Я считаю (?) есть открытая проблема по этому поводу. (Мне пришлось использовать SSLSocket Java пару раз, чтобы обойти эту проблему)

Включить Native TLS 1.2+

enter image description here

[1134 ]
  • Использование BoringSSL через параметры сборки проекта Android
    • Добавьте свой сертификат в каталог активов Android:

      ├── Assets
      │   └── sushihangover.cert
      
      • Это ваш файл cert / .pem ( НЕ ваш KEY !! )

      • Убедитесь, что это файл ascii без заголовка спецификации Unicode

      • С помощью примера openssl (просто измените его на свой хост и защищенный порт)

        echo -n | openssl s_client -connect 10.1.10.250:5001 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
        

      Реализация RemoteCertificateValidationCallback

      Примечание : Следующий код может использоваться в NetStd2.0 или Xamarin.Android

      X509Certificate sushihangoverCert; // Class level var
      
      bool CertificateValidation(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors certificateErrors)
      {
          if (sushihangoverCert == null)
          {
              // There is no non-async version of OpenAppPackageFileAsync (via Xamarin.Essential)                   
    0
    ответ дан SushiHangover 27 February 2019 в 22:06
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: