Не найден самозаверяющий Android-залп доверия HTTPS для пути сертификации
Я новичок Android. Этот вопрос задавался много раз, но я рассмотрел почти все вопросы здесь.
Я пытаюсь использовать самозаверяющий сертификат на сервере Node.Js (с помощью экспресс) и Volley на Android.
С помощью :http://blog.applegrew.com/2015/04/using-pinned-self-signed-ssl-certificate-with-android-volley/
Я не могу использоватьhttp://ogrelab.ikratko.com/using-android-volley-with-self-signed-certificate/ потому что в моем приложении слишком много кода для изменения.
Это ошибка.
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: доверенная привязка для пути сертификации не найдена.
Мой код воллейсингтона:
private SSLSocketFactory newSslSocketFactory() {
try {
// Get an instance of the Bouncy Castle KeyStore format
KeyStore trusted = KeyStore.getInstance("BKS");
// Get the raw resource, which contains the keystore with
// your trusted certificates (root and any intermediate certs)
InputStream in = mCtx.getResources().openRawResource(R.raw.evennewer);
try {
// Initialize the keystore with the provided trusted certificates
// Provide the password of the keystore
trusted.load(in, KEYSTORE_PASSWORD);
} finally {
in.close();
}
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(trusted);
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);
SSLSocketFactory sf = context.getSocketFactory();
return sf;
} catch (Exception e) {
throw new AssertionError(e);
}
}
Мой код Node.Js:
var config = {
key: fs.readFileSync('./ssl/newkey.key'),
cert: fs.readFileSync('./ssl/newcert.crt')
};
var port = 443;
var server = https.createServer(config, app).listen(port, function(){
console.log("Express server listening on port " + port);
});
И openssl отладки вернулся:
Подтвердите код возврата: 18 (самозаверяющий сертификат)