nanohttpd https сервер в Android, Android и браузер IOS не удается подключиться
Я пытаюсь установить https-сервер в Android для подключения других телефонов, но иногда подключается только iphone6, ipod,android browser все не могут получить содержимое веб-сервера. (сообщение браузера не может установить безопасное соединение) Я использую SimpleServer Class от nanohttpd, чтобы установить его.
мой CA здесь
http://www.mediafire.com/download/53f6e9uveb47kqv/ca.cer// для загрузки клиентом
http://www.mediafire.com/download/v9i58n38yb85co5/server.p12// для сервера для загрузки хранилища ключей
Пароль CA оба одинарные.
Вот мой код sslServerSocket
char[]kspass = KEYSTOREPASS.toCharArray();
char[]ctpass = KEYSTOREPASS.toCharArray();
try {
KeyStore ks = KeyStore.getInstance("PKCS12");
//ks.load(new FileInputStream("file:///android_asset/singuler.keystore"),kspass);
ks.load(getResources().getAssets().open("server.p12"),kspass);
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, ctpass);
TrustManagerFactory tmFactory = TrustManagerFactory.getInstance("X509");
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, null);
//webServer.makeSecure(NanoHTTPD.makeSSLSocketFactory(ks, kmf.getKeyManagers()));
webServerSSL.makeSecure(sc.getServerSocketFactory());
} catch (Exception e) {
// TODO: handle exceptionser
Log.i("test", e.toString());
}
try {
webServer.start(15);
webServerSSL.start(15);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
webServer = null;
webServerSSL=null;
Log.i("test", e.toString());
}
Может кто-нибудь мне помочь? Спасибо.
1 ответ
Решение
Я нашел ответ Когда сервер nanohttpd запускается, нужно установить время ожидания в миллисекундах для каждого сокета подключения, особенно для запроса https.