Я создал сервер 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();
}