NanoHTTPD - Этот сайт не может обеспечить безопасное соединение - PullRequest
0 голосов
/ 21 сентября 2019

Я создал сервер NanoHTTPD на Android.Мне удалось создать сервер https на моей предыдущей работе, но это не безопасно.Я хочу, чтобы в нем была добавлена ​​защита, как в случае с зеленым замком, потому что у меня проблемы с подключением к серверу на iOS, поэтому я провел некоторые исследования и изменил свой старый код и сделал это, но браузер показывает: «Этот сайт не может предоставитьбезопасное соединение ".Что мне сделать, чтобы это исправить?

 try {
                if (!isServerConnected) {
                    KeyStore keyStore = KeyStore.getInstance("BKS");
                    keyStore.load(Objects.requireNonNull(getClass().getClassLoader()).getResourceAsStream("newselfsigned.bks"), "mypassword".toCharArray());

                    TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
                    trustManagerFactory.init(keyStore);

                    SSLContext sslctx = SSLContext.getInstance("TLS");
                    sslctx.init(null, trustManagerFactory.getTrustManagers(), new SecureRandom());

                    SSLServerSocketFactory factory = sslctx.getServerSocketFactory();

                    server.makeSecure(factory, new String [] { "TLSv1", "TLSv1.1","SSLv3"});
                    server.start(10000);

                    WifiManager wifiManager = (WifiManager) v.getContext().getApplicationContext().getSystemService(WIFI_SERVICE);

                    int ipAddress = wifiManager.getConnectionInfo().getIpAddress();
                    @SuppressLint("DefaultLocale") final String formatedIpAddress = String.format("%d.%d.%d.%d", (ipAddress & 0xff), (ipAddress >> 8 & 0xff),
                            +(ipAddress >> 16 & 0xff), (ipAddress >> 24 & 0xff));

                    isServerConnected = true;

                    Toast.makeText(v.getContext(), "Connected : " + "Please access! https://" + formatedIpAddress + ":" + server.getListeningPort() + " From a web browser", Toast.LENGTH_SHORT).show();

                    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://" + formatedIpAddress + ":" + server.getListeningPort()));
                    startActivity(browserIntent);

                }
            } catch (IOException | KeyStoreException | NoSuchAlgorithmException | KeyManagementException | CertificateException e) {
                Toast.makeText(v.getContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }
...